小工具知识网

当前位置: 首页 > 行业知识 > [Java面试]JavaSE知识回顾

行业知识

[Java面试]JavaSE知识回顾

2026-10-19 07:15:00 来源:互联网转载

���迎来到@边境矢梦°的csdn博文

本文主要梳理Java面试中JavaSE中会涉及到的知识点 

我是边境矢梦°,一个正在为秋招和算法竞赛做准备的学生

喜欢的朋友可以关注一下,下次更新不迷路

目录

变量

基本数据类型与包装类型

运算符

️数组

方法

面向对象编程

面对象和面向过程的区别

面向对象三大特征

封装

继承

多态

接口和抽象类的共同点和区别

拷贝的区别

Object

Object 类的常见方法有哪些?

== 和 equals() 的区别

hashCode() 方法

hashCode() 和 equals()

toString()

finalize()

String

String不可变的原因


 Java SE(Java Platform,Standard Edition): Java 平台标准版,Java 编程语言的基础,它包含了支持 Java 应用程序开发和运行的核心类库以及虚拟机等核心组件。Java SE 可以用于构建桌面应用程序或简单的服务器应用程序。

变量

变量的概念 : 变量相当于内存中一个数据存储空间 的表示,你可以把变量看做是一个房间的门牌号,通过 门牌号 我们可以找到房间,而通过变量名可以访问到变量( 值 ) 。 成员变量与局部变量的区别
成员变量局部变量
语法方式从语法形式上看,成员变量是属于类的,可以被 public,private,static 等修饰符所修饰.局部变量是在代码块或方法中定义的变量或是方法的参数, 局部变量不能被访问控制修饰符及 static 所修饰;final可以修饰.
存储方式存储在对象的内存空间中, 对空间中.存储在栈内存中的局部变量表
生存空间随着对象的创建而存在,随着对象的销毁而消亡随着方法的调用而自动生成,随着方法的调用结束而消亡
默认值成员变量如果没有被赋初始值,则会自动以类型的默认值而赋值不会自动赋值

基本数据类型与包装类型

Java 中有 8 种基本数据类型,分别为:

  • 6 种数字类型:
    • 4 种整数型:byte、short、int、long
    • 2 种浮点型:float、double
  • 1 种字符类型:char
  • 1 种布尔型:boolean。 基本数据类型
    基本类型位数字节默认值取值范围
    byte810-128~127
    short1620-32768(-2^15)~32767(2^15-1)
    int3240-2147483648(-2^31)~2147483647(2^63 - 1)
    long6480L-9223372036854775808(-2^63) ~ 9223372036854775807(2^63 -1)
    char162'u0000'(Unicode编码)0 ~ 65535(2^16 - 1)
    float3240f1.4E-45 ~ 3.4028235E38
    double6480.04.9E-324 ~ 1.7976931348623157E308
    boolean1falsetrue, false

    取值范围减 1 的原因 : 因为在二进制补码表示法中,最高位是用来表示符号的(0 表示正数,1 表示负数),其余位表示数值部分。

    所以,如果我们要表示最大的正数,我们需要把除了最高位之外的所有位都设为 1。

    如果我们再加 1,就会导致溢出,变成一个负数。

    所以就是最高位为1, 再减 1 , 得到的就是取值范围。

    基本数据类型与包装类型的区别
    基本数据类型包装类型
    用途较少使用(工程中)较多使用(泛型中也可以使用)
    存储方式

    基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中;基本数据类型的成员变量(未被 static 修饰 )存放在 Java 虚拟机的堆中。

    包装类型属于对象类型,几乎所有对象实例都存在于堆中。(如果是在缓存范围的,就在方法区中的运行时常量池中)
    占用空间非常小引用+实例所占的空间
    默认值基本类型有默认值且不是 null。成员变量包装类型不赋值就是 null 
    比较方式对于基本数据类型来说,== 比较的是值。对于包装数据类型来说,== 比较的是对象的内存地址。所有整型包装类对象之间值的比较,全部使用 equals() 方法。

    为什么说是几乎所有对象实例都存在于堆中呢? 这是因为 HotSpot 虚拟机引入了 JIT 优化之后,会对对象进行逃逸分析,如果发现某一个对象并没有逃逸到方法外部,那么就可能通过标量替换来实现栈上分配,而避免堆上分配内存。

    ⚠️ 注意:基本数据类型存放在栈中是一个常见的误区! 基本数据类型的存储位置取决于它们的作用域和声明方式。如果它们是局部变量,那么它们会存放在栈中;如果它们是成员变量,那么它们会存放在堆中。

    包装类型的缓存机制

    Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。

    Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,Character 创建了数值在 [0,127] 范围的缓存数据,Boolean 直接返回 True or False。

    如果超出对应范围仍然会去创建新的对象,缓存的范围区间的大小只是在性能和资源之间的权衡。

    两种浮点数类型的包装类 Float,  Double 并没有实现缓存机制。

    public static Character valueOf(char c) {    if (c {值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}

上一篇:为什么三星会爆炸?

下一篇:输入扩展主机是什么