编程语言
首页 > 编程语言> > 《码出高效:Java开发手册》学习笔记2

《码出高效:Java开发手册》学习笔记2

作者:互联网

一、面向对象相关概念
面向对象四大特性:抽象、封装、继承、多态。
本书将“抽象"作为面向对象的特性之一,支持面向对象“四大特性"的说法。
在面向对象的思维中,抽象分为归纳和演绎。 前者是从具体到本质, 从个性到共性,将一类对象的共同特征进行归一化的逻辑思维过程;**后者则是从本质到具体,从共性到个性,逐步形象化的过程。**在归纳的过程中,需要抽象出对象的属性和行为的共性,难度大于演绎。演绎是在已有问题解决方案的基础上,正确地找到合适的使用场景。
Java中的Object类是一切的父类,是对所有物体的抽象。
(1) 我是谁?getCIass()说明本质上是谁,而toString()是当前职位的名片。
(2) 我从哪三来?Object()构造方法是生产对象的基本步骤,clone()是繁殖对象的另一种方式。
(3) 我到哪里去? finalize()是在对象销毁时触发的方法。
(4) 世界是否因你而不同?hashCode()和equals()就是判断与其他元素是否相同的一组方法。
(5) 与他人如何协调?wait()和notify()是对象间通信与协作的一组方法。
PS: Object中的clone()方法分为深拷贝和浅拷贝,可具体参考以下文章

https://www.cnblogs.com/nickhan/p/8569329.html
https://www.cnblogs.com/ysocean/p/8482979.html
二、初始Java
jdk和jre的概念及区别
JRE是Java Runtime Environment的缩写,顾名思义是java运行时环境包含了java虚拟机,java基础类库。 是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的,还有所有的Java类库的class文件,都在lib目录下,并且都打包成了jar
JDK是Java Development Kit的缩写,顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具: jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。如果需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,需要安装JDK。
三、类相关
1、接口与抽象类的区别
在这里插入图片描述
抽象类在继承时体现的是is-a的关系,而接口在被实现时体现的是can-do的关系。
2、内部类
在这里插入图片描述
关于内部类的理解:
1、关于成员内部类和静态内部类,public, protected, 默认, public对他们修饰是起相同作用的。
2、可以用静态内部类作为线程的启动类,实现Runnable接口。
3、访问权限控制
在这里插入图片描述
在对成员变量或者方法限定权限时主要注意以下几点:

五、构造方法
类中的构造函数与静态代码块之间的执行顺序:
首先执行父类中的静态代码块,在执行子类中的静态代码块,再执行父类构造方法,子类构造方法。静态代码块只会执行一次。
静态方法的使用注意事项:

六、泛型
泛型可以定义在类、接口、方法中,编译器通过识别尖括号和尖括号内的字母来解析泛型,在进行泛型定义时,约定俗成的符号包括:E代表Element,用于集合中的元素,T代表type of object表示某个类,K代表key,V代表value,用于键值对元素。
泛型在使用时的几点注意地方:
1、尖括号里的每一种元素都代表一种未知类型。比如说如果String出现在泛型中,那么他就不再是java.lang.String,而仅仅是一种代号,代表了一种类型约定。类名后方的泛型和方法中使用的泛型是两个指代,可以完全不同,不受影响。
2、尖括号的位置必须在类名之后或方法返回值之前。
3、泛型在编译之后仍然是Object类型,泛型只是一种语法规定。所以在使用泛型时,他只能调用Object类中的方法,同时最后会进行强制类型转换。

七、数据类型

标签:码出,Java,手册,参数,泛型,java,序列化,方法
来源: https://blog.csdn.net/u_ranfa/article/details/99937211