Java面试题整理(基础篇)

1.面向对象的三大特征
封装、继承、多态
 
2.JDK、JRE、JVM都是什么,有什么区别
JDK Java Development kit  软件开发工具包  JRE+Java的开发工具
JRE Java Runtime Environment Java运行时环境  JVM+Java核心类库
JVM Java Virtual Machine Java虚拟机
 
3.static关键字

static 关键字主要有以下四种使用场景

  1. 修饰成员变量和成员方法  被修饰的静态变量存放在 Java 内存区域的方法区
  2. 静态代码块   静态代码块定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—非静态代码块—构造方法)。 该类不管创建多少对象,静态代码块只执行一次.
  3. 修饰类(只能修饰内部类)
  4. 静态导包(用来导入类中的静态资源,1.5之后的新特性)
 
4.final关键字
final 关键字主要有以下三种使用场景
         1.修饰变量 必须初始化 如果是基本数据类型的变量,则其数值一旦初始化就不能再更改,如果是引用数据类型则在初始化后就不能再指向另一个对象。
        2.修饰类时,类不能被继承,类中的所有成员默认是final修饰的
        3.修饰方法,把方法锁定不允许修改。
 
5.Java的基本数据类型
byte 、short、 int、 long、 float、 double、 boolean、 char
 
6.方法重写( Overeiding)和方法重载(Overloading)的区别
方法重写是同名,同参,同返回值通常用在继承父类重写父类方法
方法重载时同名不同参,其中参数是不同的参数的类型或参数的个数
 
7.Java不支持多继承,每个类只能继承一个类,但是可以实现多个接口
 
8.接口和抽象类的区别
(1)接口中所有的方法都是抽象的,抽象类可以包含抽象方法和非抽象方法
(2)类可以实现很多个接口,但是只能继承一个抽象类
(3)类如果要实现一个接口就必须实现接口声明的所有方法,类可以不实现抽象类中声明的所有方法,但是,这种情况下该类必须也得声明成抽象的
(4)Java接口中声明的变量默认都是final的,抽象类可以包含非final的变量
(5)Java接口中的成员函数默认是public 的,抽象类可以是private,protected,public的
(6)JDK8后,接口中可以包含default方法,抽象类中不可以
 
9.值传递和引用传递
值传递意味着传递了对象的一个副本,即使改变对象副本也不会影响原对象
引用传递意味着传递的是对象的引用,外部对对象所做的变化会反映到所有的对象上
 
10.==和equals的区别
==:判断两个字符串在内存中首地址是否相同,即判断两者是否是同一个字符串对象
equles():如果没有重写equals()方法比较的是对象的地址.而如果重写equals()方法时两者比较的是内容.
 
11.String、StringBuffer 、StringBuilder的区别
String:不可变字符串, 如果要操作少量的数据用 String。
StringBuffer:可变字符串、效率低、线程安全, 多线程操作字符串缓冲区下操作大量数据 StringBuffer。
StringBuilder:可变字符序列、效率高、线程不安全,单线程操作字符串缓冲区下操作大量数据StringBuilder(推荐使用)
 
12.&和&& | 和 || 的区别
与 &会把整个逻辑算式运行完返回结果,而&&会先执行前面的表达式如果为假直接返回假不再运算后面的表达式    或 ||  同理
 
自己整理的常见面试题后续还会继续更新虚拟机,多线程,集合方面面试题,有问题一起交流.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值