JAVA编程思想笔记第2章

一切都是对象

对象与引用
String s; //这里创建的只是引用,并不是对象
String s = new String(“dxp”); //通常使用new操作符来实现引用与新对象之间的关联。
java内存分配
1.寄存器:这是最快的存储区,因为它位于处理器内部。但是寄存器的数量极其有限,而且不能直接控制,也不能在程序中感觉到寄存器的任何迹象。(C和C++允许向编译器建议寄存器的分配方式)
2.堆栈:位于RAM(随机访问存储器)中,其效率仅次于寄存器,堆栈通过堆栈指针实现内存的分配与释放,若堆栈指针向下移动,则分配新的内存,若堆栈指针向上移动,则释放内存。创建程序时,java系统必须知道存储在堆栈内所有项的生命周期,以便于上下移动堆栈指针。
3.:一种通用的内存池,(也位于RAM区),用于存放所有Java对象。编译器不需要知道存储的数据在堆里的存活时间,在创建对象时,只需要使用new操作符写一行简单的代码。但是用堆进行存储分配和清理可能比用堆栈存储分配需要花费更多的时间。
4.常量存储:常量值通常直接存储在程序代码内部。因为他们永远不会被改变。
5.非RAM存储:数据完全存活在程序之外,可以不受程序的任何控制,在程序没有运行时也可以存在,通常的两个例子就是流对象和持久化对象。
基本数据类型

基本类型大小最小值最大值包装器类型默认值
booleanBooleanfalse
char16 bitsUnicode 0Unicode 216-1Character‘\u0000’
byte8 bits-128+127Byte(byte)0
short16 bits-215+215-1Short(short)0
int32 bits-231+231-1Integer0
long64 bits-2^63+263-1Long0L
float32 bitsIEEE754IEEE754Float0.0f
double64 bitsIEEE754IEEE754Double0.0d

boolean类型所占据的空间没有明确指定大小,仅定义为能够字面取值true或者false
Java可以自动将基本数据类型转换为包装器类型,反过来也可以,被称作自动拆装箱。
除此之外,Java还提供了两个用于高精度计算的类:BigIntegerBigDecimal。其中BigInteger支持任意精度的整数,BigDecimal支持任意精度的定点数。
作用域
作用域通常定义了变量名的可见性和生命周期。Java对象不具有和基本类型一样的生命周期,当用new创建一个对象时,它可以存活在作用域之外。

{
	String s = new String("dxp");
}//引用s在作用域的终点就消失了,但是s指向的String对象仍然继续占据内存空间。

static关键字
当声明一个事物是static时,就意味着这个域或者方法不会与包含它的那个类的任何对象实例关联在一起,所以即使未创建某个类的任何对象,也可以调用其static方法或者访问其static域。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值