大家好,今天小编关注到一个比较有意思的话题,就是关于java语言精通的问题,于是小编就整理了1个相关介绍Java语言精通的解答,让我们一起看看吧。
把JAVA编程语言精通到底有多难?
作为一名从业多年的程序员,同时也出版过J***a编程书籍,所以我来回答一下这个问题。
J***a语言随着互联网的发展,其自身的生态体系不断得到完善,应用边界也不断得到拓展,目前在Web开发、大数据开发、移动终端开发等领域均有广泛的应用,可以说不同的应用方向也需要具备不同的知识结构,所以说精通J***a还是具有一定难度的。
J***a语言自身的构成分为两个大的部分,一大部分为J***a虚拟机,另一部分为J***a语言自身的语法。按照J***a语法要求编写的程序需要通过J***a虚拟机完成加载、校验、编译和运行,而J***a虚拟机的作用就相当于J***a的运行环境(容器),它自身需要完成大量的操作,包括代码安全性、垃圾处理、***处理、***管理等内容。所以精通J***a开发一方面需要清晰J***a语法,另一方面需要了解J***a虚拟机的运行机制。
对于初学者来说,学习J***a编程都是从学习J***a语法开始的,然后学习J***a的Web开发、数据库开发、分布式开发等内容,这个过程通常是大部分学习者的学习路线,难点在于J***a面向对象概念的理解,也就是理解各种“抽象”。这部分虽然具备一定的难度,但是大部分学习者是能够学得会的,区别往往在学习时间上。
对于从事开发的研发级程序员来说,还需要系统的学习J***a虚拟机的内部机制,通过从深层次了解J***a虚拟机的构成从而***平台类产品的研发,重点在于性能的提高。通常情况下需要了解J***a虚拟机的体系结构、核心算法等内容,这部分内容的难度还是比较大的。当然,要想系统了解J***a虚拟机的整体结构,通常还需要阅读大量的源代码。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!
J***A之父詹姆斯.高斯林开发了J***A语言之后,有一次看到了《重构—改善既有代码的设计》一书之后,说了一句话:“如果我早看到这本书,J***A就不会是这个样子了”!
估计连J***A之父也不敢说全部吃透了J***A生态了,J***A涉及到的东西实在是太多了,作为一门高级编程语言,J***A确实很容易用来开发,J***A封装了大量的API,基本覆盖了我们日常开发中的几乎全部功能,但如果要深入底层,那么很多人就成为“门外汉”了!
比如我去小公司面试的时候,常常遇到问题是HashMap怎么用?concurrentHashmap怎么用?而在大公司这样的问题往往变成了concurrentHashMap底层是怎么结构?为什么线程安全?为什么比起synchronizeMap性能好?
jvm相关的东西更是难倒大多“英雄好汉”,J***A内存模型,内存结构,类加载机制,类加载器,gc的算法,gc收集器有哪几种?什么时候该用哪一种?jvm怎么调优?
这样的问题面试基本撂倒一半人!
这只是冰山一角,还有诸如反射,动态代理,三种io(由此引申的netty,nginx等),多线程方面的技术(线程池底层,生产者消费者模型,线程安全等等),J***A每个版本的新特性,更不论J***A生态中的spring相关框架,搜索引擎,大数据开发等等每一个[_a***_]都是几本书才能学完的东西!
一个人的精力实在是有限,如果非要追求对J***A所有东西精通,终有心力交瘁之时,只要掌握大多数重点即可,我一直在分享J***A方面比较热门的技术,有需要的朋友可以去看看,肯定您能有所收获!
没有精通这一说法。搞程序的大多有一种通病,就是疯狂的钻研技术,或者思想固化在一种范围内,且具有一种强烈的偏执性,没有市场,技术再高也没有用。
对于任何一门开发语言来说,你认为的精通是什么样的才叫精通 ??把开发语言里的点点滴滴,边边角角都学会?而且随时能想起来?很可惜,这种情况谁都办不到。任何一个学开发语言的人,所接触的都会是开发语言的某一个应用范围,而不是所有,使用开发语言精通,除了基础的语言基础,更重要的是是业务逻辑如何实现,只要业务逻辑清楚,从开发的角度,使用J***A,使用.net, 使用python来实现并没有什么不一样的地方。
所以我认为,把一门语言学到你可以随心所欲地解决目前工作里的问题,就可以认为是精通了。
首先,精通任何一门技术都会很难。就像詹爷(詹姆斯●高斯林,J***a语言创始人)说的那样:“我会时常买一些别人创作的有关J***a使用心得的书籍来看并从中学习...”。作为J***a语言创始人都保持如此谦虚的态度,我想还有谁敢说自己精通J***a语言呢?其实我个人认为不光是J***a,任何一门技术,想要达到精通的水平都是非常难的一件事。
精通这个词语是本身也是属于语言的艺术,表现出了一个人对于一门技术的熟悉程度和信心程度等等。那么想要达到精通的水准,那得是到达什么样的一个程度呢?我想每个人的想法都不同。或者换一种说法,比如:我想学会J***a中的哪几个部分的知识、我想学习一些大部分程序员都不知道的知识等等。因为每个人对自己的标准和要求不同,所以所学到的东西也是不同的。
我也时常面试一些J***a开发程序员。面对简历上出现的有关“精通”词语的相关技术,比方说:“我精通J***a语言。”每当我看到这样的自我介绍时,都会引起我的一个疑问:“你有多精通呢?”
所以这位面试者中所提到的有关“精通”的技术,我也许会多问几个问题来看看他到底有多精通。而这几个额外的问题往往是没有必要问的,因为也仅仅是出于自己的好奇心,去试探面试者罢了。所以我建议简历上慎用“精通”这个词语,除非你确实对某项技术十分自信且有一定的深度,那我认为是可以的。
常常混迹于开发岗位的同学们也知道,想要胜任开发任务,并不是说你的J***a精通就足够了。往往都是需要一系列的技术栈去维持。J***a只是一门编程语言,也是开发工作的基础。把J***a学的越来越好当然没问题,但是我认为更重要的是你是否可以胜任普通的开发任务,甚至是更有难度的开发任务?我觉得可以多多考虑一下这些贴近实际工作的问题。
个人看法,仅供参考。有不足之处,望大家批评指正。
到此,以上就是小编对于j***a语言精通的问题就介绍到这了,希望介绍关于j***a语言精通的1点解答对大家有用。