如果您在2016年编写过Java代码-这是您不容错过的趋势

2016年最有趣的Java相关主题

关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作。 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作。

在下面的文章中,我们将介绍2016年最热门的内容,以及来年将变得更热门的内容。 Java明智,当然。 准备像2017年一样编写代码。

Java 9,你真好,让我心碎

我们以Java 6中的一个错误开始了这一年,该错误将变成Java 9中的一个功能: sun.misc.Unsafe 。 该库是用于执行低级,不安全操作的方法的集合。 例如,使用allocateInstance方法可让您跳过对象初始化阶段或绕过构造函数中的安全检查。

尽管Oracle曾考虑完全删除Unsafe库,但是社区能够改变主意并将其转变为Java 9功能。

这不是社区唯一一次谈论Java 9或整个Java未来版本中的可能更改。 今年早些时候,Oracle Java语言架构师Brian Goetz发布了JEP 286的调查结果。

该提案建议在Java的未来版本中引入局部变量类型推断,以简化Java应用程序的编写。 底线? 74%的开发人员希望较少的冗长性 ,并且能够在无需指定关联类型的情况下声明变量。

距离 Java 9发行还有200多天的时间(而且我们知道,因为我们要把发布的天数计算在内),所以我们有足够的时间来研究不同的JEP并找到新的和改进的功能。 这就是我们遇到的JEP 266:更多并发更新,其中包括CompletableFuture和令人兴奋的java.util.concurrent.Flow类的更新。

毫无疑问,Java 9在过去的一年中一直是头条新闻,随着我们进入2017年,它将继续得到越来越多的关注。现在我们要做的只是等待,希望它不会再次延迟 。

Java EE呢?

对于Java Enterprise Edition(也称为Java EE)来说,2016年是有意义的一年。 由于它建立在Java SE之上,因此一直是全球Java社区困惑的根源。 正式地,它只是一个规范,其中包含Oracle以及RedHat和IBM等其他供应商提供的实际实现的实际实现(例如Glassfish参考实现)。

Java EE围绕着很多问号,主要问题是“ Oracle是否放弃了企业软件? ”,但对Java EE的致命打击来自Gartner的“ 应用程序平台市场指南 ”报告。 Gartner在报告中指出,Java EE是为“不再满足现代应用程序需求的过时模型”构建的。 哎哟。

Java EE社区说Gartner不太正确,这再次引发了围绕该版本的讨论。 Java EE 8预计将于2017年上半年发布,我们猜测现在对其进行颂扬还为时过早。 但是,我们将不得不等待,看看Java EE如何以及是否崩溃。

Java还有很多

Java不只是Java 9,还有很多趋势需要您掌握。 一个不错的起点是浏览2016年排名前100的Java库 ,检查在过去一年中您可能错过了什么。

另外,如果您的Java程序库是库,那么还有一些有趣的Google Java库 (不是Guava),值得一试。

遵循教育路线,有一些关键要素只有在您变得更有经验时才可以学习 ,并且准备开放思想并学习是很好的。

如果您正在寻找挑战,那么有很多值得您花费时间的项目 。 您可以解决问题,使用String进行操作,甚至还可以使用Java音乐播放器进行学习并从中学习。 当然,如果您遇到任何问题或疑问,则可以使用Stackoverflow。 这是我们发现的7个最佳问题 。

有趣的小故事:您能猜出GitHub的顶级Java项目如何使用日志吗? 因为我们已经分析了1,313个GitHub存储库中的779,236条Java日志记录语句 ,以找出答案:错误,警告还是致命?

将Java放入容器中

容器非常适合在除夕夜聚会中使用零食,并且在管理Servlet的生命周期,将URL映射到特定Servlet并确保URL请求者具有正确的访问权限时,它们也非常方便。

Java容器引起了很多兴趣。 几个月前的一次OverOps支持聊天激起了我们对Alpine Linux和Docker结合的兴趣,从那时起,我们看到越来越多的用户使用其容器对其进行尝试。

这就是为什么我们决定检查Alpine Linux的原因, Alpine Linux是一种独立的精简版Linux,基于musl libc(发音为“ muscle”)和busybox。 除了轻量级之外,它还面向安全性并使用grsec / Pax,这是Linux内核的安全性增强。

Docker仍然是业界最热门的工具之一。 该公司承担了运输代码的艰巨任务,并使用容器使其变得更快,更容易。 但是,如果您正在考虑在Docker上使用Java,则可能必须重新考虑它,因为它可能会导致您违反(Java)法律 。

那么DevOps呢?

我们知道您在想什么-在这里我们用流行语。 我们在2016年遇到的最常见的主题之一是DevOps,它具有多种含义和工作方法。 它的主要要旨在于了解实时应用程序中会发生什么并能够对其进行控制。

我们该怎么做? 通过监控我们的生产环境。 性能问题,错误和异常一直在发生,我们必须知道发生了什么。 但是,我们如何看待何时以及为什么发生某些问题呢? 这就是“ 可观察性 ”概念出现的地方,以帮助我们深入了解系统并了解实际发生了什么。

它是DevOps工作流程的一部分,并且在控制理论中,它是衡量通过了解系统外部输出可如何推断系统内部状态的方法。 这是另一个“流行语”出现的地方: Instrumentation 。 这是使我们能够在应用程序对我们和我们的用户造成麻烦之前获得对应用程序的了解的原因。

建立了这些基础之后,就该推出可以帮助我们监控应用性能的工具了。 一旦应用程序启动并运行,我们需要知道是否以及何时引发错误或异常。 这就是为什么市场上有许多错误跟踪工具的原因,而您要做的就是为您选择合适的工具。

错误不是唯一需要引起我们注意的问题,2016年最大的挑战是处理日志文件。 每个人都使用它们来搜索和了解其应用程序中的错误,崩溃和异常。 有些使用直接方法并在纯文本日志文件中进行筛选,而另一些则依靠日志管理工具来帮助他们在日志草垛中查找错误。

日志文件在2016年仍然很烂

如果您正在寻找一种调试生产错误和异常的新方法,则OverOps ( 在2016年进行了改造 )为您提供了整个调用堆栈的完整源代码和变量状态。 传递到导致失败的事务或工作流程中的每个参数和每个变量。

这个和那个

忽略微服务的趋势已变得不可能。 有些人会说这只是另一个难以忍受的流行语,而另一些人会背诵打破巨石的优势或采取逆势方法并关注负面因素。

但是,从任何角度看,这些天似乎每个人都在使用微服务。 现在,您只需要注意不要在使用过程中增加任何东西 。

在过去的几年中, 无服务器计算体系结构也得到了关注。 无服务器计算的概念谈论的是部署代码,而不是服务器。 云提供商不是购买,管理和扩展服务器,而是处理对虚拟机的请求的提供商。

因此,您仍然需要服务器,但是这种新模型使您无需承担责任。 换句话说,处理服务器上的部署或任何类型的已安装软件都没有麻烦。 基本上,您需要的只是托管的云服务和计算机。

最后,即使他们已经存在了一段时间,也感觉每个人都在谈论人工智能和机器学习 。 对于科学家和研究人员而言,它已不再是秘密,几乎可以在任何新兴技术中实现。

最近在这一领域的嗡嗡声和发展使非研究者更容易使用它。 现在,您可以轻松访问相关的算法和工具。 您确实必须知道自己在做什么,但是使用机器学习功能来增强应用程序要容易得多。

向社区大喊

您一定喜欢Java社区。 它们不仅会影响该语言的未来版本,还会通过聚会,有关Java一切的文章和信息不断丰富我们。 2016年有一些非常令人惊叹的会议,例如JavaOne , QCon和更多精彩的演讲,您可以立即重新观看 。

观看在线讲座和视频是学习软件开发新事物的主要资源之一。 它是Java专家与我们分享经验的绝佳平台,而无需坐下来。

或者,如果您不是视频类人,那么遍历Java平台也可以使您随时了解最新信息和趋势。

但是同伴的支持在我们工作的各个方面都至关重要,我们可以从周围的人那里学到很多东西。 一项关键功能是提高生产力,因为始终存在改进的空间。 我们要做的就是准备接受建议 ,并听取愿意发言的人的意见 。

不要忘了开源

社区的另一个关键要素是支持开源项目并为之做出贡献。 实际上,我们已经启动了您一直在等待(或不等待)的命令行工具– Bullshifier 。 它用于在可笑的大型代码库上测试我们的某些监视功能,其中事务进行了数千次调用,上千个类,并且最终会产生异常。

最后的想法

2016年,我们遇到了很多话题和流行语。一些我们已经知道,一些全新的词使我们以完全不同的方式看待Java。 现在,我们期待着Java 9的到2017年,并希望有更多新的,令人惊奇的功能,演讲,项目,甚至是一个新的流行语或2。

您最喜欢2016年的Java功能,演讲或主题是什么? 我们希望在下面的评论中听到有关它们的信息。

翻译自: https://www.javacodegeeks.com/2016/12/youve-written-java-code-2016-trends-couldnt-missed.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三届蓝桥杯省赛---第39级台阶

第39级台阶 小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级! 站在台阶前,他突然又想着一个问题: 如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替&#xf…

android 视图覆盖,如何在Android中添加覆盖视图超过其他视图?

设为背景!只是开玩笑…你需要的是把你的意见放在一个RelativeLayout里.会有什么工作:xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"fill_parent"android:layout_height"fill_parent"&…

Linux内核源码分析方法

一、内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序…

深度学习框架Keras介绍及实战

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。 本文以Kaggle上的项目:IMDB影评情感分析为例,…

操作系统--处理机调度

4 处理机调度 4.1 调度类型 操作系统必须为多个进程的竞争请求分配计算机资源。处理机调度的任务就是选出待分派的作业或进程,为之分配处理机。 为了便于处理机调度管理,通常在处理机调度中采用分级调度方式,其中包括以下3级调度:…

permgen_什么是PermGen泄漏?

permgen接下来是对Java应用程序中特定类型的内存问题的实用介绍。 即–我们将分析导致java.lang.OutOfMemoryError:PermGen空间的错误 堆栈跟踪中的症状。 首先,我们将介绍理解该主题所需的核心概念,并解释什么是对象,类&#…

TP、PHP同域不同子级域名共享Session、单点登录

TP、PHP同域不同子级域名共享Session、单点登录 目的: 为了部署同个域名下不同子级域名共享会话,从而实现单点登录的问题,一处登录,同域处处子系统即可以实现自动登录。 PHP支持通过设置cookie使得同域不同子域共享SESSION 1. 通…

html语言书写注意事项,HTML注意事项(学习笔记)

1、在所有浏览器中都是有效的,但使用 其实是更长远的保障。类似的标签也一样2、标签最好用小写,未来的版本中可能强制用小写3、标签属性始终为属性值加引号属性值应该始终被包括在引号内。双引号是最常用的,不过使用单引号也没有问题。在某些…

UTF-8、GB2312、GB18030、GBK和BIG5等字符集编码范围的具体说明

一预备知识 1,字符:字符是抽象的最小文本单位。 它没有固定的形状(可能是一个字形),而且没有值。 “A”是一个字符,“”(德国、法国和许多其他欧洲国家通用货币的标志)也是一个字…

使用Forge,WildFly Swarm和Arquillian开发微服务

在本文中,我们将看到如何使用WildFly Swarm和Forge开发微服务,以及如何使用Arquillian和Rest Assured对其进行测试。 WildFly Swarm提供了一种创新的方法来打包和运行Java EE应用程序,方法是将它们与足够的服务器运行时一起打包以“ java -j…

html页面加载时触发的方法,在页面加载时触发onchange html事件

好的,我在select字段上有一个onchange事件。它现在很棒。当下拉“网络”更改时,它会刷新第二个下拉列表。我还希望顶部的ajax代码在页面加载和onchange上触发,以便填充第二个列表。这是因为它在编辑页面上。这是使用第一个的ajax调用function…

PYTHON-进阶-编码处理小结

开始 用python处理中文时,读取文件或消息,http参数等等 一运行,发现乱码(字符串处理,读写文件,print) 然后,大多数人的做法是,调用encode/decode进行调试,并没有明确思考为何出现乱码…

华为鸿蒙话题作文800字,关于鸿蒙OS 华为最高层发布最新通知:统一口径-华为,智能手机,鸿蒙...

6月2日晚,华为正式推出了HarmonyOS(鸿蒙操作系统),引发了国内外空前关注。OS操作系统是中国手机甚至整个科技行业的弱点,因此鸿蒙OS带来的震撼及争议都很多,甚至华为内部员工对它的认知也不相同。为此华为总裁办昨天发布了题为《关…

8-4 Fabled Rooks uva11134

题意:你的任务是在n*n的棋盘上放 n 小于5000 个车 使得任意两个车不互相攻击 且第i个车在一个给定的矩形ri之内 给出该矩形左上角坐标和右下角坐标四个点 必须满足放车的位置在矩形内 边上也行 如果无解输出IMPSSIBLE 行与列是独立的 所以可以分割成两个一模一…

谷歌guava_Google Guava MultiMaps

谷歌guava番石榴 这是我尝试解释和探索Google很棒的Guava java库的系列文章中的第一篇。 我在搜索Apache Commons Collections的通用版本时遇到了番石榴(Guava)–我需要一个Bimap并且厌倦了必须使用强制类型转换来填充我的代码–但是我发现要好得多。 …

python 获取系统相关编码的函数

怎么避免UnicodeEncodeError: ‘ascii’ codec can’t…类似的错误? 1、首先在py文件头部指定文件内容编码,例如:# coding: utf8 2、文件保存的时候要和py文件头部编码一致 3、在用decode和encode的时候,一定要确认要转换的字符原…

百度的html代码是什么,百度网页源代码是什么?

2017-07-28Java抓取网页的内容代码是什么public static String getHtmlReadLine(String httpurl){String CurrentLine”";String TotalString”";InputStream urlStream;String content”";try {URL url new URL(httpurl);// URL url new URL(“http://www。 …

html中高与行高的区别,深入了解css的行高Line Height属性

什么是行间距?古时候我们是用印刷机来处理文字,印出来的每个字都位于独立的一个块里。行间距,即传说中控制两行文字之间垂直距离的东东。在CSS,line-height被用来控制行与行之间的垂直距离。不过行间距与半行间距还是取决于CSS中的…

自动生成优化的Java类专业知识

如果您今年访问过JavaOne,您可能已经参加了我的演讲“如何从数据库生成定制的Java 8代码”。 在那次演讲中,我展示了如何使用Speedment Open Source工具包使用数据库作为域模型来生成各种Java代码。 我们没有时间要考虑的一件事是,Speedment不…

vue动态路由配置,vue路由传参

如果是不同的组件过来的,可以设置不同的id值,只要在目标组件获取属性id的值就可以了,参数就利用query.属性值来获取 转载于:https://www.cnblogs.com/xiaoqi2018/p/10434318.html