[Java二十周年]我的十多年经验与未来分析

2004年毕业的时候,听说Java程序员工作比较好找,就这样开始与Java结缘。一晃10几年过去了,做了很多项目,也发布了一些Java方面的技术性文章,总的来说,这10年时间一直都在与一个永恒的话题纠缠—“性能优化”。

回想一下,我的大多数时间都被花在了处理整个大型系统的性能提升方面,遇到的问题很多情况下是本可以使用O(log N)算法,结果我却使用了O(n2)算法,此外,一直在纠缠于GC性能优化、JVM编译器的性能优化、Java企业级API调用方法等等。

我的这些经历其实是大多数Java程序员在Java的15+年时间里的一个缩影,有个数据可能大家都知道,Java1.1.8的性能是Java1.0的8倍,并且Java1.1.8第一次正式引入了just-in-time编译器。在之后的十几年时间里,Sun公司及开源社区围绕着性能问题做了大规模的提升,主要集中在JVM垃圾回收机制及相应算法提升、编译器算法提升、各类API提升等等方面。但是这些优化、提升总是会存在瓶颈的,现在已经不可能像当初通过引入Just-in-time编译器、JVM垃圾回收引入并行算法这样的方式大幅度提升Java性能了,还是需要程序员自己通过对JVM的深入了解、代码的整体优化、合理的系统架构等来提升系统性能。

随着时间的推移,我们现在已经不用担心内存的问题了,我目前使用的服务器都是256GB以上内存的机器。此外,JVM也引入了新的垃圾回收器G1,G1较过去的垃圾回收器更加自动化,同时,云计算的兴起帮助我们解决了单机问题,现在已经完全可以通过向云计算服务商租用资源的方式解决资源瓶颈问题。Java8以及后续版本会通过引入Lambda项目继续致力于更好地利用多核处理器。此外,在JDK上设计和实施一个模块系统,然后将系统应用于JDK本身也会是一个趋势,这样可以令大块的代码更易于管理,促进应用和大型运算的代码重用。甲骨文公司表示,他们Java8的前景很看好,并且已经开始讨论Java
9发展的关键领域,比如加入一个self-tuning JVM,提高本地集成和大规模多核的可扩展性,通过新的元对象协议和资源管理器为云应用添加跨语言支持。预计Java9和10将加入大数据、多语言的互操作性、云计算和移动,预期分别于2015年和2017年发布。

无论自己的未来职位是什么,我都会继续深入研究Java及相关技术,继续坚持发布技术性文章。十几年过去了,我想对Java说:“我们是互相离不开了”。

时间: 2024-11-15 07:57:01

[Java二十周年]我的十多年经验与未来分析的相关文章

Java二十周年之我和java的七年之痒

我和java的七年之痒                              ----java二十周年征文 粉淡香清自一家,未容桃李占年华. java,今已二十桃李年华之年.我七年前与她结缘,那年她年华豆蔻,我弱冠有六.我们从相识到相守走过了七个冬夏,都说七年有痒,值CSDN java二十年征稿之际,我也想说说我们的七年,痒从何来: 七年前,我和java她还未曾谋面,草率的以为她是it的一部分,那时对我来讲it和娱乐圈是一样一样的,神秘而遥远.当时我在做销售工作,每周都有到外地出差,经常买些

【Java二十周年】十年,二十年

十年 十年前的这个季节,迎着空中烂漫飘落的樱花,我们踌躇满志的走出了大学的殿堂.作为一名管理学院毕业的本科生,信息管理与信息系统这个专业让我与软件开发这个职业有了些许的联系.实际的状况是:在几年的学习生涯中,所学到的编程语言也仅仅只有C语言而已,而且学习的程度也不深,对于指针,结构体这样一些相对复杂的知识点,老师也是一带而过.也就是带着那点可怜的编程知识,我勇敢的到一家美资的企业去应聘程序员.第一关当然是笔试,一位淡定的面试官拿了一份让我很不淡定的考试卷--Java 编程开发相关的试题.Java

【Java二十周年】回忆我与Java的点点滴滴

借Java二十周年之际,静下心来思考自己与Java的故事,屡屡思绪,记忆深处关于Java的点滴回忆便一层层铺展开来. 本科--我的Java"启蒙老师" 对于计算机这个口水颇多的专业,基本每个学校都会开设Java语言基础这个课程,只不过有的学校是选修课有的是必修课,这也是为什么毕业后听到很多同行好友说只懂C/C++不懂Java.幸运的是,在我们那个不知名的小学校,Java与C/C++一样是必修课,为什么说是幸运呢?选修课照样可以选学啊,no,no,大学时期的我是个巨懒无比.经常逃课.每天

【Java二十周年】---Java之恋

初次见面 那是一个河北的夏天 风随沙散落天涯 蝴蝶依旧恋着花 回首走过的日子 手指和键盘之间的梦想之光 已恍如昨日 那年 我还是一个刚踏进这个曾经只在地理课本上狂念南稻北麦,南油北花的土地 那年 你只是我必须要学的编程语言 每天晚上511痴情相伴的黑夜 每天淡紫色蒲公英飞舞的师院 我静静地坐在电脑前 照着课本慢慢敲着键 看代码一行两行直至宝贝计划的出现 看十一教门前人面桃花相映红 晕染你微笑的脸 java的会面 让我明白封装之义 多态之美 还有继承在中间 人月神话 带我领略编程之美 程序之艰 我

hdu 1290 献给杭电五十周年校庆的礼物

献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7236    Accepted Submission(s): 3936 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭电建校五十周年,

献给杭电五十周年校庆的礼物

献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7897 Accepted Submission(s): 4325 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭电建校五十周年,这是一个值得

hdoj 1290 献给杭电五十周年校庆的礼物 【几何模板】

献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7597    Accepted Submission(s): 4145 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭电建校五十周年,

《Java并发编程实战》第十六章 Java内存模型 读书笔记

Java内存模型是保障多线程安全的根基,这里仅仅是认识型的理解总结并未深入研究. 一.什么是内存模型,为什么需要它 Java内存模型(Java Memory Model)并发相关的安全发布,同步策略的规范.一致性等都来自于JMM. 1 平台的内存模型 在架构定义的内存模型中将告诉应用程序可以从内存系统中获得怎样的保证,此外还定义了一些特殊的指令(称为内存栅栏或栅栏),当需要共享数据时,这些指令就能实现额外的存储协调保证. JVM通过在适当的位置上插入内存栅栏来屏蔽在JVM与底层平台内存模型之间的

《Java并发编程实战》第十五章 原子变量与非阻塞同步机制 读书笔记

一.锁的劣势 锁定后如果未释放,再次请求锁时会造成阻塞,多线程调度通常遇到阻塞会进行上下文切换,造成更多的开销. 在挂起与恢复线程等过程中存在着很大的开销,并且通常存在着较长时间的中断. 锁可能导致优先级反转,即使较高优先级的线程可以抢先执行,但仍然需要等待锁被释放,从而导致它的优先级会降至低优先级线程的级别. 二.硬件对并发的支持 处理器填写了一些特殊指令,例如:比较并交换.关联加载/条件存储. 1 比较并交换 CAS的含义是:"我认为V的值应该为A,如果是,那么将V的值更新为B,否则不需要修