数据类型容量
低--------------------------------------------------------->高
byte ,short ,char ---> int ---> ling -->float --->double
强制类型转换 高容量转成低容量 : (类型)变量名
自动类型转换 低容量转成高容量
int i=128;
double b = i; //低容量转换成高容量 自动转换
byte c = (byte)i;//高容量转成低容量的时候 强制转换
System.out.println(b+" "+c+" ");
//b : 128.0 c : -128 byte范围是-128~127 溢出
注意事项
-
不能对boolean值进行转化
-
不能把对象类型转换为不相干的类型
-
在把高容量转到低容量的时候 强制转换
-
转换的时候可能存在内存溢出 或者精度问题
防范溢出举例
//操作比较大的数 数字之间可以用下划线分割
int x = 10_0000_0000;
int y = 20;
int total = x*y;//-1474836480 计算的时候溢出了
long total2 = x*y;
//默认是int 是按照这两个数是int来计算的 刚计算出来的结果是int类型
//再转换成long之前就已经溢出
long total3 = x*(long)y;//先把一个数转化成long 计算正确
System.out.println(total+" "+total2+" "+total3);
//精度问题
System.out.println((int)23.7);//23
System.out.println((int)-95.2);//-95
变量
要素
变量类型 变量名
局部变量: 方法里的变量-- 必须在使用前先初始化
实例变量: 在类里面 方法的外面 --实例变量如果不初始化 会自动赋值为默认值
类变量: static ---static double a = 10;
常量
//常量 一般都用大写字母你
//修饰符 不分前后顺序
//静态常量
final static double PI = 3.14;
命名规范
-
所有变量 ,方法,类型 : 见名知意
-
类成员变量: 首字母小写 + 驼峰原则 : monthSalary
-
局部变量 : 首字母小写 + 驼峰原则
-
常量: 大写字母 +下划线 MAX_VALUE
-
类名 :首字母大写 + 驼峰原则 : Man GoodMan
-
方法名 : 首字母小写 + 驼峰原则 run() runRun()
算数运算符
long a = 10045L;
int b= 100;
short c = 150;
byte d = 8;
System.out.println(a+b);//Long
System.out.println(c+b);//int
System.out.println(d+c);//int 无论有无int 都会转换成int
//强制转换是单目运算符 优先级比+-*%/高 所以要给b+c加上括号 (double)(b+c)
初识Math类
//很多运算我们会使用工具类来执行
double x = Math.pow(3,2); 3^2;
逻辑运算符
java也有短路
a&&b a为false 则不判断b
位运算
/**
A = 0011 1100;
B = 0000 1101;
---------------------------
A&B = 0000 1100
A|b = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16--->2*2*2*2 效率极高!!
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3); //16
字符串连接符 +
int a=10;
int b=20;
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30 按顺序
三元运算符
· 务必熟练掌握
x ? y : z
如果x为true 返回y , 反之返回z
int score = 80;
String type = score>80?"及格":"不及格";
整个表达式返回 及格 给type

浙公网安备 33010602011771号