Java 25 岁了!

spring cloud分布式事务从入门到精通

(如下载连接失效,请私信我)

百度云下载链接:https://pan.baidu.com/s/1EtYyj7MEBqIGSYg2ljBFyg 提取码:n8p7

备份下载地址 https://huoyan-dabing.lanzous.com/b0d253o4h 密码:9sem

 

Java 的过去

 

25 年前的今天,Java 生逢其时。

在计算机革命开始之际,硬件资源的逐渐富余为 IT 工程师们提供了各个层面充足的创新与试错机会,当然这其中也包括了开发工具层。

无论是前期美国计算机科学学者与软件工程师 Ken Thompson 开发的 B 语言,还是后来 Dennis Ritchie 创造的 C 语言、继而 C 语言衍生出了 C++ 等等,当时的开发工具领域早已呈现出百花齐放百家争鸣的盛况。

不过,在彼时单片式计算机系统以其“低廉的价格、强大的功能”风靡互联网圈时,最被工程师们看好的工具备选 C++,因其过于复杂的特性,以及不具备跨平台等功能,让想要在嵌入式应用领域抢占先机的企业与工程师们头疼不已。

正所谓这个世界上「没有完美的软件,也没有完美的开发人员」,既然如此,“改”才是王道。因此,在一家名为 Sun 公司中,由一位 James Gosling 的工程师带领其团队基于 C++,大刀阔斧地进行了改造,他们去掉了 C++ 一些不实用的功能与特性,又结合了嵌入式系统的实时性要求,开发了一款面向对象的 Oak 语言。

经过近三年漫长迭代与辗转,在互联网崛起之际,Oak 在变身并更名为 Java 后,因其面向对象以及"写入一次,随处运行"的可移植性而声名大噪,Sun 公司也于 1995 年 5 月 23 日这一天在 Sun World 会议上正式向外界揭开了 Java 的面纱 。

自此后的多年间,Java 也按照自己的技术轨迹稳步发展:

  • 1996 年,JDK 1.0 发布,标志着 Java 成为一种独立的开发工具;

  • 1997 年,JavaOne 会议召开,参与者逾一万人,创当时全球同类会议规模之纪录;

  • 1998 年,Java 2 企业平台 J2EE 发布;

  • 1999 年,Sun 公司发布 Java 三大版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME);

  • 2000 年,JDK 1.3 与 JDK 1.4 发布;

  • 2001 年,J2EE 1.3 发布;

  • 2002 年,J2SE 1.4 发布,自此 Java 的计算能力有了大幅提升;

  • 2003 年,J2SEE 1.4.2 发布;

  • 2004 年,J2SE 1.5 发布,彼时 Sun 公司为了凸显这个版本的重要性,将 J2SE 1.5 更名为 J2SE 5.0;

  • 2005 年,Sun 公司公开 Java SE 6;

  • 2006 年,Sun 公司宣布 Java 全线采纳 GNU General Public License Version 2,从而公开了 Java 的源代码;

  • 2007 年,Sun Microsystems 公司放弃了对 Java™ 平台的统驭,将权力交给了 Java 开发人员社区;

  • 2008 年,JavaFX1.0 发布;

  • 2009 年,甲骨文宣布 74 亿美元收购 Sun 公司,。

  • 2010 年,JavaEE 6 发布;

  • 2011 年,Java 7 发布;

  • 2014 年,Java 8 正式发布;

  • 2017 年,甲骨文宣布 Java 发布频率改为每六个月一次;

  • 2018 年,甲骨文宣布自 2019 年 1 月起,Java SE 8 公开更新将不向没有商用许可证的业务、商用或生产用途提供。

至今,Java 已渗透到了企业级应用、游戏、嵌入式设备、桌面级应用等各个场景中。

相关阅读:

 

历经波折

 

最初得益于 Java 虚拟机支持多个硬件平台和操作系统,Java 小程序可以从网页运行。当时如 IBM、Apple、Adobe、HP、Oracle、Netscape 和微软等各大科技巨头公司都纷纷停止了自己的相关开发项目,竞相购买了 Java 使用许可证,并为自己的产品开发了相应的 Java 平台。

不过也正因此,在过往 25 年间,围绕 Java 技术核心,有两大让业界颇为关注的诉讼案。

第一起是 Sun 和微软之间关于微软在 Windows 中使用 Java 的问题。

1997 年,Sun 公司一纸诉讼书将微软起诉至美国加州地方法院,原因是 Sun 公司认为,在微软使用 Java 技术签订的合同时,微软在自己的 Java 产品中做了“不恰当修改”违反了合同中承诺向用户提供 Java 兼容产品的条款。

经过漫长的调解,最终这一场官司于 2001 年,微软同意向 Sun 公司支付 2000 万美元和解才结束。自此,虽然微软也可以继续采用 Sun 公司开发的 Java 技术的现有产品,不过,将技术握在自己手中毕竟更为自由,于是 2001 年 7 月,微软推出了 .NET 平台,希望与 Java 有一战。

另外,还一起关于 Java 的知识产权纠纷,更为长久,至今仍未有定论,它就是后来收购了 Sun 公司的甲骨文和谷歌之间的 Java 知识产品纠纷案。

2009 年,甲骨文指控谷歌在 Android 开发中滥用了 Java API 版权,并直接复制了 11330 多行代码,侵犯了自己的知识产权。

经过近十年的激烈交锋,2018 年,联邦巡回上诉法院认定安卓侵权,Google 败诉并要进行 88 亿美金赔偿。

2019 年,Google 上诉,要求美国最高法院进行最终裁决,2019 年 11 月最高法院同意审理。而日前,Google、Oracle 均向美国最高法院提交了自己的陈述,不过因为今年以来全球受疫情的影响,该起案件最终定论如何尚未可知。

不过,现实来看,无论最终判罚的结果如何,终将在一定程度上影响移动开发中使用 Java,甚至还会影响所有软件开发。

 

Java 当下

 

刨除外在的商业利益关系,回归到 Java 编程语言本身,在 25 年后的今天,凭借着面向对象、跨平台、可移植、高性能等优势,Java 横扫各大编程语言榜单,期间虽经历了 Kotlin、Python、Go 等后起之秀扬言“取而代之”的挑战,却依旧被业界称之为编程语言界的常青藤,也成为企业应用开发主流的存在。

根据甲骨文的数据,2017 年全球估计有 900 万 Java 开发人员。与此同时,Java 也催生了一个巨大的工具生态系统,从 Spring 框架到应用程序服务器,从 IBM、红帽和甲骨文等公司到 JavaFX 富媒体平台,Java 身影无处不在。

在国内环境中,也有大量的企业采用 Java,以阿里巴巴为例,其不仅在生态上拥有 14000 开发者、90000 应用实例、内部有 1000000 JVM 实例等,在 Spring、Spark、HBASE 等技术栈中也均有 Java 应用。

 

Java 的未来

 

虽然目前 Java 的更新速度无人能及,开发者也叫苦不堪,直言“学不动”。不过 Java 基于自身的痛点仍在不断改进中,

在两个月前发布的 Java 14 中,提供了16个主要的改进和变更,包括两个孵化器模块、三个预览特性、两个弃用的功能以及两个删除的功能。

相关阅读:

近日,Oracle Java 平台组首席架构师 Mark Reinhold 在 OpenJDK 社区中提出了一项建议,将解决长期 Java 的难题,包括启动时间慢、性能达到峰值的时间缓慢以及占用空间大等问题。

历经风霜,我们不能保证多年后,Java 仍是主流,但在当下,Java 仍是编程之王,Java,25 岁,生日快乐!

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lyb9292

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值