提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
记录下学习历程(简洁,扼要)
一、JVM
JVM 是Java运行字节码的虚拟机。
二、字节码
JVM可以理解的代码叫做字节码(也可以简单理解为.class 文件)
1 java程序源代码到运行

JVM在不同系统中有着特定的实现,可以执行相同的字节码,故而可以做到,程序的运行与平台无关。
2 java编译型和解释型语言共存
编译型:将源码一次性翻译成机器可执行的机器码
解释型:将源码逐行解释成机器可执行的机器码,并立即执行。
对于java来说,它既是编译型,亦是解释型。首先需要将.java文件编译成字节码(.class文件),然后这种字节码必须由java解释器来执行。
三、JDK&JRE
JDK包括JRE
JDK:java 开发工具包(javac,javadoc,其它一些工具)
JRE:java 运行时环境(JVM,java类库等)
四、JAVA&C++
均是面向对象的语言,具有封装,继承,多态特性
java:单继承
c++:多继承
五、泛型
泛型:不确定的数据类型
例如:ArrayList<E> E就是泛型,可代表不同的数据类型
好处:
- 运行时问题提前到编译时发现
- 可以不用再强转类型
泛型擦除的实现方式:反射。
六、==和equals的区别
==
- 基本数据类型:比较的是值
- 引用数据类型:比较的是其内存地址
equals()
- 未重写equals方法,比较的是地址值
- 重写了equals比较的是对象的内容是否相同
例如String重写了equals方法,在比较地址的基础上,又逐个去比较字符串的值是否相等。

七 对于值传递的理解
java当中是值传递,在进行参数传递的时候,主要看该实例参数是否复制了一份值给传递的形参,如果有的话,那就表明是值传递。
相对于引用传递来说,值传递进另一方法中,方法改变的参数不影响原来的值,而引用传递的是地址,直接改变的话会影响到传递的实参。
八、重载和重写
重载:同一个类中,相同的方法名,参数不同,返回值和修饰符可以不同。
重写:发生在子父类中,方法名,参数,返回值相同。修饰符范围比父类要大或者相等,抛出的异常比父类要小或者相等。
九、深拷贝和浅拷贝
- 浅拷贝:对于基本数据类型来说,值传递;对于引用数据类型来说,进行引用地址的拷贝
- 深拷贝:对于基本数据类型来说,值传递;对于引用数据类型来说,创建一个新的对象,复制其内容。

567

被折叠的 条评论
为什么被折叠?



