[Head First Java]-读书笔记

P41

任何变量只要加上public,final和static,基本上都可以变成全局变量可以取用的常量值


P78

java中所传递的所有东西都是值,但此值是变量所携带的值。引用对象的变量所携带的是远程控制而不是对象本身,若你对方法传入参数,实际上传入的是远程控制的拷贝


P85

局部变量没有默认值


P151

长运算符(&,|)

使用在布尔表达式时会强制虚拟机一定要计算运算符两边的算式。但这个运算符通常用作位运算


P203

抽象类代表此类必须要被extends过,抽象方法表示此方法必须要被重写过。抽象类可以有具体方法实现


P236

对象的生存空间:堆(heap)

方法调用及变量的生存空间:栈(stack)

非primitive对象只是保存对其的引用而已,因此局部变量若为非primitive类型则其对象也还是存在于堆上。


P243

java可以有与类同名的方法而不会变成构造函数,其中的差别在于是否有返回类型,构造函数不会有返回类型。


P256

this()用于 从某一个构造函数调用同一个类的另一个构造函数

只能用在构造函数中,且只能是第一行语句

super()与this()不可兼得


P282

申明final类型的变量时可以有两种初始化方式,初始化之后就不能再改变值了

public final static a=2;

或者

public final static a;

static{

a=2;

}


P432

序列化文件很难让一般人阅读,但它比纯文本文件更容易让程序恢复也比较安全,因为一般人不知道怎么做手脚改数据


P439

如果某实例变量不应该或不能被序列化,那应该将它标记为transient


P476

网页服务器(HTTP)端口号 80

Telnet服务器: 23

POP3邮件服务器:110

SMTP邮局交换服务器:25

聊天服务器:5000


P478

127.0.0.1这个IP有特殊意义,可以代表“本机IP”


P545

public<T extends Animal> void takeThing(ArrayList<T> list)

public void takeThing(ArrayList<Animal> list)

二者是不一样的,前者表示任何被声明为Animal或Animal的子型,后者代表只有ArrayList<Animal>是合法的


P563

equals()与hashCode()



P572

数组的类型是在运行期间检查的,但集合类型检查只会发生在编译期间

takeAnimals(ArrayList<Animal> animals)方法不能使用animals不能为ArrayList<Dog>类型




P574

takeAnimals(ArrayList<? extends Animal> animals)

使用带<?>的类型时,编译器不会让你加任何东西到集合里


P661

String的不变性

String str="0";

for(int i=1;i<10;i++){

str+=i;

}

实际上会创建出10个String对象,虚拟机会把它放到名为“String pool”的特殊存储区中,如果已经出现同值的String,虚拟机是不会重复建立String ,只会引用已存在者。

String Poor不受Garbage Collection管理



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值