JAVA基础(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

记录下学习历程(简洁,扼要)


一、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当中是值传递,在进行参数传递的时候,主要看该实例参数是否复制了一份值给传递的形参,如果有的话,那就表明是值传递。
相对于引用传递来说,值传递进另一方法中,方法改变的参数不影响原来的值,而引用传递的是地址,直接改变的话会影响到传递的实参。

八、重载和重写

重载:同一个类中,相同的方法名,参数不同,返回值和修饰符可以不同。
重写:发生在子父类中,方法名,参数,返回值相同。修饰符范围比父类要大或者相等,抛出的异常比父类要小或者相等。

九、深拷贝和浅拷贝

  • 浅拷贝:对于基本数据类型来说,值传递;对于引用数据类型来说,进行引用地址的拷贝
  • 深拷贝:对于基本数据类型来说,值传递;对于引用数据类型来说,创建一个新的对象,复制其内容。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值