Java基础面试总结

本文详细介绍了Java基础知识,包括JDK、JRE、JVM的关系,Java语言特点,如面向对象、平台无关性、反射机制等。还涵盖了基本数据类型、类型转换、String的不可变性、StringBuffer与StringBuilder的区别、访问修饰符、this与super关键字的用法、面向对象与面向过程的区别。此外,讲解了异常处理、内部类、hashCode与equals的关系、线程的守护与用户线程、IO操作、序列化与反序列化,以及深拷贝与浅拷贝的实现。文章最后讨论了面向对象设计原则SOLID,总结了封装的重要性。
摘要由CSDN通过智能技术生成

1 JDK  JRE JVM关系

1)JDK:java开发工具包,整个Java的核心,它集成了 jre 和一些好用的小工具javac.exe,java.exe,jar.exe 以及Java基础类库。它能够创建和编译程序。

2)JRE:java 运行时环境,包括 Java 虚拟机,Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序,如果只是为了运行一下 Java 程序的话,那么你只需要安装 JRE 就可以了

3)JVM:Java Virtual Machine(Java虚拟机)的缩写,jvm 是 Java 能够跨平台的核心。jvm 只能认识class文件并将它们解释到系统的 API 调用,针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现,同一段代码在编译后的字节码是一样的,从而实现代码的不加修改即可跨平台运行

JDK包含JRE和JVM,JRE包含JVM.

2 JAVA语言特点

  • 1)Java是一种面向对象的语言使用对象调用它的属性/方法
  • 2)Java通过JVM实现了平台无关性,一次编译,到处运行
  • 3)反射机制的存在具有动态编译
  • 4)不支持类的多重继承但可以接口的多实现
  • 5)GC,支持自动垃圾回收
  • 6)支持多线程
  • 7)支持网络编程
  • 8)具有较高的安全性和可靠性

3 JAVA基本数据类型

类型

关键字

包装器类型

占内存

取值范围

默认值

字节型

byte

Byte

1

-128 ~ 127

0

短整型

short

Short

2

-2^15  ~  2^15-1

0

整型

int

Integer

4

-2^31  ~  2^31-1

0

长整型

long

Long

8

-2^63   ~   2^63-1

0L

单精度浮点型

float

Float

4

3.4e-45   ~   1.4e38

0.0F

双精度浮点型

double

Double

8

4.9e-324  ~  1.8e308

0.0D

字符型

char

Character

2

'\u0000'

布尔型

boolean

Boolean

1

true/flase

flase

4 类型转换

  • 隐式(自动)类型转换:从存储范围小的类型到存储范围大的类型。byteshort(char)intlongfloatdouble  short s=1;s=s+1; 报错,改成强转或者s+=1;
  • 显示(强制)类型转换:从存储范围大的类型到存储范围小的类型。doublefloatlongintshort(char)byte。该类类型转换很可能存在精度的损失。

5 自动装箱与拆箱,==与equals

装箱:将基本类型用包装器类型包装起来拆箱:将包装器类型转换为基本类型

 Integer num = 9; 声明一个Integer对象,实际上调用了自动的装箱

Integer num = Integer.valueOf(9);  

进行计算时隐含的有自动拆箱  System.out.print(num--);

 ----------------------------------------------------------------------- -- ---------  --------------------------------

创建Integer对象的时候,如果数值在[-128,127]之间,便返回指向已经存在的对象的引用;否则创建一个新的Integer对象

Integer.valueOf函数

public static Integer valueOf(int i) {

 return  i >= 128 || i < -128 ? new Integer(i) : SMALL_VALUES[i + 128];}

IntegerShortByteCharacterLong这几个类的valueOf方法的实现是类似的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值