java程序员应该掌握的技能
这是看了一篇大神说的java程序员应该会些什么的文章,这里只是把应该掌握的技能部分列了出来。
static、final、transient、volatile关键字,内部类,泛型等
static最需要记住的一点就是类属性中被static修饰的变量,会被作为GC的root根节点。作为根节点就意味着,这一类变量是基本上不会被回收的,因此static很容易引入内存泄露的风险。static会将所应用的属性,方法以及内部类直接产生引用关系,而并非与类的实例,这是为什么可以使用类名.方法名就能引用的原因。如果没用static修饰内部类,那么声明内部类的时候就需要先生命外部类实例,在由外部类生命一个内部类实例。
volatile关键字,重点就是 “可见性” 。要知道,可见性到底是什么意思,弄明白这个需要了解真么叫主存和工作内存。还有volatile并不保证同步。
重要的是知道原理,不是只是会用。
java运行时环境
java运行时环境就是jre,本质是JVM。首先知道JVM与Hotspot的关系。JVM更多指的是JVM规范,而Hotspot是JVM的一种实现。可把JVM规范当做接口,Hotspot当做一种实现。这样好理解一点。
JVM最重要的三个部分:内存划分、class加载机制、GC策略
这里所说的内存划分,其实指的是Hotspot的划分方式,并不是JVM规范划分方式。
Hotspot内存划分简单说分为三个部分:Young Generation(年轻代),Old Generation(年老代)、Perm Generation(永久代)。
其中年轻代又分为三个部分(Eden,From,To)其中From和To统称为Servivor Spaces(幸存区)
classloader加载机制,可以结合tomcat学习,了解清除tomcat的classloader机制,看tomcat如何保证各个APP之间的类隔离的。
GC自己找地方看
并发只是与concurrent包
关于并发,最重要的概念要搞清楚:原子性、可见性。
concurrent包中ConcurrentHashMap和普通的同步HashMap之间的区别。这个问题需要知道两个知识,一个是HashMap的数据结构,一个是锁分段的技术。
concurrent包中有一个AbstractQueuedSynchronizer几乎所有的concurrent包内的并发工具类都是基于这个类,把这个研究透。
ReentrantLock和synchronized关键字的区别,synchronized由于是底层JVM实现的互斥,因此效率更高一些,而ReentrantLock的功能更多。
并发是java程序员进阶的重要部分。。。。。。
设计模式和反射
设计模式:http://www.cnblogs.com/zuoxiaolong/category/509144.html
反射:reflect包
文件IO,NIO、网络IO以及网络协议
tomcat有多种协议的实现、其中包扩了BIO、NIO、和APR,这三者一定非常他们的 区别,这个可以在connector的protocol属性配置
网络IO就是net包里的东西
网络协议也要理解。TCP:重试机制,三次握手,TCP和UDP的区别
spring、mybatis框架
Linux服务器:文件系统、网络、IO
数据库优化
消息服务:rabbitMQ、activeMQ、rocketMQ。精通原理
缓存服务:memcached,redis
负载均衡
数据结构与算法
计算机操作系统
计算机网络
熟练使用一种脚本语言:如:Python
gitlub和博客
java程序员应该掌握的技能的更多相关文章
- 工作了3年的JAVA程序员应该具备什么技能?(zhuan)
http://www.500d.me/article/5441.html **************************************** 来源:五百丁 作者:LZ2016-03-18 ...
- 工作了3年的JAVA程序员应该具备什么技能?(转)
工作了3年的JAVA程序员应该具备什么技能? 因为和同事有约定再加上LZ自己也喜欢做完一件事之后进行总结,因此有了这篇文章.这篇文章大部分内容都是面向整个程序员群体的,当然因为LZ本身是做Java开发 ...
- 一名3年工作经验的java程序员应该具备的技能
一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容.我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价.拿到的薪水势必也越高 ...
- 4-6年经验左右、优秀的 Java 程序员应该具备的技能
4-6年经验左右.优秀的 Java 程序员应该具备的技能有哪些,按“专业技能”和“项目”两块,包括但不限于以下内容. 专业节能方面 基础:JDK 常用类的原理.源码.使用场景. 设计模式:常用几种的原 ...
- java程序员必须会的技能
1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:a ...
- Java程序员需要掌握的技能
转自:https://www.cnblogs.com/harry335/p/5924505.html
- Java程序员怎么不断进阶 必须要掌握哪些技能
Java程序员怎么不断进阶?必须要掌握哪些技能?成为架构师是Java程序员职业规划中的重要一环,但如何才能快速实现进阶困扰了许多Java程序员.无论是从技能深度还是实战经验,架构师都远超于普通的Jav ...
- 正式工作的前奏——一个Java程序员的实习总结(1)
不知不觉,到深圳实习已经三个礼拜了.跟在暑假的三个半月实习不一样,这次收获更多,感受更好,算是摆脱了那次实习给我带来的阴影(这个会放到以后才说). 在知乎上,有这么一个问题,你现在最想跟刚工作时的你说 ...
- 一名3年工作经验的java程序员应该具备的职业技能
一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容.我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价.拿到的薪水势必也越高 ...
随机推荐
- Spring 的优秀工具类盘点
文件资源操作 文件资源的操作是应用程序中常见的功能,如当上传一个文件后将其保存在特定目录下,从指定地址加载一个配置文件等等.我们一般使用 JDK 的 I/O 处理类完成这些操作,但对于一般的应用程序来 ...
- spoj 3871. GCD Extreme 欧拉+积性函数
3871. GCD Extreme Problem code: GCDEX Given the value of N, you will have to find the value of G. Th ...
- hdu 3826
Squarefree number Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 2016年12月7日 星期三 --出埃及记 Exodus 21:2
2016年12月7日 星期三 --出埃及记 Exodus 21:2 "If you buy a Hebrew servant, he is to serve you for six year ...
- WebForm 发送邮箱
首先在设置发件邮箱的SMTP服务,以新浪邮箱为例:设置区----客户端pop/imap/smtp----"POP3/SMTP服务"和"IMAP4服务/SMTP服务&quo ...
- hao dongxi
asp.net页面间传值方式后台 asp.net页面间传值的几种方法 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. json的使用 前后台统一以对象的方式编程 ASP. ...
- Xcode_5
Xcode_5 Objective-C进行IOS7编程 我个人的经验是,如果之前有过编程基础(无论是C.C++还是Java),那么<Objective-C基础教程>(图灵程序设计丛书 ...
- Statement和PreparedStatement批量更新
优势:1.节省传递时间. 2.并发处理. PreparedStatement: 1) addBatch()将一组参数添加到PreparedStatement对象内部. 2) executeBatch( ...
- Dev gridview新增一行自动获得焦点并打开编辑模式
1.gridview添加一行自动获得焦点实现方式: 关键代码: GarsonZhang dt.Rows.Add("1", "2"); gridView1.Foc ...
- Some Useful Property Settings Explained Of Oracle Forms
In Oracle forms when we have two or more blocks and there is a requirement to join them or make a re ...