Java重头再来Day05
类型转换
-
由于JAVA是强类型语言,所以在进行有些运算的时候,需要用到类型转换
-
由低到高分别是byte,short,char->int-> long-> float ->double
-
在运算中,不同类型的数据先转换成同一类型,然后进行运算
-
//强制转换 (类型)变量名 高到低 int i = 128; byte a = (byte)i;//-128 由于byte的最大值是127,所以导致了内存溢出
-
//自动转换 低到高,自动转换 int i = 128; double e = i;//128.0 /* 注意点: 1.布尔值类型不能进行转换 2.不能将两个毫不相干的类型相互转换 3.在高容量转换低容量时需要强制转换,反之则会自动转换 4.转换时可能存在精度问题,内存溢出问题 */ System.out.println((int)23.7);//23 System.out.println((int)-45.2f);//-45
-
-
//操作比较大的数值时,注意内存溢出问题 //JDK7新特性,数字之间可以使用_进行分割 int money=10_0000_0000; int years=20; int total=money*years; System.out.println(total);//-1474836480,计算的时候溢出了 long total1=money*years;//-1474836480,这样计算的时候是先计算再转换,所以再计算的时候就已经溢出了 System.out.println(total1); //20000000000,先把一个数值转换为long long total2 = money*(long)years; System.out.println(total2);
变量
-
变量就是可以变化的量
-
JAVA是一个强类型语言,每个变量都必须声明其类型
-
JAVA变量是程序中最基本的存储单元,其要素包括变量名,变量类型,和作用域
- 为了程序可读性,避免一行内多定义多个变量
public class Demo05 { //实例变量,从属于对象(Demo05);如果不自行初始化,这个类型默认为0,0.0 //布尔类型默认为FALSE //除了基本类型,其他默认为NULL String name; int age; //类变量 static 变量名 可以在DEMO05任何一处被调用 static double salary = 2500; //main方法 public static void main(String[] args) { //局部变量,写在方法块里,必须声明和初始化 int a=10; System.out.println(a); //实例变量, Demo05 demo05 = new Demo05(); System.out.println(demo05.name); System.out.println(demo05.age); //调用类变量salary System.out.println(salary); } }
常量
- 初始化之后就不能再改变的值,不会变动的值
- 所谓常量可以理解为一种特俗的变量,它的值被设定之后,在程序运行过程中不允许被改变
- 常量一般使用大写字符
运算符
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解)
- 条件运算符?:
- 扩展赋值运算符:+=,-=,*=,/=