简历和自我介绍上经常能够读到“精通Java”这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点、不能给自己加分了。可是事实真是这样吗?

对于语言的学习,我有一种观点,一是纵向,即要选择一门自己认为合适的语言学到有相当的深度。二在于横向,即要学习不同类型、不同历史和不同门派的语言:

既有底层的语言,也有高级语言;

接触一些动态语言、函数式语言;

了解一些不同语言的编程范型和编程方式,比如基于原型编程、面向切面编程、命令式编程等等;

最好能关注一门年纪尚浅,甚至小众的语言,了解一门语言的发展。

横向类比能够带来对一门语言的不同认识,但是,有广度而没有深度的专家是可笑的,深入地学习一门语言是不可缺少的。就以Java为例,依我看来,至少有这样几个递进的过程:

语法语义。

这 是最基础的部分,都说Java简单,语法容易学习,但是,真要细说起一些细节来,也真够我啰嗦了。我见过一些所谓的“精通Java”的人,他们却不知道 strictfp关键字,说不清volatile和transient的作用,不知道怎么去定义一个注解(@interface)。你觉得这些要求苛刻 吗?对这些以“精通”要求自己的人。

熟悉语言的应用范围。

不同的语言有不同的擅长应用领域。就像想用Java去写操作系统或底层代码是多么不靠谱一样,在这个过程中应当熟悉语言的优势劣势,这里你自己会提出自己的见解。譬如Java最NB的地方在哪里?

跨平台?可是很多语言都可以跨平台;

开源?那开源的语言多了去了;

高性能的虚拟机?包括先进的编译解释优化技术;

还是那么多用Java实现的类库、框架呢?

把那些用Java实现的类库和框架脱离出Java语言本身来归类,未必是恰当的。熟悉Java就必须阅读许多类库和框架的源码。

学习语言的实现机制。

就 像精通Java的程序员需要了解Java虚拟机一样,也许不需要对虚拟机规范一清二楚,但是起码要知道CAFE BABE吧?起码要了解JIT的机制吧?起码要明白垃圾回收策略中的CMS吧?起码要能尝试自己编译一把JDK吧?起码要能去定位那些无响应的Java程 序问题吧?在这个过程中,从了解一门语言,将逐渐进化到去了解一门语言所处的平台。

整理语言发展的历史。

为什么学习编程语言也要关注它的历史?因为去了解一门语言的发展历史(比如这篇关于Java多线程编程的历史), 可以明白在这过程中碰了什么壁、犯过什么错、有哪些大的变更,学过别人家什么东西……这对于分析现今这门语言与其他语言的碰撞、展望一门语言的未来大有益 处。在这个过程中,会不由自主地将其和不同时期的其他语言比较。如果给你一次重新设计这门语言的机会,你一定能够提出不少改善的意见来。

我从来不相信精通Java是一件容易实现的事情。有一股风潮,说搞底层研究的人看不起搞上层业务的人,写C的人认为写Java的人没水平,做后台的人觉得做前台的没技术含量……我说,何必呢?

技术无贵贱,只是专注的领域不同而已。

java 精通_你真的精通Java吗?相关推荐

  1. 精通java益处_你真的精通Java吗?

    简历和自我介绍上经常能够读到"精通Java"这样的话,有人和我说,精通Java的人太多了,精通Java已经不能算亮点.不能给自己加分了.可是事实真是这样吗? 对于语言的学习,我有一 ...

  2. [转载] Java内存管理-你真的理解Java中的数据类型吗(十)

    参考链接: Java中的字符串类String 1 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 推荐阅读 第一季 0.Java的线程安全.单例模式.JVM内存结构等知识 ...

  3. java精通时间_你真的精通 Java 吗?

    简历和自我介绍上经常能够读到" 精通 Java" 这样的话,有人和我说,精通 Java 的人太多了,精通 Java 已经不能算亮点.不能给自己加分了.可是事实真是这样吗? 对于语言 ...

  4. java lambda::_书评:精通Lambda:多核世界中的Java编程

    java lambda:: 从版本8开始,λ编程(lambda编程)终于在Java世界中引入.此功能将在很大程度上改变Java开发人员的编程方式以及针对样板代码的新"武器". Ja ...

  5. c语言难还是java难_C语言真的比Java难学吗?

    原标题: C语言真的比Java难学吗? 千锋小编觉得C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.C语言语法比较简单便捷, ...

  6. java书籍_还搞不定Java多线程和并发编程面试题?你可能需要这一份书单!

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书! ​ 在介绍本书单之前,我想先问一下各位读者,你们之前对于Java并发编程的了解有多少呢.经过了1 ...

  7. java内核_测量时间:从Java到内核再到

    java内核 问题陈述 当您深入研究时,即使是最基本的问题也会变得很有趣. 今天,我想深入研究一下Java时间. 我们将从Java API的最基础知识开始,然后逐步降低堆栈:通过OpenJDK源代码g ...

  8. java风控_【A0538】[java视频教程]金融信贷风控的机器学习实战视频教程 it教程

    Java视频教程名称:金融信贷风控的机器学习实战视频教程  java自学   风控视频教程   it教程 7 E" b1 z7 `/ _& G百度网盘下载链接:8 }, g4 o5 ...

  9. 我的世界java凋零_我的世界JAVA版发布1.14快照 加入全新植物凋零玫瑰

    原标题:我的世界JAVA版发布1.14快照 加入全新植物凋零玫瑰 <我的世界>JAVA版在沉默了很久后终于发布了1.14版的快照.全新加入了多种生物,包括凋零玫瑰,掠夺兽,织布机等,再次加 ...

最新文章

  1. linux下程序执行的步骤及其作用
  2. Forefront_TMG_2010-TMG建立Remote ***
  3. CTF Re-Python z3库的使用
  4. c语言指针++_C ++此指针| 查找输出程序| 套装3
  5. [Python] Different ways to test multiple flags at once in Python
  6. java------io基础(一)
  7. 微信公众号支付开发全过程
  8. 动画图解:十大经典排序算法动画与解析,看我就够了!(配代码完全版)
  9. 连表时数据量翻倍问题
  10. Unity动作游戏大全
  11. 【STM32Cube笔记】16-STM32Cube个性化定制
  12. Windows10系统迁移-同一PC硬盘之间
  13. css适配iphoneX
  14. 《日语综合教程》第七册 第六課 自然と人間
  15. 非视线成像:角膜成像系统
  16. img图片加载失败时的处理
  17. 优思学院|从二八定律到六西格玛管理
  18. 个人公众号,对产品经理面试是否有加成?
  19. MySQL左连接之后引起的排序问题
  20. CT主控计算机功能不包括,影像学:CT部分试题.doc

热门文章

  1. s111 stark组件
  2. java 雪花特效_java实现图片飘雪花的特效
  3. 查看运行时间_怎样查看自己电脑系统的版本信息?
  4. python key lambda_使用“key”和lambda表达式的python max函数
  5. 流批一体生产应用!Bigo 实时计算平台建设实践
  6. 单机和分布式场景下,有哪些流控方案?
  7. 自研云原生数据仓库AnalyticDB再破权威评测TPC-DS世界纪录!
  8. Flink 实战:如何解决应用中的技术难题?
  9. 全新章节抢先读 | 揭秘覆盖全端业务的文娱大前端技术
  10. 技术分享 |《原神》部分渲染效果分析