我以前学习java只是学习java的一些语法,并没有对java这门语言进行全面的了解和认识,前段时间我认真的看了一下《大话设计模式》(现在忘得差不多了),对面向对象有了更深刻的了解。最近又在看java的圣经《java编程思想》,这是一本不可错过的好书,尽管里面有些地方的翻译不专业(如果能看英文版的,尽量去看),但是这里开始讲到java对内存的一些入门知识。打算这本书之后开始《深入理解 Java 虚拟机》。《java编程思想》从17年12月份开始看,看了一个月,1月份让病毒性感冒折腾了一个月,2月份过年没怎么看,现在才看到第7章。离自己定的目标差太远,仍需努力。下面就写一下它的笔记。
第一章
- 广义的接口:? (只可意会),狭义的接口:interface
- 对类的定位:提供服务还是客户端程序。
- 对象的创建和生命周期:内存的管理,和存储方式
第二章
- 程序数据的存储—主要是:堆栈和堆,对象引用和基本类型数据存储在堆栈里,对象存储在堆里。
- 八大基本类型:byte,short,char,int,long,float,double,boolean
包装类:Byte,Short,Character,Integer,Long,Float,Double,Boolean.
高精度“包装类”:BigInteget,BigDecimal - 对象的作用域–准确的说对象没有作用域,在哪都可以使用,但是对象的引用存在作用域。
- 对象的销毁,是通过“忘记”来进行垃圾清理的,运行完之后不再使用(或持有引用的对象不再使用),会被自动清理。
- 成员变量的默认值,方法(域)之内的变量没有默认值。
- static修饰的字段或方法是所有对象所共同拥有的,可以叫做类数据或类方法。static字段对于类来说只有一个存储空间;静态变量存在于方法区中的静态块中;静态变量随着类的加载而存在,随着类的消失而消失。
第三章 就是一些基本的语法,在这里主要是对逻辑运算有了更进一步的理解。
第四章 理解了goto语句在java中的应用,foreach语句
第五章 终结处理和垃圾回收 ,理解垃圾回收的原理https://www.cnblogs.com/andy-zcx/p/5522836.html这里讲的比较清楚。关于年轻代、老年代的比例1:2。Eden:Survivor=8:1。
第六章 知道了环境配置中Path和CLASSPATH的作用,Path是java让系统找到java的命令,可以在cmd中应用这些命令,而CLASSPATH是找到java的一些默认库,可以调用这些类库。private,包访问,protected,public。
第七章 组合和继承的选择:is-a 和 has-a 的关系 , 是否必须向上转型。
final关键字修饰变量和static final修饰变量的区别,只有final修饰的变量是一个对象赋值一次,static fianl修饰的变量值赋值一次。final修饰参数?
final方法不可被继承
final类不可被继承
类的代码只有在初次使用时才被加载,static变量在类加载时才被分配空间,static只会被初始化一次。
类的加载首先加载基类的static。
到这里前7章就结束了,对我的知识很有帮助,这些也比较简单。