先,祝大家新春快乐。初五已过,意味着新一年业已真正开始。制定计划,制定目标,狗年有个新发展。

做为一个Java开发者和社区参与者,我经常会收到来自各地的Java 程序员的咨询,他们问我如何改进自己。

这次我给大家分享在2018年Java程序员应该学习的9个建议。你可以在这些想法中获得灵感来建立属于自己的目标和解决方案。

Java性能调整的学习

在过去的几年里,我对一些高级Java开发人员进行了50多次采访,清楚地看到大家缺乏对JVM内部知识的缺乏,对GC行为与Java性能调优的知识与理解。

随着Java开发经验的增长,特别是您已经拥有5、6年开发经验的开发人员,您应该了解Java的基本原理的全貌与细节。

如果你无法对配置应用程序清晰,或者无法弄清它为什么慢或者能让它变得更快,那么可以读一本关于JVM内部结构和性能调优的好书,比如Sott Oaks 的畅销书 Java Performance the Definitive Guide。

多年来,我一直在阅读它,每当我一有时间就会翻出来看。我的目标是今看再读一遍

如果您偏好在线课程,可以阅读Pluarlsight的Java虚拟机系列课程,它解释了内存管理,类加载,安全和反射。

每天编码2小时

我最后注意到的另一件事,随着经验增长,你的时间会被项目协调、邮件回复、故障修复、老师指导等消耗,成为一位项目经理。

你需要留了时间编码,这是程序员最重要的技能。如果你觉得自己代码编写不够,那就每天都要写一个解决问题的代码。至少,写下你的项目,开源框架,库或实用程序。

事情的开始是最困难的事情。因此我建议,只要你感到有抵触,就请立即阅读或重构代码以获得乐趣。我们将在编码中享受这个过程。

您也可以解决在考核工程师编程的试题,面试问题。这可以有效保证自己能够对面试准备充分,还可以提高自己对数据结构 ,算法和编程逻辑的了解。

每月对你的Java应用程序进行一次配置

阅读关于JVM内部组件和性能调优的好书的一个解决方案。光读书不够,还是需要我们在项目中进行实践。

建议各位至少每月对Java应用程序进行一次简要分析,并花费大量的时间来理解和分拆结果。

可以使用Java进程的堆转储,如果最近应用发生了崩溃,可以利堆转储找出哪个对象占用内存最大,Java应用程序中是否存在内存泄漏,原因是什么?

如果有十万以上新用户访问应用会发生什么?如果你能自然地回答这些问题,那么你的状态良好。如果你需要解决内存和CPU问题的一些指导,建议大家查阅沃伯顿的“理解和解决Java内存问题(http://www.shareasale.com/m-pr.cfm?merchantID=53701&userID=880419&productID=708949042)”。

参加编码挑战

此目标与我们的第二个解决方案有关——每天编码2小时。让我们面对现实,有时候项目可能也没有那么多的机会编码。

如果你渴望挑战编码,那么没有比参与编程挑战或***马拉松更好的了。

在Java中学习网络编程

我在面试中发现,Java开发者需要改进他们的Socket编程和TCP/IP等网络基础知识。有一些人都很难陈述TCP和UDP之间的区别。这个问题其实都太基础了,我不会问 2-5年以上经验的开发人员。

如果你觉得没有足够的机会学习用Java开发Socket编程,或者你一直用不上,可能一直用JSP、Servlet和JSF的Java Web开发人员。建议你读一本Java网络、NIO和Socket编程。

Java 9

在2017年,Java 做了几次大版本的更新。其中一个就是JDK 9。我也会在2018年当作研究的第一件事,并开始研究它,如果你想了解例如Jigasaw,Reactive Streams,API增强等,可以从Java 9 MasterClass开始。

Spring 5.0

2017年另一个Java世界的大事是 Spring Framework 5.0.随着许多令人兴奋的特性,例如响应式编程模型和Java 8和Java 9的采用。Spring 5.0的采用将在2018年加速部署,这就是每个Java开发人员都应该学习的原因。

Spring Security 5.0

2018年另一个有意思的发布便是 Spring Security 5.0。Spring Security 5.0是一个主版本。他们重写了几个模块并修复了几百个错误。最有趣的部分是OAuth 2.0模块。 不幸的是,目前学习 Spring Securtiy 5.0的资源并不多,但幸运的是Eugen已将Learn Spring Security更新到5.0版本,并在OAuth 2.0增加了一个新模块。

单元测试

我想,你一定想在2018年成为一个优秀的开发者。那么,我建议你应该着手单元测试技能。不仅仅是单元测试,还包括自动化和集成测试。

你可以学习JUnit 5和其他单元测试技能并提升到新的水平。Mockito功能非常强大,可以通过包依赖关系,专注于测试对象来编写复杂类的单元测试。

小结

以上是我给各位Java开发者的建议。如果你拥有多年经验,也可以从以上列表中攻取灵感来设定目标。你也可以在列表中添加一些其他内容,如学习Android、Docker和Spark,因为这些对任何Java程序员都必不可少。

我尽量保持简单和可实现的原则。我个人认为小的成功会带来更巨大的成功。设定小目标并实现它们比制定大而不切实际的目标,比在开球前失败更好。

各位开发者,还在等什么?写下新年的希望与我们分享。期待在这个年底,我们一起回到这里,告诉大家你取得的成就。

.2018年java还能学吗,2018年,Java程序员应该学习的 9 个建议相关推荐

  1. 学了java有必要学c语言吗_程序员有必要学习C语言吗?这几点原因很现实

    原标题:程序员有必要学习C语言吗?这几点原因很现实 C语言是编程语言中的一种,有不少程序员会有这样的疑问?难道做程序员就必须要学习C语言吗?甚至有人觉得,我平时的工作中也用不到C语言我为什么要学习呢? ...

  2. 从阿里社招面试,看“野生”Java程序员的学习道路

    引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...

  3. java技术栈有哪些_2020 年 Java 程序员应该学习掌握哪些技术?

    原文:2020 年 Java 程序员应该学习掌握哪些技术? 作者:java技术剑 作为一名程序员,我们面临的最大挑战是使自己保持不断学习的状态.技术变化非常快,每两年你就会看到新版本的编程语言和框架. ...

  4. Java程序员应该学习的10件清单

    作为程序员,我们最大的挑战是让自己保持最新状态.技术变化非常快,每隔几年你就会看到一个新版本的编程语言和框架出现. 扫码关注<Java学研大本营>,加入读者群,分享更多精彩 当2021 年 ...

  5. 学什么专业才能成为程序员?其实想成为程序员,远不止计科和软工!

    在目前互联网行业,计算机领域都离不开编程,程序员也受市场的大量需求,而且目前程序员的薪酬普遍很可观,在北上广深等一线城市,程序员的薪酬基本都是上万,两三万一月的都有的是,甚至很多都直接讲年薪,程序员在 ...

  6. 2020年Java程序员不得不学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  7. 原创 | 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  8. 2020年Java程序员应该学习的10大技术

    对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Bo ...

  9. 2019年Java程序员的学习路线

    2019年Java程序员的学习路线 一.基础篇 面向对象 什么是面向对象 面向对象.面向过程 面向对象的三大基本特征和五大基本原则 平台无关性 Java如何实现的平台无关 JVM还支持哪些语言(Kot ...

最新文章

  1. boost::hof::implicit用法的测试程序
  2. Facade(外观模式)
  3. 魅族mx四核即将使用android,魅族MX四核智能手机发布
  4. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(1)
  5. Choerodon 的微服务之路(二):Choerodon 的微服务网关
  6. 查看-增强会话_会话助手平台-Hinglish Voice等!
  7. Informatica通过人工智能重新定义数据管理助力数据驱动型数字化转型
  8. 华罗庚的《统筹方法》
  9. 华为网络工程师终极面试题
  10. 在oracle中插入语句要求,oracle插入语句
  11. ​在家共享按摩椅“掘金”共享经济
  12. 图像处理——乘性噪声和加性噪声
  13. [湖南大学程序设计实训训练作业一]7.F1方程式冠军(灵活运用下标来简化代码)
  14. right here waitting
  15. java怎么编程class,深入理解Java Class文件格式(一)
  16. UDS的19 04读取快照信息解析
  17. 山西省大学计算机专业排名,山西省:排名前14的大学!山西的大学分为5档,前2档最难考!...
  18. ANF到DNT完美转移
  19. dhu 数据科学与技术 第2次作业
  20. 【tio-websocket】1、T-IO简介

热门文章

  1. 瀑布模型和敏捷开发模型
  2. C语言 如何给结构体中的数组赋值
  3. Mac固定虚拟机IP
  4. 盘点几个linux中有趣的游戏 。
  5. c语言枚举类型enum用法参数,C语言枚举类型(Enum)
  6. win7 sp1 x64 离线安装.net framework 4.6.1
  7. Asp.NetCore在CentOS网站卡死
  8. 【Python】使用python实现yaml转json,json转yaml,以及批量实现yaml与json文件互相转换
  9. OPJ400题祭!!!
  10. 绝缘子污秽度在线监测系统的作用是什么