你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

intellij idea activiti 专访葛一鸣:热情和毅力让我把技术进行到底

发布时间:2026-03-01

浏览次数:0

葛一鸣

CSDN:请先做下自我介绍。

葛一鸣称,其毕业于浙江工业大学,2006年本科毕业之后,幸运有机会留在母校进一步学习。2009年硕士毕业。毕业以后,前往UT斯达康开展网管软件开发工作,始终运用Java技术,后台是源于Java的服务器,前端客户端是基于此的。从最初学习直至如今运用Java,已然超过10年了。

“CSDN”:请问,你开启这般接触“Java”之旅,起始缘自何时呢?又是这具体的哪处地方,使得你被深深吸引住了呢。

葛一鸣表示,他是在大三阶段接触了Java语言,老实说,刚一开始接触之际,Java并没有能够吸引他的地方。一开始学习Java单纯是由于学校开设了那样一门课程,而且大家都传言Java很容易找到工作。在那个时候,鉴于已经学习过C,所以对C比较有感觉。因而,对Java的感觉是后来逐步培养起来的。刚开始学习的时候,都不觉得Java是一门出色的语言,然而随着学习的不断深入,才渐渐体会到Java的一些优点。举例来说,相较于C/C++,那具备自动特性的内存管理机制GC,的确能够为程序员节省相当多的时间,除此之外,对于反射的支持,也会让人领略到一种灵活性(当然仅仅是相对于C++而言)。

中国软件开发者网络:《实战Java虚拟机——JVM故障诊断与性能优化》这本书里讲授的内容所涉及的范围极为宽泛,它主要针对哪一些开发者而言较为合适?在进行撰写的进程当中给你留下来的最为深刻的印象是什么?

葛一鸣表示,这本书的酝酿过程历经了较长时间,是因为观察到目前市场上涉及Java 虚拟机的书大多极具理论性,这使得初学者在理解方面存在较大困难。基于此,他便开始思索能否创作一本立足实践,且能将理论与实际相结合,助力初学者迅速实现入门并理解Java虚拟机的书籍。其目的一方面是为大家付出一份相助之力,另一方面也可当作自身的学习笔记留存。从内容层面加以审视,这本书对于Java开发人员,特别是初、中级研发者而言,应当都会产生一定的助益。需要实话实说的是,撰写一本书籍的过程是极为艰难的。这里面夹杂着数不清的无眠之夜,唯有自身亲身去经历,方能晓得里头蕴含的痛楚,这一历程也使我坚定了一个信念,那就是将技术坚持到底得具备无比巨大的热情以及能禁住磨砺的坚韧毅力。在这儿呢,借着这般一个契机,我亦想着向那些依旧奋战在技术职位上的先辈们表达出我内心满是钦佩的心意。

CSDN:你对如今Java所处的状况持怎样的看法呢?你觉得Java具备哪些优点哪些缺点呢?

葛一鸣表示,他觉得Java当下正处在蓬勃发展、态势良好的阶段。能够发现,众多企业级应用皆是依靠Java搭建而成。特别是如今备受广泛推崇的大数据领域,好多大数据软件诸如,同样是运用Java搭建的。另外,基于Java虚拟机,还涌现出了一大批出色的语言,像Scala。基于Scala构建的大数据平台如今也是充满活力。可以这么讲,目前Java作为一个生态系统,已然相当成熟稳健了。当然,他觉得这在很大程度上要归功于开源社区的扶持,以及大家的无私付出。这些均为Java语言自身的环境优势呢 ,对于Java语言来讲 ,我觉得它最为突出的优点乃是简单 ,毫不夸张地讲 ,Java语言是我所见过的最为简单 、最易于理解的计算机语言呀 ,但是任何事物都存有两面性 ,Java也并非是毫无缺陷的 ,就Java语言而言 ,对泛型的不完全支持就是一个存在美中不足的地方哟 ,另外 ,我们能够看到 ,使用传统Java框架构建的程序 ,比如SSH ,往往相比用其他语言或者Ruby构建的应用 ,代码行数要多出一大半呐。这种繁琐的编程方式,应该也得到不少批评。

CSDN:能否谈谈Java8的主要特性。

葛一鸣称,Java8算得上是一次意义重大的版本更新。这个版本里,有两个方面颇为关键,其一,对表达式予以支援这正是备受瞩目的函数式编程;其二,在虚拟机实现层面,摒弃了旧有的传统Perm区,转而采用借助元数据重新去定义方法区的实现方式。除此之外,Java8还增添了好些细微的功能强化项,比如、,还有针对避免伪共享的支持。上述种种于提升并行程序运作效能均有着极为关键的价值。

你怎么看待这样的事情,即: CSDN方面表示Java8增添了那样的表达式,然而呢存在开发者发出抱怨声称Java语法太过冗长。

葛一鸣称,Java的语法,的确是一个遭人诟病之处。Java8的函数式编程intellij idea activiti,虽说在一定程度上能够极大简化原本的Java语法,然而与Scala这类天生的函数式语言相较,仍是显得逊色。但不管怎样,Java能够有如此重大的改变,表明其依旧是一门充满活力的语言,我坚信未来它会变得越来越好。不过,对于Java语法过于冗长的问题,我打算发表一些不一样的观点。

有一门被称作Java的语言,它是较为简单的那种,它所推崇的是运用颇为傻气的方式去编写代码,所以在如此情形下代码就会显得格外臃肿。然而,Java代码具备特别容易被理解的特性。针对一般性的代码而言,我们完全能够实现一目十行且轻松阅读,不会由此产生任何疲倦之感。之所以会出现这种情况,是由于其信息密度相对较低,致使所看到的任何内容基本上都很容易被理解。然而,将其与其他语言相对比,举例来说呀比如有这样一种JVM语言,它号称能够把Java的代码压缩至原来的十分之一呢,它代码的信息密度是特别高的,在一行内容里,也许已经开展了好多事情,甚至在语句里一个不怎么起眼的单词都满含着奇妙之处呀。

写这样的代码时,Java会多花些时间,然而读的时候,却要比我阅读的时候让我轻松不少intellij idea activiti,我个人对阅读这样这种代码是倍感压力的。Java为使用者考虑到可能会进行大规模企业级软件的开发,因此系统的可维护性的相比于系统的开发效率而言,要重要好得多。从舍弃简洁而追求易懂这个角度来说,也不失为一种比较有效的方法。

与此同时,鉴于Java软件存在极大可能会牵涉大型团队的开发工作,所以,这款Java倘若非得将不同花色拼凑在一起,那么极有可能会致使项目步入歧途。因为,当Java这款软件在大规模团队合作中适用,在代码编写的过程当中进行不断拼凑花样时,代码的易懂性极大可能会出现问题。就像Perl以及Lisp这类喜欢通过拼凑不同花色来展示各自特点的语言,它们仅仅适宜Geek这种独具个性的人群独立操纵时使用,一旦这类语言在人数众多的团队里被大量使用,我个人觉得这反倒会对团队各成员之间的沟通交流造成极大阻碍,毕竟每个成员都会更易于把个人惯有的风格融入到项目之中,并由此引发代码风格不一致的状况。最近这段时间,我正在着手进行一个C语言的项目,在这个项目里,对于宏的运用程度几近疯狂,而宏作为一种极为灵活的工具,当它实施多层嵌套时,通常会让代码变得晦涩难懂,难以理解。对于在Java里尚未存在类似之物,我深感庆幸。所以,Java语法存在冗长这一问题,然而并非毫无可取之处。你难以凭借Java施展诸多花样,这属于Java颇为重要的优点当中的一个。就如同所言:保守的设计理念乃是Java最为突出的优势。

目前在CSDN上,主流的Java虚拟机有哪些呢,又是分别用于什么样场景情况的呢?

葛一鸣:因先前收购了BEA,接着又收购了Sun,把二者先后纳入囊中,故而当下已将二者做了整合,当前使用最为广泛的便是,在中所使用的就是,除此之外还有IBMJ9,它主要是被用于运行IBM的内部产品等,并且另外还有一些以商业形式存在的Java虚拟机版本,比如说Zing,它是一种实时虚拟机,是用于低延迟相关场合的。

中国软件开发者网络平台:Java虚拟机具备哪些垃圾回收器呢,这些它们之间存在怎样的差异呢?

葛一鸣称:当下差不多是这样划分的:有串行回收器,还有并行回收器,再者是CMS以及G1 ,串行回收器属于最为老牌的垃圾回收器,借助单线程来完成垃圾回收,在其运行时,Java应用程序会彻彻底底地中断 ,并行回收器适宜多核CPU ,它运用多个线程去进行垃圾回收,所运用的算法和串行回收器相类似 ,CMS乃是一款并发回收器,它把垃圾回收划分成几个阶段,试着让垃圾回收与应用程序一同交替并发执行,这么做的目的在于减少一次垃圾回收的停顿时间 ,G1是当前最新的一款垃圾回收器。所要达成的目的在于,对停顿时间予以控制,它呢,把整个内存区域划分成,若干个小区间,每一回只是进行有选择性地回收,回收几个,借由这般做法,避免出现,一次性回收全部内存时,所带来的长时间停顿状况。

目前,基于JVM展开的、主要流行的那些技术是一些怎样的技术么,那些是具有何种特性的技术呢,CSDN?有哪些呢?

葛一鸣称,当前基于JVM的语言数量不少,除Java外,像Scala等也是主要的几种JVM语言,其中最引人注目的当属Scala,它在高并发应用场景有着独特解决方案,基于Scala的Spark正于大数据领域崛起,同时它比较适合做便捷实用的简单脚本语言,它还是Lisp语言在JVM平台的变种,有着Lisp强大表达力,不过个人觉得其语法有些怪异,却非常适合Geek使用。此外,、Ruby等语言也在JVM平台上有着各自的实现。

专业开发者社区:平常你最为钟爱的开发工具都有什么呢?于日常工作当中会运用到哪些呢?

葛一鸣表示,平常他运用频次最高的便是,除此之外还是一款相当可以的环境。当阅读C/C++代码时他会挑选,另外,针对文本编辑器,他会采用++以及,在Linux平台之上便是Vi。进行版本控制他会选定git,且也偏好运用思维脑图Xmind去梳理自身的思路。

CSDN:在日常生活中你是通过哪些方式来提升个人技能的?

葛一鸣提到,就其个人学习经历而言,首先得阅读海量书籍,开展系统性学习,接着要进行动手实践,对软件开发来讲,实践是比学习更为重要的环节,然后要学会从实践里去思考与总结,从另外一个角度看待理论知识,这会使人进步得更快,此外还要多留意一些业内网站,像CSDN,去了解最新信息与技术,紧跟时代潮流。

CSDN:给学习Java的开发者一些建议吧。

葛一鸣表示,对于 Java 语言,首先得去知晓它那基本的语法以及 API 的使用情况,这呀可是最为基础的。在这样的基础之上,有一种能够促使自己迅速成长的办法,我觉得便是去阅读一些开源代码,要好好利用开源社区。比如说,从 JDK 的源码当中就能学到好多知识咧。当碰到问题的时候,从框架的源码那里着手进行分析,这不但有助于对整个系统的了解,而且还能够让自己欣赏到高手的作品,对自身有着相当大的促进作用。

作者相关介绍如下:葛一鸣,身为系统分析师,拥有10余年Java方面的学习以及开发经验,当下于Java性能调优、Java虚拟机、神经网络以及数据挖掘等领域存有浓厚的个人兴趣,并且还著有《实战Java虚拟机——JVM故障诊断与性能优化》。

选自程序员电子版二零一五年五月B刊的本文,该期其他更多文章查看此处。二零零零年创刊以来所有文章目录查看程序员封面秀。欢迎订阅含iPad版、版、PDF版的程序员电子版。

如有侵权请联系删除!

13262879759

微信二维码