赤赤赤赤辰

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

类型转换

数据类型容量

低--------------------------------------------------------->高

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 溢出

 

注意事项

  1. 不能对boolean值进行转化

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转到低容量的时候 强制转换

  4. 转换的时候可能存在内存溢出 或者精度问题

 

防范溢出举例

//操作比较大的数 数字之间可以用下划线分割
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

 

Java语法基础02

变量

要素

变量类型 变量名 作用域

局部变量: 方法里的变量-- 必须在使用前先初始化

实例变量: 在类里面 方法的外面 --实例变量如果不初始化 会自动赋值为默认值

类变量: static ---static double a = 10;

 

常量

//常量 一般都用大写字母你
//修饰符 不分前后顺序
//静态常量
final static double PI = 3.14;

命名规范

  1. 所有变量 ,方法,类型 : 见名知意

  2. 类成员变量: 首字母小写 + 驼峰原则 : monthSalary

  3. 局部变量 : 首字母小写 + 驼峰原则

  4. 常量: 大写字母 +下划线 MAX_VALUE

  5. 类名 :首字母大写 + 驼峰原则 : Man GoodMan

  6. 方法名 : 首字母小写 + 驼峰原则 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

 

 

 

posted on 2021-03-06 00:16  咕噜辰  阅读(55)  评论(0)    收藏  举报