技能树,面试要求重点部分

2023-05-16

一、Java技能树
1、基本语法
这包括static、final、transient等关键字的作用,foreach循环的原理等等。比如面试的时候面试官问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法面试官会认为你合格,答出静态块,会认为你不错,答出静态内部类会认为你很好,答出静态导包会对你很满意,因为能看出你非常热衷研究技术。

2、集合
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,当然能掌握CopyOnWrite容器和Queue是再好不过的了。

还需要了解ConcurrentHashMap的锁分段技术,ConcurrentHashMap的读是否要加锁,为什么,ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器

3、设计模式
知道常用设计模式的优缺点。

能画出常用设计模式的UML图。

4、多线程
Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。

假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?

常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?

synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等。

5、JDK源码
要想拿高工资,JDK源码不可不读,总结一下比较重要的源码:

List、Map、Set实现类的源代码;

ReentrantLock、AQS的源代码;

AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的;

线程池的实现原理;

Object类中的方法以及每个方法的作用。

6、数据库
union和union all的区别、left join、几种索引及其区别,数据库性能的优化。

7、数据结构和算法分析
数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。

8、Java虚拟机
Java虚拟机的内存布局
GC算法及几种垃圾收集器、
类加载机制,也就是双亲委派模型
Java内存模型
happens-before规则
volatile关键字使用规则
9、Web方面的一些问题
分布式Session的几种实现方式
Session和Cookie的区别和联系以及Session的实现原理。
get/post的区别、forward/重定向的区别、HTTPS的实现原理
一致性Hash算法
二、Java面试题
1 Java 基础
1.1 Java 基础语法

面向对象的特征
java 中四种修饰符的限制范围
重载和重写的区别
抽象类和接口有什么区别
Java 基本数据类型
int 和 Integer 有什么区别
说说&和&&的区别
final, finally, finalize 的区别
Object 类中的方法
equals 与 == 的区别
1.2 Java 常用集合

List 和 Set 区别
List 和 Map 区别
Arraylist 与 LinkedList 区别
ArrayList 与 Vector 区别
ArrayList在循环过程中删除,会不会出问题
HashMap 和 Hashtable 的区别
HashSet 和 HashMap 区别
HashMap 的源码,实现原理
HaspMap 扩容是怎样的,为什么都是2的N次幂的大小
HashMap,HashTable,ConcurrentHashMap 的区别
1.3 Java IO 和 NIO

什么是比特(Bit),什么是字节(Byte),什么是字符(Char),它们长度是多少,各有什么区别
java 中有几种类型的流
字符流和字节流有什么区别
什么是 java 序列化,如何实现 java 序列化?
IO 和 NIO 区别
ByteBuffer 与 StringBuffer 有什么区别
内存映射缓存区是什么
直接缓冲区与非直接缓冲器有什么区别
原生的 NIO 在 JDK 1.7 版本存在 epoll bug
2 多线程
2.1 线程的基本概念

线程和进程的区别
创建线程的方式有哪几种
Callable 和 Future 的了解
线程的生命周期
ThreadLocal 原理分析
sleep 和 wait 的区别
notify 和 notifyAll 的区别
sleep() 、join()、yield()有什么区别
2.2 线程池

为什么使用线程池
线程池的几种实现方式
线程池的实现原理
线程池的停止方法
2.3 锁

synchronized 关键字的用法,优缺点
synchronized 与 lock 的区别
volitile 关键字的作用,原理
CAS 概念及理解
悲观锁和乐观锁
可重入锁的用处及实现原理
3 数据库
数据库锁、行锁
事物的性质
MySQL 索引使用的注意事项
数据库索引的原理
MySQL 数据库的常用存储引擎
4 算法
排序算法
B+树
红黑树
5 框架
BeanFactory 和 ApplicationContext 有什么区别
Spring Bean 的生命周期
Spring 的单例实现原理
Spring IOC 如何实现
说说 Spring AOP
Spring AOP 实现原理
动态代理(cglib 与 JDK)
Spring 框架中用到了哪些设计模式
MVC 设计思想
Spring MVC 运行流程
SpringMVC 的Controller 是如何处理参数的
6 网络
计算机网络的模型
TCP,UDP 区别
三次握手,四次挥手,为什么要四次挥手
长连接和短连接
连接池适合长连接还是短连接
https 原理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技能树,面试要求重点部分 的相关文章

随机推荐

  • hp服务器 高性能计算,HP Gen8:为提升数据中心效率而生

    ZDNet至顶网服务器频道 5月21日 北京报道 文 孟庆 xff1a 距离惠普发布新一代Gen8服务器已经过去快两个月的时间了 对于HP ProLiant Gen8的很多新特性 xff0c 业界也在这期间展开了很多讨论和评测 前不久 xf
  • 【rustdesk】rustdesk-server-go

    安装go windows go span class token assign left variable GOPROXY span span class token operator span https goproxy cn direc
  • Linux 多版本php切换

    php开发者经常会遇到这种情况 xff0c 开发用的语言有时是5 3 xff0c 有时是5 6 总不能每次切换版本都要重新安装一次php吧 还好有解决方案 xff0c 就是在系统中编译多个版本的php xff0c 在切换时只需要修改一下快捷
  • 计算机无法连接到打印机主机,电脑连接不上打印机怎么办

    我们工作的时少不了使用打印机 xff0c 可是出现打印机无法连接是怎么回事呢 电脑连接不上打印机怎么办呢 小编为大家介绍一下解决电脑连接不上打印机的具体操作步骤 xff0c 下面大家跟着学习啦一起来了解一下吧 电脑连接不上打印机解决方法 第
  • FTPClient.changeWorkingDirectory()无法进入中文目录

    背景 xff1a 访问ftp xff0c 抽取数据 在访问中文文件夹的时候 xff0c FTPClient changeWorkingDirectory 返回false 查询资料连接 xff1a FTPClient changeWorkin
  • 《算法导论》习题5.3-1 ~ 5.3-7

    算法导论 习题 5 3 1 5 3 7 5 3 5 带星号我抄了一下题目 5 3 6 比较有意思我抄了一下题目 其他的题可以自己对照书 原书第三版 5 3 1 直接考虑第2次循环前 第1次循环后第1个位置的元素是原集合1 n中任意一个元素的
  • 如何搭建spring环境

    起因 今天领导丢给了一个spring 43 flink 43 kafka 43 clickhouse的项目代码 xff0c 这个代码里面已经搭好了框架 xff0c 具体的业务逻辑要从另一套storm 43 kafka 43 elastics
  • LeetCode热题100关于二叉树的题目整理(待更)

    对称二叉树 xff08 simple难度 xff09 https leetcode cn com problems symmetric tree 与本题相同题目 剑指offer28 对称的二叉树 本文思路及解法参考了 剑指offer28 对
  • vscode保存代码,自动按照eslint规范格式化代码设置

    安装 eslint 插件打开用户配置 文件 gt 首选项 gt 设置 搜索setting json填写如下配置 span class token punctuation span span class token string 34 wor
  • React Native 文件“launchPackager.command”无法执行,因为您没有正确的访问权限。

    launchPackager command没有执行权限 请注意chmod 755 后面的路径是你本机launchPackager command的路径 chmod 755 Users huieryun Work newretail o2o
  • Missing essential plugin: org.jetbrains.android Please reinstall Android Studio from scratch

    Missing essential plugin org jetbrains android Please reinstall Android Studio from scratch macos在终端输入 xff1a rm Rf Libra
  • java多态

    多态 1 定义 多态是同一个行为具有多个不同表现形式或形态的能力 多态就是同一个接口 xff0c 使用不同的实例而执行不同操作 它是指在父类中定义的属性和方法被子类继承之后 xff0c 可以具有不同的数据类型或表现出不同的行为 xff0c
  • Java对象的eqauls方法和hashCode方法

    简而言之 xff0c 在集合查找时 xff0c hashcode能大大降低对象比较次数 xff0c 提高查找效率 xff01 Java对象的eqauls方法和hashCode方法是这样规定的 xff1a 1 相等 xff08 相同 xff0
  • 【rustdesk】windows安装vcpkg及配置, rustdesk 客户端依赖库安装

    https github com microsoft vcpkg VCPKG ROOT VCPKG DEFAULT TRIPLET X VCPKG ASSET SOURCES 放入环境变量 G ISOFT vcpkg vcpkg VCPKG
  • test

    1 为什么要有类的继承性 类的继承性可以减少代码冗余度 xff0c 提高代码复用性 xff0c 提高代码操作效率 2 继承的格式 xff08 语法 xff09 子类 extends 父类 3 子类继承父类后有哪些不同 子类范围大于父类 xf
  • Set,list,map

    Set Set集合的特点 xff1a 元素不重复 xff0c 存取无序 xff0c 无下标 Set集合下面有 xff1a HashSet xff0c LinkedHashSet xff0c TreeSet HashSet存储字符串 span
  • String类的final原因

    作者 xff1a 知乎用户 链接 xff1a https www zhihu com question 31345592 answer 114259286 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非
  • Java测试题

    1 Set里的元素是不能重复的 xff0c 那么用什么方法来区分重复与否呢 是用 61 61 还是equals 它们有何区别 它们使用hashcode来区分是否重复 xff0c 首先通过hashcode来判断是否重复 xff0c 如果has
  • Java中Error与Exception的区别

    Error类和Exception类都继承自Throwable类 Error的继承关系 xff1a Exception的继承关系 xff1a 二者的不同之处 xff1a Exception xff1a 1 xff0e 可以是可被控制 chec
  • 技能树,面试要求重点部分

    一 Java技能树 1 基本语法 这包括static final transient等关键字的作用 xff0c foreach循环的原理等等 比如面试的时候面试官问你static关键字有哪些作用 xff0c 如果你答出static修饰变量