1.1 java基本类型
java基本类型有8种。
基本类型 | 大小 | 包装器类型 |
boolean | - | Boolean |
char | 16 bit(Unicode) | Character |
byte | 8 bit | Byte |
short | 16 bit | Short |
int | 32 bit | Integer |
long | 64 bit | Long |
float | 32 bit | Float |
double | 64 bit | Double |
知识点一:基本类型和包装器类型之间的关联。
java提供了两种不同的数据类型,一种原始类 即基本类型,另种就是引用类。引用类是原始的封装类。
引用类和原始类在大小上和速度上有所不同。基本类型是数据类型,引用类数据java类,所以对于java类如果创建一个引用对象没有赋值则是null,而基本类型都有默认值,例如int值则是0。
知识点二:char类型
char类型属于unic编码,有两个字节站16位,我们知道一个汉字占两个字节,所以一个char值可以写一个汉字。
知识点三:类型转换。
java中提供低精度可直接转换为高精度值。但是要高精度转换成低精度则需要强制类型转换。
上图中从byte到double精度一次是从低到高。例如A: short a = 1; short b =2; int c = a+b; B int a =1;int b=2;short c =a+b;A 中有short 得到int,属于低精度转换为高精度所以这句话是对的,但是B属于高精度转化为低精度所以是错的,需要强制类型转化 short c = (short) a+b;
知识点四:高精度计算
两个double型或者float型进行加减乘除是容易丢失精度,这时java为我们提供了高精度计算类:BigDecimal。只不过他的加减乘除是靠类的方法实现的,不是直接用运算符。这个类主要用于银行、金融行业货币计算。
1.2 java运算符
1)+,-,*,/,%,++,-- 算数运算符.
需要说明的是1:/是除法运算,其结果只取整数部分;%是取余运算;
2:++或者--在前后是有分别的。++a:先输出a的值 再进行+运算。a++:先运算再输出a的值。
2)位与逻辑运算符
与(&)、非(~)、或(|)、异或(^)位运算符。位运算都是转化为2进制进行运算的,例如5^3则是101^011得到的值是110则为6.
与(&&)、非(!)、或(||)逻辑运算符。
在这里要比较说明下位运算符&和逻辑运算符&&.
共同点:两个都能进行逻辑判断。
不同点:1)位运算符&不但能进行逻辑判断还能进行位运算,例如1&2=0;
2)逻辑运算符&&在判断逻辑时有短路效果,例如if(条件a&&条件b) 这样的语句,如果条件a是false则不用再判断条件b。
3)赋值运算
= += -= *= /= %= &= ^= |= <<= >>=
在这里说明一点:类似于+=等是可以提前进行强制类型转换。例如short a =1;short b=(a+=a);
4)位移运算
<< >>:就是根据二进制规则移动。