从更名为Jakarta EE的无奈之举看Java EE的开源之路
2017 年夏天,Oracle(Sun 公司早已被 Oracle 收购)表达了想要开源 Java EE 的意图,紧接着又宣布希望将 Java EE 移交给 Eclipse 基金会管理,这被很多开发者认为是 Java EE 发展的重要里程碑之一。
2017 年夏天,Oracle(Sun 公司早已被 Oracle 收购)表达了想要开源 Java EE 的意图,紧接着又宣布希望将 Java EE 移交给 Eclipse 基金会管理,这被很多开发者认为是 Java EE 发展的重要里程碑之一。
对开发人员来说, StackOverflow就像一个金矿。对具体的问题,它能帮我们找到最有用的答案,并且我们也可以从上面学习新的知识。下面的内容,通过这些最常见的JAVA问题与答案,并着重的标记出我们找到的精华问题。即便你是一个经验丰富的开发人员,这些也是值得去学习的。
在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识
随着时间的推移人们可能会发现,推出Java 9版本的意义,远没有随该新版本一并推出的Java版本发布周期变更为每六个月一次的意义更为重大。Java版本发布周期的变更,意味着在2018年将会推出两个Java新版本,而非一个。
在函数式编程中,函数既可以接收也可以返回其他函数。函数不再像传统的面向对象编程中一样,只是一个对象的工厂或生成器,它也能够创建和返回另一个函数。返回函数的函数可以变成级联 lambda 表达式,特别值得注意的是代码非常简短。尽管此语法初看起来可能非常陌生,但它有自己的用途。本文将帮助您认识级联 lambda 表达式,理解它们的性质和在代码中的用途。
别人都说我们是搬砖的码农,但我们知道自己是追求个性的艺术家。也许我们不会过多在意自己的外表和穿着,但在我们不羁的外表下,骨子里追求着代码的美、系统的美,代码规范其实就是一个对程序美的定义。
每次出新版本,大家大概都会这么问,“Java X会有什么特性呢?” 。在下面的内容里,我总结了至今为止的Java主要发行版中各自引入的新特性,这样做的目的是为了突出各个新特性是在哪个发行版中引入的。除了列出的特性外,每个发行版还做了很多优化和修复BUG的工作。
因为了解和喜欢 Java 社区,所以尽管很少有人将 NoSQL 与某种语言绑在一起,我也要为全世界的 Java 开发者写下这篇文章。文中,我将为你展示几种 NoSQL 数据库。之后,我将根据实际在 Github stars 和 Stack Overflow tags 的项目中的使用情况,选出最常用的五个。并且我会让你知道它们是否支持 Spring Data 和 SpringBoot。
Java是这个星球上最为流行的编程语言之一,但这方面的竞争正愈演愈烈。下面我们将讲述Java可能遭遇滑铁卢的地方,以及可以做些什么来预防它的衰退。
如果我们用Kotlin替换Java,那么我在编码与调试活动中可以节省多少工作量?这个问题很难回答,不同程序员之间这一数值会有很大差异(有些程序员使用Java更高效)。不过,既然我们在评估最好的情况,我们不妨假设从Java切换到Kotlin可以将开发人员在编码与调试阶段的生产力平均提高10%。
。编写简短的 lambda 表达式是实现这一表达能力的关键,但通常说起来容易做起来难。本文会加深您目前对创建单行 lambda 表达式的各个方面的了解。通过学习函数组合的结构和好处,您很快就会掌握完美的 lambda 表达式,—一个仅短短一行的表达式。
虽然我们开始了Java8的旅程,但是很多人直接从java6上手了java8, 也许有一些JDK7的特性你还不知道,在本章节中带你回顾一下我们忘记了的那些特性。 尽管我们不能讲所有特性都讲一遍,挑出常用的核心特性拎出来一起学习。
Java不仅仅是Java 9,它还有很多趋势是你必须保持在潮流之上的。一个好的开始浏览过去一年的100个顶级Java库,检查在过去一年是否有任何你可能错过了的东西。此外,如果库并非你所好,那么还有一些有趣的来自于Google的Java库(不是Guava)值得一阅。遵循教育路线,有一些关键的元素你只能随着经验的增长而学到,所以准备好学习吧。
其实本来真的没打算写这篇文章,主要是我得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。我自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了。
Java 是能运行在浏览器中的语言,丰富的前端界面离不开 Java 的功劳。近年来的 Node.js 又在后端占有一席之地。Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。
自从谷歌 I/O 2017宣布将支持 Kotlin 作为 Android 开发的 First-Class 语言,相信各位程序员的朋友圈都被Kotlin的消息轰炸了吧,支持Java的“守旧派”认为Java将稳坐霸主地位不动摇,支持Kotlin的“维新派”认为Kotlin很可能会把Java拉下马。其实,笔者认为新语言的出现对于程序员来说并不是一件新鲜事儿,程序员始终践行着“活到老,学到老”,真正能够对程序员产生影响的新语言的使用和性能。
Google I/O 2017 首日 Keynote 刚刚落幕,其中 Google 宣布 Android 系统将对 Kotlin 提供 first-class 的支持算是一个非常重磅的新闻。对于大众来说,Kotlin 编程语言可能是相对陌生的,它究竟有何过人之处呢?不如让我们听听开发者是怎么说的。
如果考虑到其他厂商和社区的观点,Oracle对Java 9的交付时间点似乎会出现冲突。到底Oracle会改变方向(这样的话,有可能会造成Java 9的再次延期)还是坚持自己的观点(即便主要的厂商和社区参与者有反对意见),尚有待继续观察。
我想阿里巴巴发布的Java开发手册之所以叫做”开发手册”,而不是像Google那样叫做“Style Guide(样式风格)”,是因为它不仅仅局限于style guide这一方面,而是以Java开发者为中心视角,划分为编程规约、异常日志规约、MYSQL规约、工程规约、安全规约五大块,再根据内容特征,细分成若干二级子目录。
2017 年开春之际,诚意献上重磅大礼:阿里巴巴 Java 开发手册,首次公开阿里官方 Java 代码规范标准。这套 Java 统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大降低代码维护成本。
Go语言正在构建的垃圾收集器(GC),似乎并不像宣传中那样的,技术上迎来了巨大突破。那么,与Java语言作对比之后,该怎么选择呢?
AOT可能带来的好处,是JVM加载这些已经预编译成二进制库之后,可以直接调用,而无需再将其运行时编译成二进制码。理论上,AOT的方式,可以减少JIT带来的预热时间,减少Java应用长期给人带来的“第一次运行慢”感觉。
总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。
这是我们今天要讨论的话题,因为我觉得它非常的有趣。
Java采用“for”(而不是意义更明确的“foreach”)来引导这种一般被叫做“for-each循环”的循环,并使用“:”(而不是意义更明确 的“in”)来分割循环变量名称和要被遍历的对象。这样作的主要原因,是为了避免因为引入新的关键字,造成兼容性方面的问题――在Java语言中,不允许 把关键字当作变量名来使用,虽然使用“foreach”这名字的情况并不是非常多,但是“in”却是一个经常用来表示输入流的名字(例如 java.lang.System类里,就有一个名字叫做“in”的static属性,表示“标准输入流”)。