时间:2022-10-09 15:36:10 | 浏览:314
Java的发展历史要追溯到20世纪90年代(1990年)出现了一种新型的技术-单片机系统,被许多商业公司发现是一个商机,将单片机系统植入到家电设备(电视机、电冰箱、微波炉、烤箱等等)中可以提高家电设备的智能化水平(类似于现在的智能家电),Sun公司为了抢占智能家电的市场,开启了Green计划,这个计划是Java之父詹姆斯·高斯林 (James Gosling)领导的项目小组。
詹姆斯·高斯林 (James Gosling)
项目小组首先考虑使用C++ 语言实现(C++ 语言于1983年诞生),但是C++ 过于复杂和庞大(消费电子产品所采用的嵌入式处理器芯片的种类繁杂),更不能支持跨平台,由于不同的家电设备的硬件不同,程序代码就需要不停的改。最后项目小组决定对C++ 进行修改和扩展,最终在1992年,他们开发了一种名为“Oak”(橡树)的面向对象语言。但是在注册商标的时候发现已经被使用了,所以后来正式更名为为Java(印度尼西亚爪哇岛)
Java
在2009年的时候Oracle公司以74亿美金收购了Sun公司,这就意味着Java、MySQL、Solaris都是属于 Oracle公司。
在20世纪90年代中后期,Java赶上了互联网的潮流,而互联网的特点和家电设备的特点有点类似:不同的设备硬件不同。
当时业界为了使得死板、单调的静态网页能够“灵活”起来,急需要一种技术开发一种动态的网页,这种程序是可以通过互联网访问,而且能够跨平台。
得益于Java的跨平台的特性,而且可以制作支持Java的Web浏览器内运行的Java程序(Applet)而逐渐流行起来。
由于Java语言的开源,也得到了很多大公司(Oracle、Amazon、Google、Apple、Alibaba、Tencent、华为等等)的支持,逐渐发展成了具有开源、跨平台、高性能、支持多线程、分布式、安全可靠等等诸多特性的开发平台和运行平台。
而且自从JDK1.4以后涌现出来了很多为了简化分布式系统开发的开源框架、中间件,例如MyBatis,Spring Framework,Spring Boot,Spring Cloud ,Spring Cloud Tencent,Netty,Dubbo,RocketMQ等等都是使用Java开发的。开发者可以通过阅读Java语言和框架、中间件的源码可以提高自己的技术水平。现如今Java人不仅仅是一门计算机语言,更是最流行的开发平台和运行平台。
经过20多年的发展,1995年Sun公司正式对外发布了Java,逐步建立起了自己强大的生态体系,在大型分布式系统(淘宝、天猫、菜鸟物流、顺丰等等)、移动端的Android应用和大数据应用开发占据了广阔的市场。
Java程序是运行在JVM(Java Virtual Machine)之上的,这就是Java能够跨平台的原因,而且由于Java是开放的,有越来越多的计算机语言编写的程序也是可以运行在JVM之上。例如大数据开发Scala,Android应用的Kotlin,脚本语言Grovvy等等。
Java语言的语法与C语言和C++ 语言很接近,也可以说Java语言就是在此基础上演变而来的,Java舍弃了C语言很容易引起错误的指针,并且引入了垃圾回收机制,使得程序员在大部分应用场景下不需要手动的释放内存。与C语言和C++ 语言相比较而言,Java入门更加简单,容易学习,开发的效率非常的高,但是它的运行效率就会比较低。
Java是纯粹的面向对象的编程语言,面向对象技术使得应用程序的开发变得简单易用,节省代码。
Java语言是具有跨平台性的。这是因为Java是基于JVM(Java Virtual Machine)得以实现一次编译,到处运行(跨平台)。跨平台性指的是软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。也就是说在Windows上开发的Java程序不需要进行修改就可以在其他的安装了JDK的操作系统(macOS、Linux(CentOS、Ubuntu Server))正常的运行。这是软件发展的趋势和编程人员追求的目标,因为写一次程序就可以通过JDK适配多个操作系统,节省了大量的人力成本。可移植性就是来源于跨平台。
Java语言同时支持大型分布式系统开发的高并发、高可用、高性能的应用场景。
Java语言是体系结构中立的,其一就是JVM的实现只需要遵守Oracle官方提供的JVM规范即可,但是大部分Java应用都是使用Oracle官方提供的HotSpot虚拟机,除此以外还有一些互联网大厂会根据自己的需求来定制JVM,比如说阿里巴巴、腾讯、华为等等。其二,JVM除了可以识别Java编译器编译生成的字节码文件(.class结尾的文件)意外,还可以识别 Scala,Kotlin,Grovvy编程语言编译生成的字节码文件。
JavaSE是Java平台的基础,此版本以前称为J2SE。 JavaEE和 JavaME都是从 JavaSE的基础上发展而来的,JavaSE平台中包括了运行Java程序所需要的环境以及核心类库,如集合、IO、数据库连接以及网络编程等。是为开发普通桌面和商务应用程序提供的解决方案。不过目前大多数的桌面应用都是使用C/C++ /C#,很少人会使用Java开发桌面应用(例如IntelliJ IDEA)。
JavaEE是为开发企业级应用程序提供的解决方案,版本以前称为J2EE。所谓的企业应用就是那些商业组织、大型企业创建的系统、应用。例如阿里巴巴的淘宝、天猫、菜鸟物流等等就是基于JavaEE实现的。
JavaME是为开发电子消费产品在(有线电视机顶盒,移动电话等等)和嵌入式设备提供的解决方案,此版本以前称为J2ME。但是随着3G移动智能平台的时代到来,特别是以Java为核心编程语言的Android平台的快速普及,JavaME已经被淘汰了。
Java主要擅长的是大型分布式系统开发,大数据开发,Android应用开发三个开发方向。无论选择哪个开发方向首先必须要学习Java语言(JavaSE),所以说Java语言是这三个开发方向的基石语言,最后根据自己的兴趣和市场的需要来选择对应的开发方向。
根据现在的市场就业形势,大多数人会选择大型分布式系统开发,接着积累经验(2-3年),然后转向大数据的开发方向。
基本学习路线:JavaSE->JavaEE->大数据
(1)什么是平台
平台就是操作系统(OS),目前PC端主流的操作系统是Windows,macOS,服务端主流的操作系统是Linux(Ubuntu Server,CentOS)
在我们今后的工作中开发Java项目,通常都是在开发环境开发Java项目,项目开发完成以后部署到测试环境进行测试,测试通过以后会部署到生产环境对外提供服务。
不同的环境使用的操作系统也是不同的:
开发环境使用的是Windows或者是macOS系统开发Java项目
测试环境和是生产环境都是使用Linux(Ubuntu Server,CentOS)来测试或者是部署Java项目
(2)Java跨平台的好处
Java语言的跨平台指的就是在Windows或者是macOS系统上开发的Java项目,不需要任何的修改就可以直接部署到任何安装了JRE(Java Runtime Environment)的Linux系统上,可以节省人力资源成本。
(3)Java跨平台原理
Java跨平台的原理是Java程序不是直接运行在操作系统上的。而是运行在JRE(Java Runtime Environment)之上的,JRE屏蔽了底层操作系统的差异性,从而实现了Java程序的跨平台。但是JRE本身不是跨平台的。
在Windows和macOS上搭建了Java的开发环境(Java8、Java17),但是在下载JDK的时候需要下载和自己电脑的系统版本对应的JDK。
不同版本的JDK
不同版本的JDK
JDK包含了Java开发工具和JRE
Java11以后不再提供公共的JRE
Java跨平台的原理图
Java跨平台的原理图
很多同学纠结自己应该学C语言还是学Java,本篇文章带你细致了解C语言与Java的各方面的不同之处,让你能够更全面的把握编程语言!1.Java与C语言各自的优势C语言是面向过程的语言,执行效率高;Java是面向对象的语言,执行效率比C语言低
这个问题在入门阶段一直是争议十分大的问题,反正学长每次去网上找新手应该学什么编程语言的时候,就会出现五花八门的推荐,n多语言,n多推荐,搞的新手一会听说这种语言适合新手,于是学习这种语言。一会又有人说xx语言是垃圾、弱爆了,学了也没用,之类
最新的 TIOBE 5 月编程语言榜单出炉,不妨一起来看一下又有哪些新的趋势。C# 的使用量增幅最高,C++ 或将冲击 Top 3和 4 月 相比,本月编程语言 Top 10 并没有明显的位置变化,Top 5 依然是 Python、C、Ja
出品|开源中国TIOBE 公布了 2022 年 6 月的编程语言排行榜。上月榜单内容曾指出,C# 和 C++ 将有望取代 C 进入 Top 3;时至本月,榜单头条信息则是 C++ 即将超越 Java,进入榜单前三。TIOBE CEO Pau
首先,任何编程语言都有其特定的应用场景,当这门编程语言的应用场景已经发生根本变化时,编程语言往往也就会结束自己的生命周期,所以未来C++语言、Java语言,包括Python语言,终会有被淘汰的那一天。编程语言说到底仅仅是一种工具,而工具必然
译者 | 刘畅出品 | AI科技大本营(ID:rgznai100)将早期的编程语言(例如COBOL)的代码库迁移到现在的编程语言(例如Java或C++)是一项艰巨的任务,它需要源语言和目标语言方面的专业知识。COBOL如今仍在全球大型的系统
还记得美国前一阵要招聘60岁的老程序员吗?都怪编程语言发展太快!因为新冠疫情的缘故,美国一些地区的失业救济系统不堪重负,而这些系统都是上古语言COBOL写的。然而,现在早已经是C/C++、Java、Python的天下了,把COBOL程序换成
来源:AI科技大本营本文约1600字,建议阅读8分钟。“Java对于大型编程项目来说实在是复杂且冗长了,急需这样一款工具。”近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序
前言什么是 V8?JavaScript运行的背后发生了什么?如果你是一个 JS 开发者或者是正在学习这门语言的学生,很大概率上你会遇到双字母词”V8”。在这篇文章中,我将会为你简述不同的 JS 引擎并深入探究 V8 引擎的工作机制。文章的第
自从我们在《2020 年 Java 将何去何从》(Where"s Java Going In 2020)中深度探讨 Java 生态系统以来,已经有一段时间了。JRebel 最新发布的《2022 年 Java 发展趋势和分析》报告(Java