1. 数据类型转换
1.1 数据类型容量
-
由于Java是强语言类型语言,进行运算时需要类型转换。数据类型容量由低到高如下(详情):
低------------------------------------------------------------------>高
byte,short,char --> int --> long --> float --> double
1.2 转换方式
-
强制类型转换
-
语法表达:(类型名)变量名; 高—>低
-
注意事项
-
不能对布尔值进行转换。
-
不能把对象类型转换为不相干的类型。
-
由高容量数据类型向低容量数据类型进行转换时可能存在内存溢出或者精度问题。
int i = 128; //int 范围:-2147483648~2147483647 //byte 范围:-128~127 double b = (byte)i; //128 超出了-128~127 //强制转换导致内存溢出 System.out.println(i); //输出 128 System.out.println(b); //输出 -128.0 System.out.println((int)23.7); //输出 23
-
-
解决内存溢出的小技巧
int a = 10_0000_0000; //JDK7以上版本可用下划线分割数据,容易辨认 int b = 20; int c = a * b; //结果超出int类型范围 System.out.println(c); //内存溢出 long d = a*((long)b); //将其中一个值转换为long类型。一定要在计算之前进行转换!!! System.out.println(d); //输出 200_0000_0000
-
-
自动类型转换
-
语法表达:系统自动实现 低—>高
char c = 'a'; int i = c + 1; System.out.println(i); //输出 98 System.out.println((char)i); //输出 b
-
2. 变量
2.1 变量概念
-
变量就是可以变化的量。
-
Java是一种强语言类型,每个变量都必须声明其类型。
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName = value; //数据类型 变量名 = 值; //可以使用逗号隔开来声明多个同类型变量,但会降低代码可读性。
-
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符(不能为关键字,只能以A-Z,a-z,$和_ 开头)。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
2.2 变量作用域
-
类变量:含static关键字的变量,可被所属类的任何地方调用。
-
实例变量:存在于类内部,方法外部,可不进行初始化,有默认值。默认值如下:
int : 0,float : 0.0,double:0.0,boolean:false,除基本类型外其余全部为null。
-
局部变量:存在于方法内部,仅可在方法内进行调用,必须进行初始化。
public class Student{ static double money = 0.0; //类变量 String name; //实例变量(属性) int age; //实例变量(属性) public void study(){ String book = "java"; //局部变量 } }
2.3 常量概念
-
常量就是不可变化的量。
-
常量可以理解为一种特殊的变量,它的值一经设定就不会改变。
-
定义类常量时,static与final的关键字顺序可变。
final 常量名 = 值; final double PI = 3.14; //常量名一般使用大写字母表示 static final double MONEY = 0.0; final static double MONEY = 0.0;
2.4 变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写 + 驼峰命名原则:studentName
- 局部变量:首字母小写 + 驼峰命名原则:
- 常量:大写字母 + 下划线:MAX_VALUE
- 类名:首字母大写 + 驼峰命名原则:StudentInformation
- 方法名:首字母小写 + 驼峰命名原则:queryStudent()