《think in java》读书笔记(一)

Java是建立在C++之上的更为“纯粹”的面向对象的语言,Java中一切都是对象。

CC++是通过指针间接的操控对象,而Java是通过reference操控对象。Java中除了primitive(原始)类型以外,所有类型的对象须程序创建。为了效率,primitive类型的对象可不用new来创建,而且创建的是一个“非reference”的“自动”变量,这个变量保存的值存储在栈中,所以效率更高。Primitive类型包括boolean(t/f),char(16bit,unicode),byte(8bit),short(16bit),int(32bit),long(64bit),float(32bit),double(64bit)void;另外还有两个比较特殊的BigIntegerBigDecimal。在Java中创建数组,实际上是在创建reference的数组,这些reference会自动被初始化为一个null,所以在使用reference以前,必须用对象进行赋值。

Java中数据可以存储到六个地方:1.寄存器(registers):速度最快,由编译器分配;2.栈(stack):位于“常规内存区”,处理器可以通过栈指针直接访问,栈指针下移创建新空间,Java一般把对象的reference放在栈里,但对象没有放在这里;3.堆(heap):是一段“多用途的内存池”,所有Java对象都保存在这里。同栈不同,堆的优点是分配空间时,编译器无需知道该分配多少空间,或者这些数据会在堆里呆多长时间,因为使用堆比较灵活,直接用new就行了;4.静态存储(static storage):还是存放在RAM中,整个程序运行期间都可以访问,可以用static申明;5.固定存储(constant storage):常量值通常直接放在程序里,这样就更安全;6.非内存的存储(Non-RAM storage):完全独立于程序,主要有“流对象”和“persistent对象(保存在磁盘上)”。

作用域:eg{ String s = new String (“a string”); }S这个reference会在作用域结束之后消失,但是S所指的那个String仍然还占着内存。Java的垃圾回收器会自动回收由new创建的且已经没有reference所指的对象。

构建Java程序:namespace一般用域名来避免重复,net.yanhuohy;用import导入其他包中的类,只有java.lang是被默认import进去的;static数据和方法在没有被连到类的任何一个实例之上,也可以直接访问。

注释可以采用/**  ..  */,这样可以用Javadoc提取,也可以嵌入HTML命令,详细参照javadoc的语法。

    编程风格:第一个字母大写来表示一个类的名称,第一个字母小写来表示其他的如方法,数据成员,变量等;对所有都一样的是,如果一个名称里面有多个单词,不要用下滑线,直接连接在一起,但后面的单词首字母都采用大写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值