java概述,发展历程

2023-11-09

 1. java概述

        首先对于刚刚接触java的小白来说,可能连java是什么,为什么叫这么名字都不知道。其实,Java语言是有个曾用名的~叫Oak,而且起这个名字的时候也是很随心的,只是因为看到了窗口外的一颗橡树(歌词:只是因为面向窗外多看了你一眼~),所以就叫为Oak,但Oak这个名字已经被注册。最后他们以Java这个名字命名了这个语言,据说是Sun公司的程序猿们都很喜欢喝咖啡,而且对爪哇岛的一种咖啡印象很深,所以就有了Java这个经典的名字和咖啡的图标。

         那java是什么,有什么用呢?首先,Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等等,比如学校的选课系统,学校的网站等等都可以用java来编写。

        这个时候你要问了,这些东西java能做那其他东西不能做?为啥我要学这个?为啥,你专业有这个课你不学这个你学啥,当然,要是没有这个课,那你看看下面这个图:

2021编程语言市场份额:

 看到没,知道该学啥了吧。而且不止是2021年,在过去5年java在市场份额占比上都是前三,这足以证明java的发展前景是十分广阔的。

        这个时候你肯定会想,java有啥厉害的,能有那么大的市场份额?这就是你不懂了。java的特点可是多的我都列举不完:

(1)Java 语言是简单的:

         简单都不用说,不简单能有这么多人用吗?学过C++的都知道,里面有很多很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换,而且还有让很多程序员头疼的指针。java把这些繁琐又少用的功能都舍弃了,也不使用指针,而是使用一种跟指针有同样功能但是简担单易用的引用,甚至java里面增加了自动分配和回收内存空间的功能,使得程序员不必为内存管理而忧。至于其他的语法,则和C++很类似,所以从C++转java的同学学起来会轻松得多。

(2)Java 语言是面向对象的:

        小白可能不懂什么是面向对象,但只要知道java语言是一个纯的面向对象的语言。Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。

(3)Java 语言是健壮的:

        Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。

(4)Java 语言是解释型的:

        Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。

(5)Java 语言是可移植的:

        java程序编译后不是可执行代码,需要经过java的环境再次编译成机器可执行的代码,这样就可以在不同的平台搭建适合各自平台的java环境,于是你编译好的java程序就可以移植到任何有java环境的平台上去了。

        除了上述五个主要特点之外,java语言还有很多其他的特性,比如java是分布式的,java是安全的,结构中立的,高性能的,多线程的等等。当然,这些没有必要记,留个印象即可。

        见识到了java的强大,你会不会想,这么牛的东西,那发明它的人都是神仙吧?

        Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。然后经过一系列的更新迭代就成了现在最新版的java12版本了。

2. java的发展历程

  • 1995 年 5 月 23 日,Java 语言诞生
  • 1996 年 1 月,第一个 JDK-JDK1.0 诞生
  • 1997 年 2 月 18 日,JDK1.1 发布
  • 1998 年 12 月 8 日,JAVA2 企业平台 J2EE 发布
  • 1999 年 6月,SUN 公司发布 Java 的三个版本:标准版(JavaSE, 以前是 J2SE)、企业版(JavaEE 以前是 J2EE)和微型版(JavaME,以前是 J2ME)
  • 2000 年 5 月 8 日,JDK1.3 发布
  • 2000 年 5 月 29 日,JDK1.4 发布
  • 2001 年 9 月 24 日,J2EE1.3 发布
  • 2002 年 2 月 26 日,J2SE1.4 发布,自此 Java 的计算能力有了大幅提升
  • 2004 年 9 月 30 日 J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5 更名为 Java SE 5.0
  • 2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 "2":J2EE 更名为 Java EE,J2SE 更名为 Java SE,J2ME 更名为 Java ME
  • 2006 年 12 月,SUN 公司发布 JRE6.0
  • 2009 年 04 月 20 日,Oracle公司收购 Sun公司,取得 Java 的版权。
  • 2011 年 7 月 28 日,Oracle公司发布 Java7.0 的正式版。
  • 2014 年 3 月 18 日,Oracle 公司发表 Java SE 8。
  • 2017 年 9 月 21 日,Oracle 公司发表 Java SE 9
  • 2018 年 3 月 21 日,Oracle 公司发表 Java SE 10
  • 2018 年 9 月 25 日,Java SE 11 发布
  • 2019 年 3 月 20 日,Java SE 12 发布

       其实,虽然有最新版的java12已经发布,但是目前企业中应用最多的还是java8。所以这里推荐使用java8的版本。

java的3大版本

经过长时间的发展,java形成了三大版本:Java SE,Java ME,Java EE(以前也分别叫做J2SE, J2ME, J2EE)

Java SE(Java Platform,  Standard Edition,   Java平台标准版)

是Java ME,Java EE的编程基础,里面学的都是一些Java的语言基础,语法结构,以及网络编程的一些基础知识,可以用来开发一些桌面应用,游戏

Java ME(Java Platform,  Micro Edition,   Java平台微型版)

主要应用在移动设备和嵌入式设备上(比如手机,PDA,电视机顶盒等)

以前智能手机上的一些应用,游戏就是基于Java ME开发的

Java ME(Java Platform,  Micro Edition,   Java平台微型版)

主要用于企业级应用,比如电子商务网站,后台管理系统等

Java的3大版本中,市场需求最大的是Java EE,很多人学习Java,最终从事的就是Java EE开发

这个属于后台开发的范畴,很多企业的高级技术岗位人员(比如技术总监,CTO等)都曾经历过后台开发的洗礼

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java概述,发展历程 的相关文章

随机推荐

  • 英国第七批36颗互联网卫星升空

    导读 英国卫星通信公司OneWeb 36颗卫星从俄东方航天发射场点火升空 累计在轨卫星218颗 据外媒 英国卫星通信公司OneWeb 36颗卫星从俄东方航天发射场点火升空 累计在轨卫星218颗 根据OneWeb的说法 只需要再发射一批36颗
  • 解决“unable to access ‘https://github.com...”

    前提 我在操作的时候做了https授权 但是密码输入错误了 再找想改也找不到了 搞半天都会报这个错 甚至我想用秘钥的方式都不行 万恶的git 解决方法 git config global http sslVerify false 然后正常操
  • STM32F103ZET6【HAL函开发】STM32CUBEMX------USART串口实验(DMA)

    printf重定义 需要将下面的代码插入到usart c里面 USER CODE BEGIN 1 if 1 include
  • hive集群安装,连接mysql

    1 linux安装mysql 并且生成hive用户 密码为Abc 123D 权限为所有权限 请看 这点很重要 http blog csdn net qq 21383435 article details 76573955 2 我的hadoo
  • JAVA中的目录指什么_默认情况下,Java listFiles()读取目录中的文件的顺序是什么? - java...

    我编写了以下程序 该程序读取目录中的所有文件 所有文件名均由数字组成 例如10023134 txt File dir new File directoryPath File files dir listFiles for File file
  • 内存管理实战案例分析3:为何分配不出一个页面?

    微信公众号 奔跑吧linux社区本文节选自 奔跑吧Linux内核 第二版卷1第6 3 3章 1 问题描述 下面是有问题的OOM Killer内核日志 其中空闲页面为86048KB 最低警戒水位为22528KB 低水位为28160KB 读者可
  • 如何使用iMazing监督、配置器功能

    监督功能是一种移动设备管理技术 使得Apple设备所有人具有最高管理权 设备受到监督之后 仅仅可以在监督人设定的模式下运行Apple设备 如单应用运行模式 权限限制模式 禁用配对模式等 最近很火的网剧 你安全了吗 就是宣传网络安全的 利用i
  • 【mySQL】MySQL JOIN原理

    MySQL JOIN原理 先看一下实验的两张表 表comments 总行数28856 表comments for 总行数57 comments id是有索引的 ID列为主键 以上两张表是我们测试的基础 然后看一下索引 comments fo
  • Nginx+Keepalived双机热备(主主模式)

    Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案 可以利用其来避免IP单点故障 类似的工具还有heartbeat corosync pacemaker 但是它一般不会单独出现 而是与其它负载均衡技术
  • Mybatis 返回对象中包含 List集合

    遇到这种情况的实体类 需要在mapper xml文件里使用 resultMap标签以及其他子标签 先贴代码 实体类 UserEntity类 private Long id 用户id private String username 用户名 p
  • http请求忽略证书、单向认证、双向认证、连接池范例(httpclient 4.3.x以上版本)

    目录 加载证书单向认证 忽略证书 双向认证 连接池 加载证书单向认证 import org apache http HttpEntity import org apache http client methods CloseableHttp
  • 数据库小白入门最简易版

    一 数据库是什么 数据库的基本概念 1 数据 data 定义 描述事物的符号记录称为数据 不严格的说就是我们平时接触到的一切可视化信息 数据的集合构成了表 表的集合构成了数据库 2 数据库 DB DataBase 定义 是存放数据的仓库 这
  • Linux蓝牙系统(3) Linux 命令

    Linux蓝牙系统 3 Linux 命令 2010 09 27 10 45 44 分类 LINUX Andrew Haung bluedrum 163 com 一 Linux对于蓝牙的支持 参见如下协议图 在HCI界面之上需要软件来实现 1
  • ctf.show web6 sql注入过滤了空格

    ctf show web6 sql注入过滤了空格 开始的页面 是一个登录的页面 随便输入用户名和密码 没有报错之类的 就把账户名和密码都清空了 那就来burpsuit抓包 先用个万能密码 or 1 1
  • 加密 scrapy

    js常见的加密方式 加密在前端开发和爬虫中是经常遇见的 掌握了加密算法且可以将加密的密文进行解密破解的 也是你从一个编程小白到大神级别质的一个飞跃 且加密算法的熟练和剖析也是很有助于帮助我们实现高效的js逆向 下述只把我们常用的加密方法进行
  • Windows服务器怎么才能长时间保持远程桌面不自动断开

    服务器在通过mstsc远程连接后 如果长时间不操作 会自动断开 这种是Windows系统的远程保护机制 但是对于操作服务器来说 这种断开可能会影响到工作效率 那么如何设置才能一直保持连接状态呢 用过Windows自带的远程桌面连接服务可能都
  • Please make sure you have the correct access rights

    使用git克隆 拉取 提交的时候 发现不能操作 提示如下 Please make sure you have the correct access rights fatal Could not read from remote reposi
  • QTP工具简单操作使用说明

    简介 QTP是QuickTest Professional 的简称 是一种自动化测试工具 使用QTP的目的是用它来执行重复的手动测试 主要用于回归测试和测试同一软件的新版本 版本迭代 启动QuickTest 第一次启动QuickTest时
  • go的channel实现归并排序

    func main ch1 create int 1 3 6 待排序的管道1 ch2 create int 2 5 9 待排序的管道2 ch merge ch1 ch2 for c range ch fmt Println c for ru
  • java概述,发展历程

    1 java概述 首先对于刚刚接触java的小白来说 可能连java是什么 为什么叫这么名字都不知道 其实 Java语言是有个曾用名的 叫Oak 而且起这个名字的时候也是很随心的 只是因为看到了窗口外的一颗橡树 歌词 只是因为面向窗外多看了