1

1.什么是面向对象?面向对象和面向过程的区别?
面向对象编程是数据的抽象、封装、继承和多态这些概念。
面向对象是宏观的,强调对象之间的交互和抽象;
面向过程是微观的,强调函数和数据的分离。

2.什么是类和对象?
类是一种抽象的蓝图,描述了对象的属性和方法。对象是类的具体实例,拥有类定义的属性和方法。

3.成员变量和局部变量的区别?
成员变量是属于对象的,而局部变量是属于方法或代码块的。
成员变量存放在堆内存,局部变量存放在栈内存。	
成员变量有初始值,局部变量无初始值 。
4.基本数据类型和引用数据类型的数据存储区别?
基本数据类型就是值类型,值类型的数据存储在栈内存中,引用数据类型存储在堆内存中。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

2

1.什么是类的封装?
类的基本封装是通过限制成员变量和方法的可访问性,使用访问修饰符控制外部代码对类内部的数据和实现的访问,提高代码的安全性和可维护性。

2.什么是属性的验证赋值?
属性的验证赋值是在设置属性值之前,对输入值进行检查和验证,确保其满足预定条件,然后再将其赋值给属性。这有助于防止不合法的值被分配给属性,维护数据的一致性和可靠性。

3.this关键字的概括
this关键字用于引用当前对象,通常在类的方法内部使用,以区分成员变量和局部变量名冲突。它允许访问当前对象的成员和方法,用于在类内部操作对象的属性和行为。

4.什么是构造方法?
构造方法是类中的特殊方法,用于在创建对象时初始化对象的属性,没有返回值,与类同名。它自动调用,确保对象的初始设置。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

3

1.构造方法和普通的成员方法有什么区别?
构造方法:对象创建时要执行的方法
成员方法:对象构造之后执行的方法

2.类的封装的好处是什么?
类进行封装之后,它的属性为私有属性,我们可以根据具体情况,可以只提供一种对外的方法,那么属性就是可读或者可写,也可以提供两种对外的方法,那么属性就是可读和可写。这样类进行基本封装,提高了属性的访问安全性。


3.四种访问修饰符的区别是啥?(表格)



4.构造方法的特点是什么?
完成初始化赋值操作,并不是创建对象
方法名称必须和类名保持一致
不需要定义返回值和void
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

4

1.浅析super和this的区别
1.this和super都只能在对象内部使用。
2.this代表当前对象本身,super代表当前对象的父类型特征。
3.this.是区分成员变量和局部变量,而“super”是区分是子类的成员还是父类的成员。
4.super和this关键字都只能出现在构造方法的首行


2.简单说一下继承有哪些特性
1.Java只支持单继承,即一个子类只能继承一个父类。
2.在Java中,子类的构造方法需要调用父类的构造方法。如果没有显式调用父类的构造方法,则会默认调用父类的无参构造方法。
   如果父类没有无参构造方法,则必须在子类的构造方法中显式调用父类的有参构造方法。
3.继承有哪些好处
实现代码的复用和扩展
实现多态和动态绑定
实现框架和模板设计

4.方法的重写和重载有什么区别

1、定义不同:重载是定义相同的方法名、参数不同,重写是子类重写父类的方法
2、范围不同:重载是在一个类中,重写是子类与父类之间的
3、参数不同:重载的参数个数、参数类型、参数的顺序可以不同,重写父类子方法参数必须相同
4、修饰不同:重载对修饰范围没有要求,重写要求重写方法的修饰范围大于被重写方法的修饰范围
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

5

1.简述一下String和StringBuffer,StringBuilder的区别
1、如果我们字符串很少修改,被多个对象引用,使用String
2.如果字符串存在大量的修改操作,一般使用StringBuffer 或StringBuilder
3.如果字符串存在大量的修改操作,并在单线程的情况,使用 StringBuilder
4.如果字符串存在大量的修改操作,并在多线程的情况,使用 StringBuffer


2.equals和 == 的区别

== 既可以比较基本类型,也可以比较引用类型
①如果比较的对象是基本数据类型,则比较的是其存储的值是否相等;
②如果比较的是引用数据类型,则比较的是所指向对象的地址值是否相等(是否是同一个对象)。

equals是Object的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值。
在String中,equals方法则进行了重写,是比较每一个字符是否相等。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

6

1.异常的分类
Java中的两种异常类型包括运行异常和编译异常。
编译异常是在编译时必须处理的异常,例如IOException等。
运行异常是运行时出现的异常,例如NullPointerException等。
2.简述一下处理异常的两种方法
try-catch语句块:在try语句块中编写可能抛出异常的代码,并在catch语句块中编写处理异常的代码。
当try语句块中发生异常时,程序会跳转到对应的catch语句块中处理异常。

throws关键字:使用throws关键字将异常抛给上一级处理,例如调用该方法的其他方法或Java虚拟机。
这种方法适用于比较严重的异常和程序员无法预料或无法完全避免的异常情况。

3.简单说一下抛出异常和声明异常的区别
抛出异常需要手动创建异常对象并使用throw关键字抛出;
声明异常则是在方法签名中使用throws关键字声明该方法可能抛出的异常类型,
但不需要显式地处理异常对象,由系统自动传递给上级方法进行处理。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

7

1.什么是集合,请列举集合中常用的类和接口?
为了使程序能方便的存储和操作数目不固定的一组数据,JDK提供了一套类库,这些类都位
于java.util包中,统称为集合。
集合分为两种,一种是单列集合Collection,一种是双列集合Map。
Colection中有ArrayList、LinkedList和HashSet等。
Map中有HashMap,TreeMap等。
2.集合中的List、Set、Map有什么区别?
List的特点是元素有序、元素可重复。
List接口的主要实现类有ArrayList和LinkedList。
Set的特点是元素无序、元素不可重复。
Set接口的主要实现类有HashSet和TreeSet。
Map的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。
Map接口的主要实现类有HashMap和TreeMap。
3.请说说Collection和Collections的有什么区别?
Collection是一个单列集合接口。它提供了对集合对象进行基本操作的通用方法。
Collections是一个工具类。它包含各种有关集合操作的方法。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

8

1.有几种方法可以实现一个线程?
一种是继承Thread类,重写Thread类的run()方法,在run()方法中实现;
另一种就是实现Runnable接口,在run()方法中实现。
2.简述一下sleep和wait方法
调用sleep()方法,正在执行的线程主动让出CPU去执行其他线程,在sleep()方法指定的时间过后,CPU才会回到这个线程上继续往下执行;
wait()在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。
4.简述一下字节流,字节缓冲流的使用
字节流有两种类型:InputStream和OutputStream。InputStream用于从文件或其他数据源中读取数据,而OutputStream用于将数据写入文件或其他数据目的地。
字节缓冲流提供了缓冲功能,可以提高读写效率。字节缓冲输入流用于从文件或其他数据源中读取数据,并将其存储在缓冲区中,以便快速读取。字节缓冲输出流用于将数据写入缓冲区中,并在缓冲区满或刷新时将其写入文件或其他数据目的地。
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.