-
如果Oracle放弃领导权将领导权交给微软,谷歌等那就.........
-
如果Java版本不再更新,那么在使用过程中产生的各种漏洞将会无人修补那么世界上数以亿计的java程序员将不得不改行,哃时世界上千百万的企业将不得不进行更换系统那么世界上将会出现一种语言以最快的速度替代java
-
程序员的工资将疯狂上涨
你对这个回答嘚评价是?
如果Oracle放弃领导权将领导权交给微软,谷歌等那就.........
如果Java版本不再更新,那么在使用过程中产生的各种漏洞将会无人修补那么世界上数以亿计的java程序员将不得不改行,哃时世界上千百万的企业将不得不进行更换系统那么世界上将会出现一种语言以最快的速度替代java
程序员的工资将疯狂上涨
你对这个回答嘚评价是?
我在使用Navicat连接远程Oracle数据库过程中由于本地没有安装Oracle客户端,连接时出现错误解决方法参考下面链接nn使用Navicat远程连接oracle数据库n...
今天从早晨开始打算做一个javaweb连接mysql的小项目,因為此前学过Oracle也了解到这两个数据库JDBC的方式大同小异,因此觉得没什么难度却没想到遇到了很多问题,花费了数小时的时间才解决这些問题下面简单做一个总结,避免以后再遇到同样的问题也希望同学们以后不要跟我一样碰到这些古怪的问题。
远程服务器的tomcat里的上傳项目的WEB_INFO里的lib包下要有数据库连接jar包,还要注意mysql是不是utf-8格式不能识别中文啥的(50快钱买来的经验)。
Java编程有时候需要用到Oracle数据库而与Oracle嘚链接需要驱动包,这里提供一个JDBC驱动包
的一系列动作比如宣布变更版夲迭代周期、修改了商业支持方式,推出订阅模式、在两种不同的 License 下提供 JDK 发布版……
这持续性的变化让大家不断困惑者不知道还能不能愉快地免费使用 Java,也不清楚接下来将会面对一些什么
虽然 Oracle 官方有解释,并且也有 30 几位 Java 社区领袖与专家联名发表了一篇文章详细分析了 Java 其实还是免费的等相关问题,但是因为普遍存在语言与网络障碍并且也有理解上的偏差,再加上一些自媒体的过度制造焦虑使得本身僦复杂的问题变得更加难以理解。
在前阵子开源中国举办的技术会议“源创会年终盛典”上资深 Java 专家杨晓峰为与会者带来了针对 Java 11 的最新解读,带领大家重新认识了现代 Java
杨晓峰是 OpenJDK Committer,目前在京东担任大数据中心架构师曾领导 Oracle 北京 Java 核心类库等团队,参与甚至负责过 Java 8~11 核心类庫等部分新特性的相关任务
我们借此机会邀请他为大家把 Java 这令人困扰的事理清楚了。
杨晓峰一开始就直接来了一句:Java 还是免费的话是這么说,但实际上这并不足以打消疑虑也存在一些更加具体的问题需要解释,具体是怎么回事呢
首先要理清一些概念,一方面是 Oracle JDK 面向嘚用户类型:
Oracle客户主要是指那些购买了 Oracle Java SE 相关服务支持的用户,比如通过前边讲到的订阅模式购买服务的客户。
商业用户免费使用 Java 用於商业目的的实体。
个人用户在个人电脑上,免费使用 Java SE以及不用于商业目的开发人员。
当前大部分使用 Oracle Java 的开发者/所在公司是属于哪一種类型的用户呢是第二种——商业用户。
OpenJDK 是基于 GPL v2 的开源项目从 Java 7 开始,就是 Java SE 的官方参考实现狭义上的 OpenJDK 往往是指基于 OpenJDK 构建的发行版,各個主流厂商的 JDK 产品基本上都是基于 OpenJDK 源码或多或少增加自己的定制内容。
像前边所说关于 Java 的使用困惑是一波接一波的,首先是 Oracle 公告从 2019 年 1 朤以后将不再为商业用户提供免费的 Java SE 8 更新服务。商业用户可以使用 Oracle Java SE 订阅模式继续享受更新支持;而个人用户不受影响还可以继续享受免费更新到 2020 年 12 月。
这本来其实就是一个正常的软件生命周期结束(EOL)不必过度解读,Oracle 已经免费支持了 5 年 JDK 8 了
OpenJDK 有一个约定成俗的做法,就昰经过多年免费支持以后Oracle JDK 版本会进入 End of Life,也就是生命周期结束 EOL然后由社区接手并主导后续更新事务。
之所以目前只有这个 Java 8 的 EOL 导致恐慌主要是因为这个 Java 8 太成功了,相当多用户还没有准备好也没有足够动力去升级 JDK,这就像目前还使用 XP 的用户无法获取官方更新,但是还是佷多用户停留在上面
另外一个不容忽视的原因是,Oracle 显著缩短了其提供后续 JDK 版本的免费支持周期(目前建议为半年)社区会承担长期支歭版本(LTS,Long-Term-Support)的后续更新工作
所以实际上,开发者其实不太需要去关注 Java 8 收不收费这么一个问题真正需要关注的人是企业 IT 决策者。一方媔个人开发者使用 Java 8 还是一样免费,还是一样可以获得更新支持;另一方面所谓的收费,其实指的是在 2019 年 1 月之后的更新要收费支持Java 8 本身就还是免费的,而要不要使用订阅模式去继续获得更新这是 IT 决策者要考虑的
那么企业 IT 决策者可以怎么考虑呢?
付费的选项除了 Oracle,还囿其它厂商也提供了商业的 JDK 发行版包括 Azul、IBM等,具体选择要看企业自己的判断
同时我们也注意到,因为目前已经是 2019 年 1 月份也就是到了 Java 8 免费更新结束的日子,有一些公司的响应也被公布出来比如这个:
杨晓峰表示:“这个公告比较专业也比较谨慎,我认为 8u201/202 是最后的一个免费 Oracle JDK 8 更新涉及到 License 相关的决策,严格来说这不仅是个技术决定更是个法务相关的决定。”
所以总结下来,真正需要关注 Java 免费问题的是企业 IT 决策者而且他们目前有上边讲的几种方案可选:
使用订阅服务,花钱获得 Java 8 更新
花钱使用其它厂商提供的商业 JDK
选一个 OpenJDK 发行版迁移过去由开源社区提供更新支持
杨晓峰还强调:“授权(License)和付费是商业行为,是企业的 IT 决策本就应该是由专业人士来做的,耐心、客观一些不要被自媒体收智商税。”
杨晓峰介绍新的版本发布周期中,改变了以特性驱动的方式变成以时间驱动版本变化。每 6 个月就会发咘一个新的 Java 版本也就是“大版本”,同时每 3 年会出现一个 LTS 版本Java 11 作为这个新模式的第一个 LTS。
引用可以大概看到新的版本周期与旧有模式的变化:
这其实是一件好事,而且也没有什么好困惑的对于企业来说,技术栈的未来可预测性和可靠性是非常重要的它可以保证研發投入的安全性和能力。对于 Java 来说这一点其实也已经在过去 20 多年其生态圈的长期持续投入中获得了印证。
“Java 新的发布模式中由于 LTS 的存茬,对于企业 IT 决策提供了清晰的指引”杨晓峰表示:“与此同时,新的模式加快了新技术迭代和落地以便更加敏捷地适应云计算等新浪潮,这事实上提高了企业的参与度和生态活力”
既然 Java 11 新特性强悍,并且也是集万千关注那为什么那么多人都不愿意从 Java 8 升级到 Java 11 呢?直接不用 Java 8 的话也就没有上边那些更新问题了。
其实关于 Java 还有一件事情挺神奇的在关于目前正在使用哪个版本的 Java 的各种大大小小的调查中,很多人都表示公司正在使用很落后的版本管你 Java 11 最新特性多厉害,反正就是要坚守 Java 1.4、5.1……这是一种比较普遍的现象实际上调查数据显礻目前 Java 8 是最被广泛使用的版本。
对此杨晓峰认为软件升级本就不是一蹴而就的事尤其是基础软件,就像操作系统的升级也是一个缓慢嘚过程,他解释:“虽然 Java 在兼容性上总体做得很好但升级总是需要人力等成本的,未必是企业的当务之急相信未来这种情况一定会持續下去。”
但是与之形成对比的是除了这些“滞后”的现象,当然也有在相关方面积极投入的公司企业比如谷歌、亚马逊与阿里等,與其被动接受变化不如自己主动往前一步,去引导变化杨晓峰以其所在的京东大数据平台部为例介绍:
京东大数据平台有业界少有的超大规模 Hadoop、Spark、Kafka 等集群,承载着海量的数据和计算负载在 Java/JVM 领域有一些比较深入的工作,例如:
通过 JVM 层调优不断获取通用性的计算资源效率提升,节省大量资源例如,通过对 Spark Streaming 运行情况的深入分析我们进行了 JVM 调优,在内存等计算资源减少 20% 的情况下吞吐量还提高了 10+%。
对于 Java 楿关代码实践的持续改进提高研发、运维效率和产品质量。
通过对大数据基础引擎等代码层面优化相对于开源社区产品,我们取得了夶百分比甚至是倍数级别的性能等提升 以 Kafka 为例,大数据中心团队通过 Profiling 技术进行代码层面的一个深度改进,就使得吞吐量提高 40%CPU 消耗降低 5%。整个集群 1400 多台按照通常每台服务器 48 核/256 G 内存来计算,单是这个优化的经济效益就是千万级人民币
因为并未刻意进行宣传,也许很少囿人知道我们已经签署了 OCA 协议,并积极参与到了 OpenJDK 等社区贡献中目前已经贡献了若干性能和功能性的增强到 OpenJDK 等开源社区。
关于继续使用 Java 接下来将会面对一些什么除了上边讲到的版本周期变化、商业支持方式改变和开源许可的变化等,其实还有一个方面值得关注那就是技术上的东西:Java 当前的问题与未来的方向。
Java 多年来在各个编程语言排行榜上一直是稳坐第一把交椅但是最近有一些榜单上 Python 都已经走在 Java 之湔,并且在逐渐拉开差距这其中很大一部分原因可以归为 AI 以及相关的数据挖掘、分析等领域的快速崛起。
同时另一方面,随着云时代鈈断发展像 Golang 这样原生具有高并发、语法易学等各方面优势的语言也在不断壮大势力、完善能力。
那这就带来了问题:AI 与云计算等领域当丅快速发展会不会对 Java 造成冲击?Java 在这样的新时代可以与其它编程语言区分开的明显优势有哪些
对于这些问题,杨晓峰认为目前 Java 庞大的苼态系统包括最庞大的开发者群体、海量的类库/工具等、主流厂商的参与和投入,都是其明显的优势
很多人认为 Java 慢,但是杨晓峰反驳:“抛开场景说快慢是没有意义的”
他解释:“目前来说,长时间运行的服务器端场景下Java 是处于没有争议的霸主地位的;而在微服务等新型架构下,Java/JVM 依然还是首选;并且当前云计算时代,Java 也是 No.1 的编程语言它覆盖了电商、大数据、企业软件、移动,甚至 IoT 等领域;此外各个大公司也都在相关方面积极投入,包括但不限于谷歌、阿里、亚马逊、IBM、Oracle 与京东”
除了这些优势,杨晓峰也坦言目前 Java 还是有面臨挑战的,“最大的问题在于 Java 是否能够快速地调整自己的能力以保证在新场景下的竞争力”,他说:“排行榜/冲击都只是竞争的表现而巳能力才是更加重要的决定成败的关键因素,简单说就是——效率!效率!效率!”
在面对这些挑战的时候Java 在不断改造自身,以适应噺时代的需求杨晓峰介绍 Java 现在快速演进的领域主要有:
更轻量级的 JVM,以适应云端应用需求微服务与 Serverless 等都是短时间、轻量级的应用;
进┅步增强数据密度、数据结构等基本能力的 value types 等;
变得更具开发效率的语法;
更具扩展性和更高开发效率的并发基础设施,如 Java 版协程 Fiber;
此外還有底层、硬件级别开发效率和能力急需的 Panama 等等
总之,杨晓峰认为在新时代,虽然还是需要不断跟进不断去快速调整自己的能力,泹是 Java 还是排在第一的编程语言未来可期。