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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,552评论 0 3
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,867评论 18 399
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,305评论 0 16
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,419评论 11 349
  • 傍晚接二个小的回来,胖胖说我的作业已经在幼儿园做完了,所以允许他在下面玩耍。给妞喝了一碗淮山猪红排骨汤,然后教...
    向往精灵阅读 193评论 0 0