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属性,表示“标准输入流”)。
什么样才算是走在前沿的Java开发者?他们就只写Java或者能在JVM上运行的语言吗?Scala开发者或者Java开发者使用同样的JVM?显然这里是有一些意见上的分歧,并且他们对于 JVM 社区也并不太积极。那么成为一个JVM 上的前沿开发者有什么意义?在JVM上已经有了很多语言像 Scala,Kotlin 和 Clojure,这些语言已经成了新的发展方向。
身为java程序员,有没有一点点小骄傲了?
偏执编程看起来似乎不可思议,有时,因为代码经常被证明是更详细一点,但并不是需求需要。你可能会想,“哦,这是绝不会发生的”,但正如我所说。经过20年左右的时间编程,你不希望只修复这些愚蠢的bug,因为编程语言是如此的陈旧的和有缺陷的。因为你知道…
这就是所有的面试题,如此之多,是不是?我可以保证,如果你能回答列表中的所有问题,你就可以很轻松的应付任何核心 Java 或者高级 Java 面试。虽然,这里没有涵盖 Servlet、JSP、JSF、JPA,JMS,EJB 及其它 Java EE 技术,也没有包含主流的框架如 Spring MVC,Struts 2.0,Hibernate,也没有包含 SOAP 和 RESTful web service,
我经常跟自己的学生讲:”重要的不是技术细节,而是技术背后的思想”,如果你在学习和使用这门语 言时,关注得更多的不是某些API或框架,而是这些API的设计理念以及框架背后的指导思想,就算不使用Java做开发,你仍然可以是一名优质的程序员。
我个人认为, PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
其实本来真的没打算写这篇文章,主要是我得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。我自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。
这就是它有趣的地方了。如果你看去看 Integer.Java 类,你会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。
有 同学批评我对于.net的观察还停留在5年前,确实最近两年很少写.net了,但是这个5年确实也不影响,node出来也就5年吧,objectC也是最 近5年比较火,包括hadoop,docker最近两年才火起来的,我也用react,angular这些前端框架,我会追新技术的,新事物的诞生是为了 解决老事物的问题而来
如果你曾读过我写的其它一些文章,你应该很难忽略这样一个事实,我也真的很喜欢用Rust编程。所以,既然我是一个对Rust和Java都懂的人,为什么不对它们进行一下比较,看看能得出什么结论呢?
下面的这些都算是比较高级的问题了,面试中一般也很少问到,因为它们可能会把面试者拒之门外。不过你可以自己找个时间来实践一下。
本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。
Guava 是谷歌基于Java1.6的一个类库集合的扩展项目,包含了许多谷歌核心的 Java 常用库。除开Guava,还有一些谷歌的常用Java类库也值得我们关注,本文列出了其中的五个类库。
年复一年,关于”Java 将死?”的疑问频繁涌现,然而,通过所有外部表现来看,Java 仍活着,并且在发展。尽管许多新语言各领风骚,开发语言排行榜(TIOBE)上 Java 在 2015 年仍居榜首,并比 2014 年增长了5% 的使用量,远远超过其他语言。
在这多达330,000个JAVA开源库中,我收集了下面这些或许也值得你一试的Java开源库。
Java 在定义字符串的时候不支持字符串插值, 即不能在字符串中捕获作用域中的变量, 用来组成当前字符串. 而这可以说是其他各种言都具备的基本特性. 例如 Bash 中可以这样
他们知道你手机上的全部应用程序
20 年前的 exe 现在仍然可以在 Windows 上运行,linux 呢?
自我感觉良好
战争故事:我调试过的最难的错误
在选择 Next.js 之前,您应该了解这些信息
非官方 Windows 7 Service Pack 2
进化中的 SCALA 语言
氧化 Ubuntu:默认采用 Rust 实用工具
我认识的最糟糕的程序员
初级开发人员的复仇