java读书心得_Java读书笔记总结

内存分配

静态存储区(方法区):主要存放静态数据、全局 static 数据和常量。这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在。

栈区 :当方法被执行时,方法体内的局部变量都在栈上创建,并在方法执行结束时这些局部变量所持有的内存将会自动被释放。因为栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。

堆区 : 又称动态内存分配,通常就是指在程序运行时直接 new 出来的内存。这部分内存在不使用时将会由 Java 垃圾回收器来负责回收。

注意,如果在一个方法中定义了一个引用型变量,例如String s=new String();引用s被存放在栈中,而s指向的是new String()在堆中的地址。

对象的引用。

引用指的是对象的代表,例如String s,这里的s就是引用,将它和String对象关联起来,String s=new String();

别名现象(将一个引用赋值给另一个引用)

Tank t1=new Tank();

t1.a=6;

Tank t2=new Tank();

t2.a=12

t1=t2;

t1.a=27;

这时 t2.a也会变成27,因为将t1被赋予了t2的引用,他们两个指向相同的tank对象.

别名现象只有在对象和对象之间“相等”时,才会出现。

equals和==

在很多面试情况下都会被问到

1.其实在java的基类Object类中的equals方法就是用 ==做判断来比较两个值是否相等,基本类型同样也是用 ==来进行判断的。

2.而在引用类型中,大多都重写了equals方法,所以

equals比较的是对象的内容是否相同,而==比较的是对象的内存地址是否相等

短路现象。

(1<2)&&(3>2)当编译器发现整个表达试有一部分已经为false时,不会执行后面多余的表达式。

return

一方面指定方法返回一个什么值,另一方面会让当前方法执行到return时退出方法。

重载

方法的返回值相同,方法名相同,参数不同的方法,相互为重载方法。

this关键字。

this只能在方法内部使用,表示调用方法的那个对象的引用。

static

声明常亮和静态方法,静态方法内部不能调用非静态的方法,

初始化的顺序

1.变量的初始化优先于方法,包括构造器

2.先静态对象后非静态对象。

3.静态语句块在类加载时已经执行了,静态量在被赋值时已经就初始化了,并存储在静态内存块中。

可变参数 int...f

一个方法的参数是可变参数可以不传值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值