java猿_java程序猿必修技能

25. 在自己的代码中,如果创建一个 java.lang.String 对象,这个对象是否可以被类加载器加载?为什么。

26. 说一说你对 java.lang.Object 对象中 hashCode 和 equals 方法的理解。在什么场景下需要重新实现这两个方法。

27. 在 jdk1.5 中,引入了泛型,泛型的存在是用来解决什么问题。

28. 这样的 a.hashcode() 有什么用,与 a.equals(b)有什么关系。

29. 有没有可能 2 个不相等的对象有相同的 hashcode。

30. Java 中的 HashSet 内部是如何工作的。

31. 什么是序列化,怎么序列化,为什么序列化,反序列化会遇到什么问题,如何解决。

JVM 知识

1. 什么情况下会发生栈内存溢出。

2. JVM 的内存结构,Eden 和 Survivor 比例。

3. jvm 中一次完整的 GC 流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的 jvm 参数。

4. 你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms,包括原理,流程,优缺点

5. 垃圾回收算法的实现原理。

6. 当出现了内存溢出,你怎么排错。

7. JVM 内存模型的相关知识了解多少,比如重排序,内存屏障,happen-before,主内存,工作内存等。

8. 简单说说你了解的类加载器。

9. 讲讲 JAVA 的反射机制。

10. 你们线上应用的 JVM 参数有哪些。

11. g1 和 cms 区别,吞吐量优先和响应优先的垃圾收集器选择。

12. 请解释如下 jvm 参数的含义:

-server -Xms512m -Xmx512m -Xss1024K

-XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxTenuringThreshold=20 XX:CMSInitiatingOccupancyFraction=80 -XX:+UseCMSInitiatingOccupancyOnly。

http://blog.csdn.net/a503921892/article/details/39048889

Xmx3550m:设置JVM最大可用内存为3550M。

-Xms3550m:设置JVM初始内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xss128k: 设置每个线程的堆栈大小。在相同物理内 存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,

经验值在3000~5000左右

-XX:MaxPermSize=16m:设置持久代大小为16m

-XX:MaxTenuringThreshold=0:设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。

如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

开源框架知识

1. 简单讲讲 tomcat 结构,以及其类加载器流程。

2. tomcat 如何调优,涉及哪些参数。

3. 讲讲 spring 加载流程。

4. 讲讲 Spring 事务的传播属性。

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

5. Spring 如何管理事务的。

6. Spring 怎么配置事务(具体说出一些关键的 xml元素)。

7. 说说你对 Spring 的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop 的实现原理,说说 aop 中的几个术语,它们是怎么相互工作的。

8. Springmvc 中 DispatcherServlet初始化过程。

1. Linux 系统下你关注过哪些内核参数,说说你知道的。

2. Linux 下 IO 模型有几种,各自的含义是什么。

3. epoll 和 poll 有什么区别。

4. 平时用到哪些 Linux 命令。

5. 用一行命令查看文件的最后五行。

6. 用一行命令输出正在运行的 java 进程。

7. 介绍下你理解的操作系统中线程切换过程。

8. 进程和线程的区别。

多线程

1. 多线程的几种实现方式,什么是线程安全。

2. volatile 的原理,作用,能代替锁么。

3. 画一个线程的生命周期状态图。

4. sleep 和 wait 的区别。

5. Lock 与 Synchronized 的区别。

6. synchronized 的原理是什么,解释以下名词:重排序,自旋锁,偏向锁,轻量级锁,可重入锁,公平锁,非公平锁,乐观锁,悲观锁。

7. 用过哪些原子类,他们的原理是什么。

8. 用过线程池吗,newCache 和 newFixed 有什么区别,他们的原理简单概括下,构造函数的各个参数的含义是什么,比如 coreSize,maxsize 等。

9. 线程池的关闭方式有几种,各自的区别是什么。

10. 假如有一个第三方接口,有很多个线程去调用获取数据,现在规定每秒钟最多有 10 个线程同时调用它,如何做到。

11. spring 的 controller 是单例还是多例,怎么保证并发的安全。

12. 用三个线程按顺序循环打印 abc 三个字母,比如 abcabcabc。

13. ThreadLocal 用过么,用途是什么,原理是什么,用的时候要注意什么。

14. 如果让你实现一个并发安全的链表,你会怎么做。

15. 有哪些无锁数据结构,他们实现的原理是什么。

16. 讲讲 java 同步机制的 wait 和 notify。

17. 多线程如果线程挂住了怎么办。

18. countdowlatch 和 cyclicbarrier的内部原理和用法,以及相互之间的差别。

19. 使用 synchronized 修饰静态方法和非静态方法有什么区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值