java面试题

1.JVM加载class文件的原理

类的加载,是指把类的.class文读入好到内存中, 然后创建字节数组读取.class文件,通过验证,准备和解析三步,最后jvm对类进行初始化

2.char类型能不能储存汉字

可以存储,一个char类型占用两个2字节,所以可以存储汉字

3.抽象类和接口有什么异同

抽象类和接口都不能实例化.但是可以定义抽象类和接口的引用.一个类如果继承了某个抽象类或者实现了某个接口都必须把里面的抽象方法全部实现,否则这个类还是抽象类, 抽象类里面可定义构造器,而接口里面不能定义构造器,而且其中的方法全部是抽象方法

4.java中会存在内存泄漏吗

理论上是不会存在内存泄漏的,因为java有垃圾回收机制(GC) ,而实际开发中,可能会存在,比如hibernate的session中的对象是持久态,垃圾回收机制是不会回收这些对象的,这些对象中存在无用的垃圾对象,如果不即使close, 可能会导致内存泄漏,

5.抽象方法是否可以同时是静态的,是否可以是同时是本地方法,是否可同时被synchronized修饰

都不可以,抽象方法需要被子类重写,而静态的方法不能被重写,两者矛盾,本地方法是被本地代码实现的,而抽象方法不能被实现,

6.静态变量和实例变量的区别

静态变量是被static修饰的,他属于类,不过不属于类的任何一个对象.实例变量是仅依存于某个实例,需要先创建对象然后通过对象才能访问到,

7.GC是什么,为什么要有GC

GC是垃圾回收机制,

8.接口是否可以继承接口,抽象类是否可以实现接口,抽象类是否可以继承具体类

接口可以继承接口,而且支持多继承,抽象类可以继承接口,而且抽象类也可以继承具体类

9.java中的final关键字有那些用法

修饰类,表示不能被继承,修饰方法,表示方法不能被重写,修饰变量,表示变量以后不能被修改

10.如何实现字符串的反转和替换

方法很多,可以自己写实现也可以使用string或stringbuilder中的方法,也可以用递归实现

11.Error和Exception有什么区别

Error是系统级的错误和程序不必处理的异常,Exception是表示需要捕捉或者程序处理的异常

12.try{}里面有一个return,那么紧跟在try{}后面的finall{}里的代码会不会执行,什么时候执行,return前还是后

会执行,在方法返回调用者前执行

13.colliction和collictions的区别

colliction是接口,是set.list的等容器的父接口,collictions是一个工具类,提供了一系列的静态方法来辅助容器操作,,这些方法包括搜索,排序,线程安全等

14.Thread类中的sleep()方法和对象的wait()方法都可以让线程暂停执行,他们有什么区别

sleep()方法(休眠)是线程类的静态方法,会让当前线程暂停执行指定的时间,因此休眠时间结束后会自动回复,wait()方法是object类的方法,导致当前线程放弃对象的锁,进入等待池,只有调用对象的notify()方法,才能唤醒等待池中的线程

15.当一个线程进入一个对象的synchronized方法A之后,其他线程是否可以进入此对象的sysnonym方法B.

不能,其他线程只能访问该对象的非同步方法,同步方法不能进入.

16.请说出线程同步以及线程调度的方法

wait():使一个线程进入等待状态,并且释放这个对象的锁.

sleep() : 使一个正在运行的线程处于睡眠状态,是一个静态方法

notify();  唤醒一个处于等待状态的线程

17.编写多线程有集中实现方式

三种,一种是继承Thread类, 另外在一种是实现Runnable接口,还有一种是实现Callable接口,前两种都是通过重现Run()方法来实现的

18.举例说明同步和异步

例如正在写的数据以后可能被其他线程读到或者正在写的数据已经被其他线程写过了,那么这些数据就必须进行同步存取

当对象调用了需要花费很长使劲来执行的方法 的时候,并且不希望让程序等待方法的返回值,就应该用异步编程.

同步就是指阻塞式操作, 异步就是非阻塞式操作

19.启动一个线程调用start()方法还是run()方法.

调用start()方法.  run()方法是线程启动后需要回调的方法




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值