自学JAVA基础初学之数据类型以及运算符算法,
内容包括数据类型及其定义
运算符及其算法
几乎每一行都有注释和知识点小结
有兴趣的初学者可以了解下!
//数据类型以及类型转换
public class Holle {
public static void main(String[] args){
//8大基本数据类型
byte a1 = 127;//范围在[-128,-127],整数类型
short a2 = 128;//整数类型
int a3 = 125555;//整数类型
long a4 = 124L;//后缀L定义long数值类型,整数类型
float a5 = 1.1F;//后缀F定义float数值类型
double a6 = 1.11D;//后缀D定义double数值类型
char a7 = '我';//char用''号定义字符类型,''最多为2个字节,一个中文字就为2个字节.
System.out.println(a1);//127
System.out.println(a2);//128
System.out.println(a3);//125555
System.out.println(a4);//124
System.out.println(a5);//1.1
System.out.println(a6);//1.11
System.out.println(a7);//我
//String为引用数据类型,即字符串
String a8 = "7+5" ;//String类型中""字符会原样输出
System.out.println(7 + a8);//输出中a8为7+5
//另符号原样输出
String a9 = "\"7+5\"";//在需原样输出的符号前添加\符号
System.out.println(7 + a9);
/*
* 重点注意事项:
* 小数类型中,若数字后不添加后缀符号,则默认为int类型
* 小数类型算法中,由于计算机是以二进制算法进行计算,所以会出现精度丢失问题
* 当int类型数据+double类型数据时,被赋值的数据类型为double类型,
* 即范围大的数据类型囊括数小的,小范围数据类型可赋值给大数据类型,反之不可
* String引用数据类型中,""中的字符会原样输出,无法代入变量进行计算,如需符号原样输出,符号前添加\号即可
*/
System.out.println("----------------------------------------------------------------");
//算术符类型
int b1 = 15;//此行表示b1原始值为15
//此处可添加一行: b1=b1++ 帮助理解(此行不可用在前缀++的算法中)b1自增1,这是b1被赋值为16
int b2 = b1++;// ++为后缀,则b1取原始值,算法先算赋值部分,则b2==b1的原始值==15
System.out.println(b1);//16
System.out.println(b2);//15
int b4 = 15;//此行表示b4原始值为15
int b3 = ++b4;//++为前缀,则先算自增部分,b4=++b4,则++b4==15+1==16,16赋值给b3
System.out.println(b4);//16
System.out.println(b3);//16
/*
* 重点注意事项
* 算术运算符中,加减乘除算法与数学中一样,注意被赋值的数据类型
* %取模,即结果为两数相处后的余数,
* 自增(++)自减(--),++result和result++都表示result+1,区别在于赋值时前缀先算自增后赋值,后缀先赋值后自增.
*/
System.out.println("----------------------------------------------------------------");
//赋值运算符(=,+=,-=,*=,/=,%=)
int c1 = 3;
int c2 = 2;
c1 += c2;//可看做 c1=c1+c2,以此类推
System.out.println(c1);//5
System.out.println(c2);//2
System.out.println("----------------------------------------------------------------");
//比较运算符(==,!=,<,>,<=,>=,instanceof,布尔类型的运算)
int d1 = 10;//表达式A
int d2 = 12;//表达式B
boolean result = d1 >= d2;
System.out.println(result);//输出结果只能是false或true.此行结果为false.
/*
* 语法格式:boolean result = 表达式A 比较运算符号 表达式B;
* instanceof检查是否是类的对象,学到面向对象的时候再了解
*/
System.out.println("----------------------------------------------------------------");
//逻辑运算符(&,|,^,!,&&,||,也是布尔类型的运算)
boolean result1 = true & true;//都为true
boolean result2 = false & true;//有false
boolean result3 = true & false;//有false
boolean result4 = false & false;//有false
System.out.println(result1);//true
System.out.println(result2);//false
System.out.println(result3);//false
System.out.println(result4);//false
System.out.println("----------------------------------------------------------------");
boolean result5 = true | true;// |表示OR,或,只要有一个表达式为true时,结果则为true
boolean result6 = false ^ true;// ^表示异或,XOR,判断A与B是否相同,不同则为true,相同为false
boolean result7 = !false;// !表示取反,Not,true结果是false
boolean result8 = false && false;//和&结果相同,具有短路效果.在算法中,若A为false,则不会运行B的运算
boolean result9 = true|| false;//和|结果相同,具有短路效果,在算法中,若A为true,则不会运行B的运算
System.out.println(result5);//true
System.out.println(result6);//true
System.out.println(result7);//true
System.out.println(result8);//false
System.out.println(result9);//true
/*
* 注意重点事项:
* 如何验证短路效果(以||为)
* 将表达式B替换为运行时报错的代码,不报错即未运行
* 例如:boolean result = true || (1/0=1);运行结果并不会报错
*/
System.out.println("----------------------------------------------------------------");
//三元运算符(三个参数进行运算,同样为布尔类型的运算)
int e1 = 5;
int e2 = 7;
int num1 = e2 - e1;
int num2 = num1 >= 1.5 ? e1 : e2;
System.out.println(num2);
/*
* 注意事项:
* 表达式为:boolean表达式 ? 值1 : 值2;
* num1 >= 1.5 就是boolean类型表达式
* 如果num1 满足boolean中的比较要求,则取冒号前的值,否则取冒号后的值
*/
System.out.println("----------------------------------------------------------------");
//位运算符(&,|,^,~,<<,>>,>>>,二进制算法,遵循规则:0看作false,1看作true)
int f1 = 3;
int f2 = 2;
/*
* 二进制算法:
* 0b00000011 =3
* & 0b00000010 =2
* ------------
* 0b00000010 =2
*/
System.out.println(f1 & f2);//对应位数都为1时,对应位数为1,否则为0
/*
* 二进制算法:
* 0b00000011 =3
* | 0b00000010 =2
* ------------
* 0b00000011 =3
*/
System.out.println(f1 | f2);//对应位数只要有1个为1,则结果为1
/*
* 0b00000011 =3
* ^ 0b00000010 =2
* ------------
* 0b00000001 =1
*/
System.out.println(f1 ^ f2);//对应位数相同为0,不同为1
/*
* 0b00000011 =3
* ^
* ------------
* 0b11111100 =-4
*/
System.out.println(~f1);//把每个二进制位的1换成0,0换成1
}
}
“`