java面试题

Java的三大特性

封装:隐藏内部具体实现细节,只保留和外部交流数据的接口。
继承:一个对象可以从它的父类继承所有的通用的属性和方法,并在无需重新编写原来的类的情况下对这些功能进行扩展;最大的好处是实现代码的高效重用。(共性抽取)
多态:多态就是同一个接口,使用不同的实例而执行不同操作

面向对象

面向对象的核心,就是类和对象。
类是对象的描述
对象叫做类的实例化(Instance)
1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。
亲力亲为
2、去饭店,张开嘴:老板!来一份鱼香肉丝!

函数式接口

函数式接口的定义:任何接口,如果只包含一个抽象方法,那么他就是一个函数式接口
public interface Runnable{
	public abstract void run();
}

重写(Override)和重载(Overload)?

重载:方法的名称【一样】,参数列表【不一样】
与返回值类型无关
重写:方法的名称【一样】,参数列表【也一样】。覆盖、覆写,外壳不变,核心重写
	- 必须存在继承关系
	- 重写的方法、返回值类型、参数列表必须和父类的方法保持一致
	- 子类的访问修饰符不能低于父类方法的访问修饰符 public

自动装箱和拆箱

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

super()和this()

this1.当成员变量和局部变量重名,用关键字this来区分
	  2.this代表当前对象,this就是所存函数所属对象的引用(哪个对象调用了this所在的函数,this就代表谁)
	  3.this(参数列表),调用本类中重载的构造方法,必须放在第一行。
super1.使用super调用父类的成员方法和属性
	  2.可以从子类构造方法中调用父类的构造方法,必须放在第一行。

数组和链表的区别

1.存储位置上:
	数组逻辑上相邻的元素在物理存储位置上也相邻,而链表不一定;
2.存储空间上:
	数组是连续的一段内存空间;链表存放的内存空间可以是连续的,也可以不连续的
3.长度可变性:
	数组长度一旦声明不可变,链表的长度是按照实际需求进行分配的
数组的优点:随机访问性强;查找速度快;

sleep和wait的区别

sleep() 方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,
等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间。
因为sleep()static静态的方法,他不能改变对象的机锁,当一个synchronized块中调用了sleep() 方法,
线程虽然进入休眠,但是对象的机锁没有被释放,其他线程依然无法访问这个对象。
wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁,
使得其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程

线程的生命周期

新建
就绪
运行
阻塞
死亡
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值