- 基本数据类型是CPU可以直接进行运算的类型。Java定义了以下几种基本数据类型:byte short int long float double char boolean。
- long结尾加`L`。
long l = 9000000000000000L
- float结尾加`F`。
float f = 3.14e23F
- 自动类型转换:整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级。
byte,short,char—> int —> long—> float —> double
boolean不能进行类型转换
低位数类型可以自动向高位数类型转换
- 引用类型的变量类似于C语言的指针,它内部存储一个“地址”。对象、数组都是引用类型,如:String等
// String具有不可变特性,重新赋值是新开一处空间赋值
String str = "before";
System.out.println(Integer.toHexString(str.hashCode()));
str = "after";
System.out.println(Integer.toHexString(str.hashCode()));
// 输出,地址发生了改变
acfa3f7f
58705dc
// 数组
String[] names = {"lion", "dog", "fish"};
String s = names[1];
names[1] = "cat";
System.out.println(s);
// 输出s是dog,name[1]已经另立门户了,s坚守着name[1]之前的地址。
-
final定义常量,常量在定义时进行初始化后就不可再次赋值,再次赋值会导致编译错误。但是这里说的不能赋值是指不能改变它的指向,它的值还是是可以通过方法改变的,因为这样并没有改变它的指向。
final String s = "abc"; s = "def"; // false s.concat("def"); // right
-
var关键字,用来省略类型名字。
StringBuilder sb = new StringBuilder();
var sb = new StringBuilder();
- 源文件声明规则:
- 一个源文件中只能有一个 public 类
- 源文件的名称应该和 public 类的类名保持一致
- 局部变量:
- 局部变量声明在方法、构造方法或者语句块中
- 访问修饰符不能用于局部变量
- 局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
int i; i = i + 1; // NO
- 实例变量:
- 实例变量声明在一个类中,但在方法、构造方法和语句块之外
- 访问修饰符可以修饰实例变量
- 实例变量具有默认值
- 类变量(静态变量):
- 类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外
- 实例变量具有默认值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)