JAVA面试题-自用

                   JAVA基础

                    说一下 HashMap 的实现原理?

多线程

创建线程有哪几种方式?
线程有哪些状态?
创建线程池有哪几种方式?

redis

Redis的应用场景
Redis支持的数据类型(必考)
zset跳表的数据结构(必考)
Redis的数据过期策略(必考)
Redis的LRU过期策略的具体实现
如何解决Redis缓存雪崩,缓存穿透问题
Redis的持久化机制(必考)
Redis为什么是单线程的?
什么是缓存穿透?怎么解决?
Redis持久化有几种方式?
Redis为什么这么快?(必考)
Redis怎么实现分布式锁?
Redis如何做内存优化?
Redis淘汰策略有哪些?
Redis常见的性能问题有哪些?该如何解决?
Redis的使用要注意什么?

mysql

jvm

运行时数据区域(内存模型)(必考)
垃圾回收机制(必考)
垃圾回收算法(必考)
Minor GC和Full GC触发条件
GC中Stop the world(STW)
各垃圾回收器的特点及区别
双亲委派模型
JDBC和双亲委派模型关系
JVM 中一次完整的 GC 流程是什么样子的,对象如何晋升到老年代,说说你知道的几种主要的 JVM 参数

1、JVM内存模型

2、JVM垃圾回收算法

3、JVM运行内存的分类

4、Java内存堆和栈区别

5、JVM垃圾收集器有哪些?以及优劣势比较?

6、GC回收机制

7、GC 标记对象的死活

8、MinorGC&FullGC

9、内存分配与回收策略

10、Java类加载机制

项目

算法

框架


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
java面试题真的很多,下面我来回答一个有关多线程的问题。 在Java中实现多线程有两种方式,一种是继承Thread类,另一种是实现Runnable接口。这两种方式有何区别? 继承Thread类的方式是直接定义一个类继承Thread,并重写它的run()方法。然后创建该类的对象,并调用对象的start()方法来启动线程。这种方式简单直接,但因为Java是单继承的,所以如果某个类已经继承了其他类,就不能再直接继承Thread类实现多线程。 实现Runnable接口的方式是定义一个类实现Runnable接口,并实现其唯一的抽象方法run()。然后创建Thread类的对象,将实现了Runnable的对象作为参数传递给Thread类的构造方法。最后调用Thread对象的start()方法来启动线程。这种方式灵活性更大,因为Java允许一个类实现多个接口,所以即使某个类已经继承了其他类,仍然可以通过实现Runnable接口来实现多线程。 另一个区别在于资源共享的问题。继承Thread类的方式,不管是数据还是方法,都是线程自己拥有的,不存在共享的情况。而实现Runnable接口的方式,多个线程可以共享同一个对象的数据和方法,因为多个线程共同操作的是同一个Runnable对象。 总结来说,继承Thread类方式简单直接,但只能通过单继承来实现多线程;实现Runnable接口方式更灵活,可以解决单继承的限制,并且多个线程可以共享同一个Runnable对象的数据和方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值