作为一个4年程序员至少需要掌握的专业技能
来源:互联网 发布:mysql limit 编辑:程序博客网 时间:2024/09/21 08:16
《一名3年工作经验的程序员应该具备的技能》,在机缘巧合之中,看了这篇博客。感觉自己真的是很差,一直想着会写if…else…就已经是一名程序员了,在工作之余也很少学习。于是,自己的code技能一直没有什么进步,只是随着工作的时间增长,在增长着年龄,感觉很失败。
之前也有过一些写blog的经历,但是往往都败给了坚持。这次就不多说了,直接给自己总结下技术方面的不足,以便以后自己好好学习。
专业技能:
1、基本语法
这包括static、final、transient等关键字的作用,foreach循环的原理等等。
2、集合
基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理。
3、设计模式
三个方向:
(1)你的项目中用到了哪些设计模式,如何使用
(2)知道常用设计模式的优缺点
(3)能画出常用设计模式的UML图
4、多线程Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。多线程同步、锁这块也是重点。
5、IO
IO分为File IO和Socket IO。Socket IO是比较重要的一块,要搞懂的是阻塞/非阻塞的区别、同步/异步的区别,借此理解阻塞IO、非阻塞IO、多路复用IO、异步IO这四种IO模型,Socket IO如何和这四种模型相关联。深入一些的话,NIO的原理、NIO属于哪种IO模型、NIO的三大组成等等。
6、JDK源码
(1)List、Map、Set实现类的源代码
(2)ReentrantLock、AQS的源代码
(3)AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的
(4)线程池的实现原理
(5)Object类中的方法以及每个方法的作用
7、框架
画一下Spring的Bean工厂实现的UML图
8、数据库
union和union all的区别、left join、几种索引及其区别
9、数据结构和算法分析
要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。
谈谈Java虚拟机中比较重要的内容:
(1)Java虚拟机的内存布局
(2)GC算法及几种垃圾收集器
(3)类加载机制,也就是双亲委派模型
(4)Java内存模型
(5)happens-before规则
(6)volatile关键字使用规则
也许面试无用,但在走向大牛的路上,不可不会。
11、Web方面的一些问题谈谈分布式Session的几种实现方式?
讲一下Cookie和Session的区别和联系以及Session的实现原理?
web.xml里面的内容是重点,Filter、Servlet、Listener,不说对它们的实现原理一清二楚吧,至少能对它们的使用知根知底。另外,一些细节的方面比如get/post的区别、forward/重定向的区别、HTTPS的实现原理也都可能会被考察到。
0 0
- 作为一个4年程序员至少需要掌握的专业技能
- java就业前需要掌握的专业技能
- Java就业前需要掌握的专业技能
- Java就业前需要掌握的专业技能
- 作为Unity程序员需要掌握的技能
- 作为Unity程序员需要掌握的技能
- 作为一名程序员需要掌握的科目有哪些?
- 作为一个Android开发者,你所需要掌握的东西
- 3年经验的Java程序员应具备的专业技能
- 作为一个有理想抱负的前端攻城狮我们需要掌握那些应用层协议?
- 作为一个程序员需要学多少技能?
- 作为一个程序员需要学多少东西
- 作为一个程序员需要学多少技能
- 作为一个程序员,需要学习多少技能?
- 作为一个程序员需要学多少技能?
- 作为一个程序员需要学习多少技能?
- 作为一个程序员需要哪些技能?
- 作为一个程序员需要哪些技能
- forward和redirect的区别
- linux sudo使用和sudoers配置详解
- PHP在字符串中查找指定字符串并删除的代码
- python图片文本识别的简单实现
- 简单java定时任务,(仅供参考)
- 作为一个4年程序员至少需要掌握的专业技能
- Realm简单使用
- genymotion的 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
- oracle-函数
- JAVA_深入理解HashMap
- Android编译示例代码
- fzu2150 搜索
- IOS 中使用token机制来验证用户的安全性
- Android系统框架