IT培训网 - IT职场人学IT技术上IT培训网
Java程序员不得不看的Java技能树
时间:2019-08-22 11:04:29 来源:编程网 作者:IT培训网 已有:名学员访问该课程
Java技能专业本身就是一颗常青树,不少人纷纷通过Java专业来提升自己的技能,那么怎么样才能拥有过硬的本事呢,怎么样才能掌握Java技能呢?
如果你是一名新手Java程序员,请好好阅读本篇文章,督促自己去不断学习,让自己的方向和目标更加明确。以技能树为基础,以面试要点为大纲,我觉得比抓住什么看什么要更有目的,更能坚持下去。世界瞬息万变,我们要时刻准备着、时刻提高着自己,才能使自己更具有竞争力。
Java程序员不得不看的Java技能树
一、Java技能树
1、基本语法
这包括static、final、transient等关键字的作用,foreach循环的原理等等。比如面试的时候面试官问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法面试官会认为你合格,答出静态块,会认为你不错,答出静态内部类会认为你很好,答出静态导包会对你很满意,因为能看出你非常热衷研究技术。
2、集合
集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,当然能掌握CopyOnWrite容器和Queue是再好不过的了。
还需要了解ConcurrentHashMap的锁分段技术,ConcurrentHashMap的读是否要加锁,为什么,ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器
3、设计模式
知道常用设计模式的优缺点。
能画出常用设计模式的UML图。
java多线程并发
4、多线程
Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。
假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?
常用的线程池有几种?这几种线程池之间有什么区别和联系?线程池的实现原理是怎么样的?
synchronized和ReentrantLock的区别、synchronized锁普通方法和锁静态方法、死锁的原理及排查方法等等。
Java源码分析
5、JDK源码
要想拿高工资,JDK源码不可不读,总结一下比较重要的源码:
List、Map、Set实现类的源代码;
ReentrantLock、AQS的源代码;
AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的;
线程池的实现原理;
Object类中的方法以及每个方法的作用。
6、数据库
union和union all的区别、left join、几种索引及其区别,数据库性能的优化。
7、数据结构和算法分析
数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。
java性能优化
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 原理
掌握好技能,打好基础,在面试的过程中我们就会顺利解决所有的疑难问题。如果你觉得本文对你还有用,那就收藏一下吧,如果你还未从事java开发专业,那就从现在开始学习,走进IT培训网,学习前沿的Java知识和技能,为自己的职场铺平一条阳光之路!
每期开班座位有限.0元试听抢座开始!
温馨提示 : 请保持手机畅通,咨询老师为您
提供专属一对一报名服务。