java编程思想读书笔记-1

第一章 对象导论

Java SE5的变化之一是:参数化类型,java称为泛型。

ArrayList<Shape> shapes = new ArrayList<Shape>();解决向下转型时出现的问题

第二章 一切都是对象

2.2.1  存储

寄存器 最快的存储区,位于处理器内部,但是数量极其有限,所以根据需求进行分配,不能人为地直接控制

堆栈    位于RAM中,通过堆栈指针可以从处理器获取支持。但在创建系统的时候,系统需要指导存储在堆栈的所有项的确切的生命周期,以便上下移动堆栈指针。这限制了程序的灵活性,所以只是某些java的数据如java的对象引用存储在堆栈中,但是java对象并不存储在其中。

堆      一种通用的内存池(也位于RAM区),用于存储所有的java对象。不同于堆栈的好处是:编译器不需要知道存储的数据再堆里存活的时间。在创建对象时,只需new即可,执行代码时会自动在堆里进行存储分配。但是,代价是用堆进行存储分配比堆栈需要跟多的时间。

常量存储  常量值通常直接存放在程序代码内部,这样比较安全,不会被改变。有时,在嵌入式系统中,常量本身会和其他部分隔离开,这种情况下,常量可存放在ROM中。

非RAM存储  如果数据完全存活在程序之外,那它可以不受程序的任何控制,在程序没有运行时也可以存在,如流对象和持久化对象。“持久化对象”,对象存在磁盘上,即使程序终止,仍可保持自己的状态。这种存储方式的技巧在于:把对象转化为可以存放在其他媒介上的事物,在需要时可以恢复成常规的,基于RAM的对象。

2.2.2 特例:基本对象

new将对象存储在“堆”里,但针对比较简单、小的变量,不是很有效,所以可以不用new来创建变量,一个并非是引用的“自动”变量,直接存储在堆栈中,更加高效。

基本类型包装器类型
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
voidVoid

高精度数字 BigInteger和BigDecimal,也是包装器,但没有对应的基本类型。

int和integer的区别

int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象

总而言之:如果我们定义一个int类型的数,只是用来进行一些加减乘除的运算or作为参数进行传递,那么就可以直接声明为int基本数据类型,但如果要像

对象一样来进行处理,那么就要用Integer来声明一个对象,因为java是面向对象的语言,因此当声明为对象时能够提供很多对象间转换的方式,与一些常用

的方法。

2.4创建新的数据类型:类

java会给类的成员(基本类型)赋初值,但“局部”变量并不适用,但java会在编译的时候返回错误提示。

基本类型默认值
booleanfalse
charnull
byte(byte)o
short(short)o
int0
long0L
float0.0f
double0.0d

java.lang是默认导入到每个java文件中的。

System.getProperties().list(System.out);

System.getPropertie("user.name");

可以获取从运行的系统中获取的所有的“属性”,提供环境信息。list方法将结果发送给它的参数:System.out

2.8 注释

 // 或/*   */

注释及编码风格请遵循规范

第三章 操作符

3.7.1 测试对象的等价性

==和!=是比较对象的引用,所以对象一般用equals来比较,基本类型直接用==和!=即可。

3.9.1 指数计数法

编译器通常会将指数作为双精度(double)处理,所以float f = 1e-43f中,没有f的话,会有出错提示。

3.11 移位操作符

右移位操作符(>>>),使用“零扩展”,无论正负,都在高位插入0。

第四章 控制执行流程

4.7臭名昭著的goto

用continue 标签和goto 标签实现goto功能,规则为:

1.一般的continue会退回到最内层的循环的开头,并继续执行

2.带标签的continue会到达标签的位置,并重新进入紧接在那个标签后的循环

3.一般的break会中断并跳出当前的循环

4.带标签的break会中断并跳出标签所指的循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值