java笔记--上水课时复习用(A)(12)
2023-08-19 来源:百合文库
创建出的字符串将存放在数据区,保证每个字符串常量只有一个,不会产生多个副本。
String s0 ="hello";
string s1 = "hello";
String s2 ="he” “ll" "o";
引用类型,都可以用null作为值,也就是说可以在初始化的时候赋值为null
string是引用类型,也就是说可以使用null作为值
null 的意思:无效的、无价值的、空的。bai计算机中通常表示空值,无结果,或是空集合。
int i0 = 1int i1 = 1
以上这种会在内存中存储2个1的值
string s0 = "hello"
string s1 = "hello"
这种的,不会在内存中存在两个"hell6",只存在1一个
堆
┌┬┬┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
├ ┤ ├ ┤
├ ┤ └┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘
├ ┤ ┌┬┬┬┬┬┐
├S2:0X2234┤ ├ 0X2234┤ ┌┬┬┬┬┐
├s1;0X2234┤ ├hello ┤ ├ ┤
├s0:0X2234┤ ├ ┤ ├ ┤
└┴┴┴┴┴┴┴┘ └┴┴┴┴┴┴┘ └┴┴┴┴┘
栈 方法区 静态域
假设"hello"的内存地址xxxxx,声明s0变量时给s0赋值"hello"实际上让s0变量引用"hello"
的内存地址xxXx;当我们再声明变量s1也赋值"hello"的时候实际上也是直接
把已经存在的"hello"的内存地址给s1引用
---基本数据类型转换---
●自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
char→→→→int→→→long→→→float→→→double
String s0 ="hello";
string s1 = "hello";
String s2 ="he” “ll" "o";
引用类型,都可以用null作为值,也就是说可以在初始化的时候赋值为null
string是引用类型,也就是说可以使用null作为值
null 的意思:无效的、无价值的、空的。bai计算机中通常表示空值,无结果,或是空集合。
int i0 = 1int i1 = 1
以上这种会在内存中存储2个1的值
string s0 = "hello"
string s1 = "hello"
这种的,不会在内存中存在两个"hell6",只存在1一个
堆
┌┬┬┬┬┬┬┬┐ ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐
├ ┤ ├ ┤
├ ┤ └┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘
├ ┤ ┌┬┬┬┬┬┐
├S2:0X2234┤ ├ 0X2234┤ ┌┬┬┬┬┐
├s1;0X2234┤ ├hello ┤ ├ ┤
├s0:0X2234┤ ├ ┤ ├ ┤
└┴┴┴┴┴┴┴┘ └┴┴┴┴┴┴┘ └┴┴┴┴┘
栈 方法区 静态域
假设"hello"的内存地址xxxxx,声明s0变量时给s0赋值"hello"实际上让s0变量引用"hello"
的内存地址xxXx;当我们再声明变量s1也赋值"hello"的时候实际上也是直接
把已经存在的"hello"的内存地址给s1引用
---基本数据类型转换---
●自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
char→→→→int→→→long→→→float→→→double