》》java数据区域,大致分以下几种
寄存器:位于cpu内部,寄存器的数量有限,所以寄存器根据需求分配。不能直接控制它。
堆栈:位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器那里获得直接支持。如果堆栈指针向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。这一约束限制了程序的灵活性,所以虽然某些java数据存储于堆栈中-特别是对象引用,但是java对象并不存储于这里。
堆:一种通用的内存池(位于RAM),用于存放所有的java对象。堆不同于栈的好处是,编译器不需要知道存储的数据在堆里存活多长时间。用堆进行存储分配和清理可能比用堆栈进行存储分配需要更多的时间。
常量存储:常量值通常直接存放在程序代码内部,这样做是安全的,因为他们永远不会被改变,通常被放在rom中
非RAM存储:如果数据完全存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。其中两个基本的例子是流对象和持久化对象。
》》java基本类型占据空间大小
如果用于高精度运算,可以用BigInteger和BigDecimal替换普通的包装器类型
》》成员基本变量默认值
》》++i和i++区别
++i:先自增,再生成值;i++:先生成值,再自增。
》》逻辑运算符和按位运算符以及位移运算符
逻辑运算符(&&与/||或/!非)布尔运算生成布尔值
按位运算符(&与/|或/~非/^异或)位移运算生成整数
位移运算符(<<左位移运算符,右补0/>>有符号右移运算符,正数左补0,负数左补1/>>>无符号运算符,左补0)