1、回顾
环境:JDK(JAVA_HOME,PATH),Eclipse(workspace)
数据类型(基本类型,引用类型)
基本类型(byte、short、int、long、float、double、char、boolean)
2、八种基本类型(续)
2.1)char
表示字符或字符的整数数字编码
2.2)基本类型的字面值(五条)
2.2.1)整数字面值是int类型
int a = 67567; //错,右边字面值是int,但超出int范围(-231到231-1)
2.2.2)byte,short,char三种比int小的整数,允许用范围内的值直接赋值
byte a = 127; //右侧是byte类型
byte b = 128; //右侧是int类型(byte范围-128到127)
2.2.3)浮点数字字面值是double
double d = 3.14;
float g = 3.14; //错,右侧是double类型。可以改为float g = (float)3.14;
2.2.4)字面值的后缀
L - long --> long a = 999999L;
F - float --> flaot f = 3.14F;
D - double --> double a = 3.0; double b = 3D;
2.2.5)进制前缀
0x - 16进制 --> 0xff 255
0 - 8进制 --> 0377 255
u - char类型16进制 --> 必须完整表示char类型的两个字节值。 'u0061' 97 'a'
2.3)16进制
用二进制4位可以表示任意一个16进制字符,用两个16进制数字字符可以方便的表示二进制8位,一个字节值。
2.3)基本类型的运算规则(5条)
2.3.1)运算结果的类型,与最大的类型一致
3/2 得 1(两个类型都是整数int) 3d/2 得 1.5(一个int整数,一个double)
2.3.2)byte,short,char三个比int小的整数,运算时会先自动转成int
byte a = 3; byte b = 4;
byte c = a + b; //错,右侧是int+int,结果是int类型
2.3.3)整数运算溢出
类似时钟,从最小加到最大,再加回到最小
Integer.MAX_VALUE + 1 是负数最小值(最大值+1变成最小数)
2.3.4)浮点数运算不精确
2 - 1.9 得 0.1000000000000009。 4.35 * 100 得 434.9999999999999994
根据IEEE754规范,做某些浮点数运算时,会产生不精确结果(Java提供了精确运算的方法,后面会提到)
2.3.5)浮点数的特殊值
Infinnty - 无穷大 - 2.14/0 NaN - Not a Number - Math.sqrt(-4)
*可以自己多试验一些计算
2.5)基本类型转换
2.5.1)小 --> 大
自动转换,整数转浮点数可能会不精确。 byte a = 127; int b = a;
2.5.2)大 --> 小
会有数据损失,必须要强制转型,浮点数转成整数直接舍弃小数位。
int a = 222; byte b = (byte)a;
int a = 356; byte b = (byte)a;//结果为100(溢出)
3、基本类型小结
要记住八种基本类型字节量和基本类型的运算规则(5条),可以多练习一下。
4、方法
命名的代码块,方便重复调用,方法参数
5、运算符
+-*/ | |
+ | 数学运算字符串连接运算 |
% | 取余,求模判断a能否被4整除,看a%4 余数是否是0 |
==!= | 是否相等是否不相等 |
> >= < <= | |
&& | 逻辑与左边是真,并且右边是真,结果才是真短路与,左边是假,右边被忽略不执行 |
|| | 逻辑或左边是真,或者右边是真,结果都是真短路或,左边是真,右边被忽略不执行 |
! | 非非真是假,非假是真用来做相反的条件判断//如果"非a"是真,即a是假if(!a) {} |
& | 位与上边是1并且下边是1,结果是1 |
| | 位或上边是1,或者下边是1,结果都是1 |
^ | 异或不同是1对同一个值异或两次,得到原值 |
~ | 求反1变0,0变1 |
>> | 带符号右移位符号位是1,左边补1右移1位相当于除2 |
>>> | 不带符号右移位符号位是1,左边补0 |
<< | 左移位左移1位相当于乘2 |
++-- | 自增、自减a = 5;print(a++);//先取值再自增1. 先取原值5,等待打印2. a自增变成63. 打印原值5 a = 5;print(++a);//先自增再取值1. 先自增变成62. 取新值6,等待打印3. 打印新值6 |
5.1)位运算
如果对此文章有什么不明白或疑惑的欢迎留言一起探讨,如果有什么问题欢迎批评指正。