[关闭]
@Catyee 2021-08-02T14:09:59.000000Z 字数 1784 阅读 334

Java基础

面试


Java基础内容,无论是面试还是工作,这一部分内容总是最基础最优先掌握的内容。常温故而知新,会有不同的收获。

一、JDK和JRE的区别

从概念上来说:
JDK:java development kit (java开发工具包)
JRE:java runtime environment (java运行时环境)
从关系上来说,jdk包含了jre。如果你只需要运行java程序,安装JRE就可以了。如果你需要编写java程序,则需要安装JDK。

1.1 JDK

JDK提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行环境JRE,常用的Java基础类库(在jre中)等,是整个JAVA的核心。
JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录。
下图是jdk1.8的安装目录截图:

bin文件里面存放了JDK的各种开发工具的可执行文件,主要的是编译器(javac)
db文件是一个先进的全事务处理的基于Java技术的数据库(jdk自带数据库db的使用)
include文件里面是Java和jvm交互用的头文件
jre为java运行环境
lib文件存放的是JDK工具命令的实际执行程序(jconsole等)

1.2JRE

JRE中包含了jvm、核心类库和支持文件,这些是运行Java程序的必要组件。与JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
下图是jdk1.8安装目录下jre子目录内的截图:

jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre。java基础类库就是在jre的lib目录下,比如java.io,java.util等类库(rt.jar中)

java的平台无关性
使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都提供了相同的接口。
JVM是Java程序跨平台的最核心的部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。其屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
正是因为有了JVM的存在,Java才实现了强大的跨平台特性。

二、java基础类型

java数据类型可以分为两种:基础数据类型和引用数据类型(又叫对象):
基础数据类型:在栈中可以直接分配内存的数据是基本数据类型。
引用数据类型:数据的引用在栈中,但是他的对象在堆中,引用会指向堆中的对象。

基础数据类型:
(一字节8位)
第一类:整型 byte(1字节) short(2字节) int(4字节) long(8字节)
第二类:浮点型 float(4字节) double(8字节)
第三类:逻辑型 boolean(HotSpot虚拟机中是1字节)
第四类:字符型 char(2字节)(无符号)。
java中默认的整数类型是int类型,默认的浮点型是double类型。
基础数据类型转换规则:小可转大,大转小会失去精度。

三、面向对象思想及特性

面向对象思想:
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象以某种方式组合而成。即面向对象的方法用对象分解取代了传统方法的功能分解。
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和方法。数据用于表示对象的静态属性,是对象的装填信息。
(3)对象彼此之间仅能通过传递消息互相联系.
面向对象三大特性
①:封装:把客观事物封装成抽象的类,类可以把自己的数据和方法只让可信的类或者对象操作(可见性修饰符)。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
②:继承:继承指子类可以继承父类的属性和方法。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用父类的属性和方法,除非有需要才进行重写;接口继承是指仅使用接口的属性和方法的名称、但是接口中没有自己的实现所以子类必须自己实现;
③:多态:指一个类的相同方法在它的不同实例中有不同表现形式。这样就可以用父类的引用指向子类的对象。

四、覆盖和重载

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注