java编程思想总结1

  一切都是对象

1.我们所创建的对象其实都是一种对象引用
例:String s = “abcd”; 其中s是一个引用,访问的就是abcd.
2.对象存储到哪?

名称 解释
寄存器 处理器内部(不能自行控制)
堆栈 jvm里的虚拟机栈,他是通过堆栈指针进行对象的访问(存储对象引用
用于存放所有的java对象,清理内存没堆栈清理效率快
常量存储 常量值(通常放在jvm的方法区内)
非RAM区 可以理解为将数据存储在磁盘上

以下是我看的jvm的内部分布整理的图片:
java编程思想总结1_第1张图片特例:java里有些类型直接存储到堆栈里,而不是堆中,读取来更加高效(8大基本类型加布尔型和void)

基本类型 大小 最小值 最大值 包装类
boolean Boolean
char 16bit(2字节) Unicode o Unicode 2^16-1 Character
byte 8bit(1字节) -128 127 Byte
short 16bit(2字节) -2^15 2^15-1 Short
int 32bit(4字节) -2^31 2^31-1 Integer
long 64bit(8字节) -2^63 2^63 -1 Long
float 32bit(4字节) IEE754 IEE754 Float
double 64bit(8字节) IEE754 IEE754 Double
void Void

3.永远不要销毁对象(如果想知道销毁对象机制,搜索jvm的可达性分析过程)
3.1 作用域(可以理解为在{}内)

{
int x= 12;
{
int x = 96 ; //这地方不行,因为x已经在外部定义
}
}
额外说明 :
{
String s = new String(“a string”) ;
}
其中s这个引用外部无法访问,但是 a string 这个对象已经存在了

4.基本类型创建时,赋予的默认值

基本类型 默认值
boolean false
char ‘\u0000’
byte (byte)0
short (short)0
int 0
float 0.0f
long 0L
double 0.0d

5.static关键字
这关键字的作用就是为了满足:
1.为某一个域分配单一存储空间,无需进行创建对象操作
2.希望某个方法不与包含他的类关联在一起。

你可能感兴趣的:(个人总结)