一 数据类型
1.内置数据类型
2.引用对象
(1)接口,数组,类,字符串等都是引用类型
(2)所有引用类型的默认值都是null
(3)引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型
例:Site site = new Site("Runoob")
3.常量
在Java中使用 final 关键字来修饰常量 常量在程序运行时是不能被修改的
4.自动类型转换
规则 :
1.不能对boolean类型进行类型转换
2.不能把对象类型转换成不相关类的对象
3.把容量大的类型转化成容量小的类型时 需要使用强制转换
4.转换过程中可能会导致溢出或者精度损失
5.强制类型转化
条件是转换的数据类型必须是兼容
6.关于String
1.String str1="aa";String str2=new String("aa") 两种方法的内存示例图:
str1首先去方法区中的常量池中检查是否有常量aa,如果有直接指向,如果没有则先创建常量并指向,通过new创建 出来的,会向堆中申请内存,来存储aa对象,将字面量存放在方法区中
字符串相加的时候,如果相加的都是静态字符串,那么跟直接赋值相同,会先检查字符串常量池中字符串是否存在,如 果经存在,就直接指向,如果不存在,就将字符串添加进常量池并且指向【Strings6="Hello"+"World"跟String s1="HelloWorld"实质上是相同的,String s6="Hello"+"World"在编译阶段就会被处理成String s6="HelloWorld"】,所以 输出语句3输出为true;如果相加时包含了变量,如String s7=s3 + s4中包含了s3,s4两个变量,那么就相当于通过new 关键字来创建,因此输出语句4输出为false