💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
本文由[Java帝国的诞生](https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513103&idx=1&sn=56d832072a92e3f41f5e6796676993e0&scene=21#wechat_redirect)改编 ## C语言 C语言诞生于1972年,伴随着Unix的问世,迅速席卷全世界。 C语言的好处是贴近硬件,运行极快,效率高。 但是C语言最大的问题是:**指针与内存管理** * 指针:可以直接操作内存,但是没有做越界检查,导致很多新手程序员轻易犯错 * 内存管理:自己分配空间,自己回收。而且的在编译期间发现不了,必须在运行的时候才会暴露。 所以大量的时间都浪费在指针与内存分配上了。 而且C语言的可移植性并不好,必须尽量用标准的C函数酷,而且遇到了些针对特定平台的调用,就需要对每个平台在写一份。 1982年,C++诞生,增加了面向对象的功能的,兼容C,有静态类型检查,性能也很好。但是太复杂了 ## Java 所以人们建立了一个新的语言 他需要具有: - 语法有点像 C , 这样大家容易接受 - 没有 C 语言那样的指针 - 再也不要考虑内存管理了, 实在受不了了 - 真正的可移植性, 编写一次, 到处运行 - 面向对象 - 类型安全 - 要提供一套高质量的类库, 随语言发行。 ### 用在哪里 那么Java可以用在那里呢? 1995年网页简单而粗糙,缺乏互动性,于是人们在浏览器上弄了个小插件,把Java环境放上去,然后开发了一个图形界面的程序(Applet) 通过 Applet , 无数的程序员看到了 Java 这门语言,了解了这门语言特性以后, 很多无法忍受 C 帝国暴政的程序员, 很快加入了我们 ### 还能干什么 后来大家发现Java 除了Applet,似乎什么都干不了。 开发桌面应用的程序员不接受Java,因为界面非常难看,而且还需要安装一个虚拟机 但是大家发现Java 简直是为了写服务器端的程序发明的,因为他**强大, 健壮, 安全, 简单, 跨平台 !** 在 J2EE 规范的指导下, 特别适合团队开发复杂的大型项目。 我们授权 BEA 公司第一个使用 J2EE 许可证, 推出了 Weblogic, 凭借其集群功能, 第一次展示了复杂应用的可扩展性和高可用性。 这个后来被称为中间件的东西把程序员从**事务管理,安全管理,权限管理**等方面解放出来, 让他们专注于业务开发。 于是其他商业巨头也纷纷入场,IBM开发了自己的应用服务器Websphere,还推出了Eclipse这个开源开发平台。 IBM 利用 java 获得了非常可观的效益, 软件 + 硬件 + 服务 三驾马车滚滚向前, 把 IBM 推向了一个新的高峰。 ### Java帝国 程序员们基于 Java 开发了巨多的平台,系统,工具,例如: * 构建工具: Ant,Maven, Jekins * 应用服务器: Tomcat,Jetty, Jboss, Websphere, weblogic * Web 开发: Struts,Spring,Hibernate, myBatis * 开发工具: Eclipse, Netbean,intellij idea, Jbuilder ### 微软 微软当然不会善罢甘休,他们推出了.NET来对抗,但是因为系统是封闭的,所有软件都是自家的: 开发工具是 Visual Studio, 应用服务器是 IIS, 数据库是 SQL Server,只要你用. NET,基本上就会绑定微软 而且系统只能运行在Windows上, 这个服务器在高端市场的占有率实在是太低了。 ### 后来者 2005年, Ruby on Rails, 它结合了 PHP 体系的优点(快速开发)和 Java 体系的优点(程序规整), 特别适合快速的开发简单的 Web 网站。 虽然发展很快, 但没有对 Java 王国产生实质性的威胁, 除了 Ruby on Rails ,还有 PHP, Python , 都适合快速开发不太复杂的 Web 系统。 但是关键的,复杂的商业系统开发还是 Java 王国的统治之下。 # 后来的发展 2006 年, 一只叫 Hadoop 的军队让 Java 王国入侵了大数据领域, 由于使用 Java 语言, 绝大多数程序员在理解了 Map/Reduce , 分布式文件系统在 Hadoop 中的实现以后, 很快就能编写处理处理海量数据的程序, Java 王国的领地得到了极大的扩展。 2008 年, 一个名叫 Android 的系统横空出世, 并且随着移动互联网的爆发迅速普及, 运行在 Android 之上的正是 Java ! 到今年为止, 全世界估计有 1000 万程序员加入了 Java 王国,它领土之广泛, 实力之强大, 是其他语言无法比拟的。 Java 占据了大部分的服务器端开发,尤其是关键的复杂的系统, 绝大多数的手机端, 以及大部分的大数据领域