前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java常见面试题(一)

Java常见面试题(一)

原创
作者头像
小谢backup
修改2021-03-12 10:45:32
1880
修改2021-03-12 10:45:32
举报
文章被收录于专栏:编程日志编程日志

1、锁优化有哪些思路?

  • 减少锁持有时间
  • 减小锁粒度
  • 锁分离
  • 锁粗化
  • 锁消除

2、虚拟机是怎么优化锁的?

偏向锁

轻量级锁

自旋锁

3javac编译可分为哪三个步骤?

  1. 解析与填充符号表过程;
  2. 插入式注解处理器的注解处理过程;
  3. 语义分析与字节码生成过程。

4、基本垃圾回收算法有哪些?

  • 引用计数(Reference Counting)
  • 标记-清除(Mark-Sweep)
  • 复制
  • 标记-整理(Mark-Compact)

5、引用有几种类型 ?

强引用

软引用

弱引用

虚引用

6、类加载器的分类有哪些?

启动类加载器

扩展类加载器

应用程序类加载器

自定义加载器

7CyclicBarrierSemaphore的区别?

CyclicBarrier能让一组线程到达一个屏障时被阻塞,直到最后一个线程到达时,所有被拦截的线程才会继续运行。与CountDownLatch区别在于这个计数器可以反复使用。

Semaphore则用于做流量控制,特别是公用资源有限的应用场景,比如数据库连接。

8Java中有几种类型的流?

答:字节流和字符流。字节流继承于InputStream/OutputStream,字符流继承于Reader/Writer。在java.io 包中还有许多其他的流,主要是为了提高性能和使用方便。

关于Java的I/O需要注意的有两点:

一是两个对称性(输入和输出的对称性,字节和字符的对称性);

二是两个设计模式(适配器模式和装饰器模式)。

9BIONIOAIO 有什么区别?

  • BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
  • NIO:Non IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
  • AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。

10、创建线程有哪几种方式?

创建线程有三种方式:

  • 继承 Thread 重写 run 方法;
  • 实现 Runnable 接口;
  • 实现 Callable 接口。

内容来源公众号:小谢backup

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2、虚拟机是怎么优化锁的?
  • 3、javac编译可分为哪三个步骤?
  • 4、基本垃圾回收算法有哪些?
  • 5、引用有几种类型 ?
  • 6、类加载器的分类有哪些?
  • 7、CyclicBarrier和Semaphore的区别?
  • 8、Java中有几种类型的流?
  • 9、BIO、NIO、AIO 有什么区别?
  • 10、创建线程有哪几种方式?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档