一 ,基本数据类型
1.整数型数据的常量默认为int型,声明long型需在值后加"l"或“L”。
2.float类型变量声明时,数值后加F,f 。double数值后无需加任何。
3.浮点数=符号位+指数位+尾数位(计算机组成原理也有提)。
4.编程时需注意,小数比较时,使用相减的方法。
二 ,数据类型的转换
1.基本类型转成String型,将基本型的后+" "即可。
2.String型转成基本类型,通过调用基本类型的包装类调用parsexx方法。
3.自动类型转换:进行赋值或运算时,精度小的类型自动转换为精度大的类型。
4.byte,short和char之间运算时,会将数值类型变为int型。(下图有演示)
5.boolean不参与转换。
6.自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。
7.byte,short和char之间不能相互转换。(上图就可看出三者之间无法相互转换)
8.转换中精度大的类型不能转换为精度小的类型。 (会有精度的损失)
byte a = 3;
byte b = 4;
short c = 5;
int d = a + b;//正确,a + b => int
byte e = a + b;//错误,a + b => int
int f = a + c;//正确,a + c => int
以上代码演示byte与short之间运算时,数值会转换为int型。同理前两者与char类型运算时都会转换为int。(第6点的演示)
三 ,运算符
system.out.println(10/4);//数学中值为2.5,但在java中为2
system.out.println(10.0/4);//java中为2.5
double a = 10 / 4;// 10 / 4 = 2
system.out.println(d);// d = 2.0
1.数值输出的精度细节(萌新容易忽视的小细节)
2.取余%的本质:a % b = a - a / b *b,操作实例如下:
system.out.println(10 % 3);//10 % 3 = 10 - 10 / 3 * 3 = 1
system.out.println(-10 % 3);//-10 % 3 = -10 - (-10) / 3 * 3 = -1
system.out.println(10 % -3);//10 % -3 = 10 - 10 / -3 * (-3) = 1
system.out.println(-10 % -3);//-10 % -3 = -10 - (-10) / -3 * (-3) = -1
实例(加深对第一点的认识):华氏温度与摄氏温度的转换,如下:
double huashi = 366;
double sheshi = 5 / 9 * (huashi - 100);
System.out.println("华氏温度为"+huashi+"摄氏温度对应为"+sheshi);
///在此情况下摄氏温度输出的值为0.0,因为5的精度不足所以计算机将值小数点后的数值全部省略。
///只需要将5改写为5.0即可
double huashi = 366;
double sheshi = 5.0 / 9 * (huashi - 100);
System.out.println("sheshi="+sheshi);
///正确输出值为147.77777777777777。因为计算机也不知道小数点后有多少位,所以一直进行循环。
3.比较运算符不能写成" = "
4.逻辑运算符:逻辑与 &,短路与 &&,逻辑或 |,短路或 ||。(与,或的概念不需要多说了)
1)&&短路与:如果第一个条件为false,则第二个条件不用判断,结果直接为false。
2)&逻辑与:无论第一个条件是否为false,第二个条件都要判断,效率低。
3)||短路或:如果第一个条件为true,则第二个条件不用判断,结果直接为true。
4)|逻辑或:无论第一个条件是否为true,第二个条件都要判断。
5)与:只要一个条件为false,结果为false。或:所有条件为false,结果为fasle。
6)基本使用的都是短路与 &&,短路或 ||。
5.赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值。
6.三元运算符(实例细节)
int a = 3;
int b = 4;
int c = a > b ? a : b;//如果条件a>b成立,则输出a,否则输出b
int d = a > b ? (int)1.3 : (int)3.5;//可以输出,将小数声明为整型
double e = a > b ? a : b+5;//可以输出,int->double,精度小的类型可转换为精度大的类型
7.标识符:
规则:
1)由26个英文字母大小写,数字0到9,_ 或&组成
2)数字不可以开头:int 3a = 4;// 错误
3)不能使用关键字和保留字,如class,default;
4)标识符不能包含空格:int a b = 4;
命名规范:
1)包名:多单词组成时所有字母都是小写:example.first
2)类名,接口名:多单词组成时,所有单词的首字母大写:CustomerChoice
3)常量名:所有字母都大写。多单词时用下划线连接:TAX_RATE