Java SE面试常见知识点

什么是Java

Java是一门面向对象的编程语言,不仅吸收了C++的许多优点,还摒弃了C++难以理解的多继承、指针等概念。作为静态面向对象编程语言的代表,极好的实现了面向对象的理论。

JVM、JRE、JDK

JVM 是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java可以实现跨平台。

JRE 包括Java虚拟机和Java程序所需要的核心类库。

JDK 包括了Java开发工具和JRE。

在这里插入图片描述

Java的数据类型

基本数据类型:整数类型、浮点类型、数值型、字符型、布尔型。

8个基本数据类型:byte short int long float double boolean char

引用数据类型:类、接口、数组。

Java注释

单行注释,多行注释,文本注释

访问修饰符

  • private:本类可见
  • 默认:本包可见
  • protected:本包及其子类可见
  • public 所有类均可见

在这里插入图片描述

final有什么用

被final修饰的类不能被继承

被final修饰的方法不能被重写

被final修饰的变量不能被修改

this关键字的用法

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

super关键字的用法

super是指向自己超类(父类)的一个指针,是指向离自己最近的一个父类。

static

  1. 被static修饰的变量或者方法独立于该类的任何对象,也就是说这些变量和方法不属于任何一个实例对象,而是被类的实例对象所共享
  2. 静态代码块可以优化程序性能,static静态代码块在类初始化时被加载,且只会被加载一次。
  3. static修饰的变量或方法优先于对象存在,也就是说当一个类加载完毕后,即便没有创建对象,也可以去访问。

面向对象

抽象:将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两个方面,抽象只关注对象有哪些行为和属性,并不关注行为的具体细节

封装:把一个对象的属性私有化,同时提供外界一些可以被访问的属性和方法

继承:把已存在的类作为基础建立新类的技术,可以方便的复用代码

多态:程序中定义的引用变量所指向的具体类型和发出的方法调用,在编程时并不能确定,而是在程序运行期间才能确定

Java中两种实现多态的方式:继承和接口

方法重载是编译时的多态性

方法重写是运行时的多态性

抽象类和接口对比

抽象类用来捕捉子类的通用特性

接口是抽象方法的集合

从设计层面来说:

抽象类是对类的抽象,是一种模板设计

接口是行为的抽象,是一种行为规范

构造方法有哪些特性

名字和类名相同

没有返回值,且不能用void声明构造函数

生成类的对象时自动执行,无需调用

静态方法和实例方法的区别

静态方法可以用 类名.方法名 或者 对象名.方法名的方式调用,实例方法只能用 对象名.方法名 的方式调用。

也就是说调用静态方法时无需创建对象。

静态方法只能使用静态变量和静态方法

实例方法既可以使用静态成员,也可使用非静态成员

重写与重载

重载:发生在同一个类中,方法名相同,但是参数列表不同(参数类型不同,个数不同,顺序不同),与方法返回值与方法修饰符无关。

重写:发生在父子类中,方法名,参数列表必须相同,返回值小于等于父类,抛出异常小于等于父类,访问修饰符大于等于父类

构造器只能被重载,不能被重写

==和equals的区别

==:判断两个对象的地址是否相等,即判断两个对象是不是同一个对象(基本数据类型比较的是值,引用数据类型比较的是内存地址)

equals():也是判断两个对象是否相等,但是有两种情况:

  • 情况1:类没有覆盖equals()方法。等价于==
  • 情况2:类覆盖了equals()方法。一般,我们都覆盖equals()方法来比较两个对象是否相等;若他们相等,返回true

注意:String类型的equals()方法是被重写过的,因为object的equals方法是比较的对象的内存地址,而String的equals方法比较的是对象的值

反射

在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。

反射是框架设计的灵魂

String

String 不是基本数据类型,而是引用类型

String特性:

String是只读字符串,对它的任何操作,都是创建一个新的对象。

使用final定义String类,表示String类不能被继承,提供了系统的安全性

String是不可变的

装箱拆箱

装箱:将基本数据类型用他们对应的引用类型包装起来

拆箱:将包装类型转换为基本数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值