近些年的技术圈,单以计算机语言界来说,稳坐第一把太师椅的Java“或将被取代”、迎接转折点、Java项目工程师风光不再等言论不绝于耳。在焦虑的大环境下,所有人好像都看起来很焦虑不安。
针对这类“唱衰论”,也不难理解。不仅,基于Java技术自身来讲,Oracle为此前版本三番五次地“晚到”,最后下决心会以六个月为期限加速Java的上架频率,可是针对开发人员来讲,做为开发环境更新速率太快,不利生产环境,也会为开发设计造成许多的兼容问题,无形之中平白被增多了劳动量,没有开发人员会高兴。
同时,新版本OracleJDK的不能免费商用问题也让Java失去原来的许多支持用户。据此,许多开发人员甚至用“作死”一词来描述Oracle的独裁。除开内部要素,从外界来说,2018年随之人工智能技术大火的Python、2017年谷歌发表声明将做为Android开发一级语言的Kotlin、2016年因前端开发而变成最火爆语言的JavaScript等等均向传统式计算机语言Java参与了挑战。但与其说语言遭受了挑战,说到底还是不同语言所应用的领域吸引的人才互相碰撞。
说到底的唱衰论,援引一名网友的见解来道破其本质,「当今世界只有俩种计算机语言,一种是每天挨训的,一种是没有人用的。」那么,在该观点后边真实的Java应用现况究竟怎样?仿徨于Java围城之外的开发者们该怎样尽快把握Java有关的技术?下一步,我们将从Java开发者最广泛的调查报告皮脊中一窥究竟,期望对大家有所裨益。参与该调查报告的有来自全球10500名的Java开发者。
一、Java开发者常会运用的JDK?
截至现阶段,Java中JDK最大的赢家众所周知指的是OracleJDK和OpenJDK。不过随之JDK8和JDK11中许可和支持的变化,下一次的Java调研统计数据或者会产生很大变动。
二、开发者使用的JDK占比
不过胡此依据该汇报的数据调查报告,其中,令人费解的是,很难搞清楚1%的Java开发者是怎样在“无JDK”的情况下进行Java编程的。
三、首要采用的JavaEE版本是啥?
按照数据调查报告,有38%的Java开发人员根本不运用JavaEE。估计不少都使用了SpringFramework。不过或者也有一些Swing和JavaFX开发人员。
四、首要采用什么JVM语言?
虽然如文章伊始提到的,2017年,谷歌将Kotlin当做Android官方网编程语言,“Java将被取代”观点也随之而来。但是依据调查研究报告结果显示,在这一问题中,Java依然占主导地位。而Kotlin只是2.42%的受访者表达当今将其当做工程项目开发设计的首要语言。除此之外,它虽说超出了Scala的利用率,但仍然落后于Clojure。
五、哪几个IDEJava开发人员常用?
针对这一问题,一名网名为program9的软件工程师表示:“IntelliJIDEA是我采用过最好的IDE。以前我用过Eclipse和NetBeans,可是自从我尝试了IntelliJ,我再也不会回过头来。这燃做渗样的话我觉得代表,我不喜欢vi/vim编辑器。实际上,我喜欢用他们来迅速编写文件或撰写bash脚本。我觉得所有开发者都应当具有运用vim和bash脚本的一些基础知识。”
按照报告显示,有45%的开发人员以IntelliJIDEA为开发Java项目的IDE。次之各自有38%的开发者采用全免费的Eclipse和11%的受访者使用NetBeans。
六、首要采用哪几种构建工具?
许多开发人员在他们的项目中使用不同的构建工具,因此值得注意的是,调查中的问题是要求开发者选择使用的主要构建工具。而绝大部分工程项目全部都是采用maven构建的。
七、Java开发人员采用哪几种CI工具?
如同大部分开发者所期待的那般,Jenkins以高达57%的市场占有率获得CI服务器工具。此外,也有21%的开发人员尚未采用所有别的的CI工具。
八、开发设计团队首要采用哪些源代码管理工具?
针对有74%的受访者选用Git,合乎情理也属于情理之中。但令人惊讶的是,竟有16%的开发人员仍在采用Subversion(a.k.aSVN)。
九、首要应用哪几个测试技术?
知名软件工程大师RobertC.Martin在他关于软件开发专业化的探讨中曾表达道:“我们(软件工程师)对企业系统相等于医生对人的心脏手术。我们都是企业挣钱或亏钱的根本原因......我们都是把握企业命运线的人“。
殊不知,10%的开发者回应说他们都没有采用其他测试技术。嗯,在此祝愿岁月静好!
老实说,期望这些在平时开发设计中都没有测试代码习惯的10%的参与者仅仅自学的开发人员或是仍未加入工作的大学生。
十、Java程序员会采用哪几个非JVM语言?
如今有许多的Java应用程序前端全部都是用JavaScript编辑。按照调查研究报告结果显示,57%的受访者表达采用JavaScript语言,但并不清楚他们最后采用的是纯JavaScript还是别的其他相近TypeScript的语法超集。次之,有56%的程序员选用SQL,也有8%的受访者表达尚未工程项目中使用任何别的非JVM语言。
十一、哪几个Web框架是Java开发人员的最喜欢?
有40%的受访者挑选了SpringBoot架构,有36%的开发人员选取了SpringMVC,两者之间利用率差距不大。
十二、开发者采用哪几个ORM架构?
注:该选项为多选,因而总量不等于100%。
按照汇报显示,有高于一半的开发者运用了Hibernate。次之有23%的受访者选取了JDBC。但严格意义上而言,JDBC并非ORM框架,因此说选取None这一选项的开发者也有将会采用JDBC。
十三、Java开发者采用哪种数据库?
Oracle占有率27%,稳居榜首,随后是MySQL和PostgreSQL。只有9%的Java开发人员采用了MicrosoftSQL,这并不奇怪,是因为这是C#的利基。
MongoDB是NoSQL数据库产品中最热门的一种,使用的人数是IBMDb2数据库的5倍。
十四、哪几个应用服务器开发者最常使用?
毫无疑问,Tomcat以41%的占比稳居第一。
十五、Java开发者多久发布一次新版本的代码?
令人惊叹的是,7%的开发者表示每天多次发布项目更新代码。
十六、Java开发者的地理位置分布?
根据调查显示,大多数的开发者位于欧洲。
十七、使用Java的开发者年龄分布?
最为已有二十几年历史的Java,其使用者大多是伴随其发展成长起来的人,根据报告显示,有38%的软件开发人员年龄为30-40岁。
十八、程序员如何获得及学习有关Java技术?
对于这个问题,这里的最大赢家应该是Google,很多程序员都会通过Google去搜索相关信息。而碰巧大多数答案都可以在StackOverflow中找到。
十九、Java开发者为开源贡献了多少?
不论是国内还是海外的一些开发人员在空余时间都会自己构建小项目,但是整体而言,想要找到更多的时间去维护开源项目其实并不容易,按照前文的数据结果显示,38%的Java开发者年龄处于30-40岁之间,此时,日常工作以及家庭占据了他们大多数时间,很难再抽出空闲时间。这也是为什么有55%的人从未开源过项目。
什么是 JavaFX ?JavaFX 包含了一些列图形和媒体包,允许程序员设计、创建、测试、调试、和部署富客户端应用并且保持跨平台的 *** 作一致性。
JavaFX 应用程序
JavaFX 应用程序由 Java API 编写,可以调用任何 Java API 包。例如,可以调用 Java API 访问本地 *** 作系统,并且与服务器进行连接。
JavaFX 的外观可以自定义。层叠样式表(CSS)将应用的外观与功能分离,让程序员可以更专注于编码。美工可以简单地通过 CSS 来自定义应用程序的外观。
如果你有 Web 设计的背景,或者你想将 UI 和后台逻辑分离,那么你还可以将 UI 放入到 FXML 标记语言中,用 Java
编写业务逻辑。如果你只想编码,那么可以将编写 UI 的工作交给 JavaFX Scene Builder。在支持 JavaFX
的集成开发环境(IDE)中,可以使用 JavaFX Scene Builder 来编写 FXML 标记语言。
可用性
从 JavaFX 2.2 以后,JavaFX 已经集成在 JRE 7 和 JDK 7 以及以后的 Java 版本中了。因为 JDK
可以很好地运行在主流桌面系统上(Windows, Mac OS X, and Linux),因此 JavaFX
也可以运行在这些主流的桌面系统上。跨平台兼容性,可以让 JavaFX 的开发者和用户得到一致的体验。
在 JDK 的下载页锋吵面,可以获取 JavaFX 例子的 Zip 包。这些例子应用程序提供了很多代码来演示如何使用 JavaFX。
主要特性
JavaFX 2.2 和之后的版本都包含以下主要特性:
Java API
JavaFX 是一个 Java 包,由 Java 类和 Java 接口等原始的 Java 代码编写而成。这些 API 在设计上可以很友好的替代为 Java VM 语言,例如 JRuby 或 Scala。
FXML and Scene Builder
FXML 是基于 XML 的标记语言,用来创建 JavaFX UI。设计者可以直接编写 FXML 或者使用 IDE 的 Scence Builder 来编写 FXML。
WebView
Web 组件可以使用 WebKitHTML 技术将 Web 页面嵌入到 JavaFX 应用程序中。在 WebView 中运行的
JavaScript 可以调用 Java API,并且 Java API 也可以调用 WebView 中运行的 JavaScript。
Swing 集成
旧有的 Swing 应用程序可以更行 JavaFX 的新特性,比如丰富的图形媒体播放功能和嵌入 Web 页面的功能。
丰富的自有控件和CSS
JavaFX 提供了桌面应用程序需要用到的主要控件。并且控件的外观可以使用标准的 Web CSS 来进行控制。
画布(Canvas)API
Canvas API 允许在可以包含一个作图元素的 JavaFX scene 直接绘制图形。
支持多点触控
基于平台的底层能力,JavaFX 支持多点触控功能。
硬件加速的图形通道
JavaFX 图形渲染基于 Prism。如果使用了支持 Prism 的显卡或 GPU,JavaFX 可以很快的进行平滑渲染。如果系统不支持 Prism,那么默认值将会变为 Java 2D。
高性能的媒体引擎
媒体通道蔽磨支持 Web 多媒体内容的播放,基于 GStreamer 媒体框架,提供了稳定的、低延迟的媒体播银并侍放框架。
自包含的应用程序部署模式
自包含的应用程序,可以包含所有的应用程序资源、Java 运行时以及 JavaFX 运行时。应用程序发布后,可以在 *** 作系统本地安装,获得 *** 作系统一致的安装和加载体验。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)