首页 > 编程语言 >Java语言概述

Java语言概述

时间:2023-03-07 22:11:41浏览次数:38  
标签:Java 语言 SUN fromIndex 概述 版本 Sun Oracle

吾心安处即吾乡。吾乡何处不可眠

1. Java概述

  • SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。

  • 是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet),内嵌在HTML代码中。

  • 伴随着互联网的迅猛发展,以及Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。

2. Java语言简史

起步阶段:

1991年,Sun公司的工程师小组想要设计一种语言,应用在电视机电话闹钟烤面包机等家用电器的控制和通信。由于这些设备的处理能力内存都很有限,并且不同的厂商会选择不同的中央处理器(CPU),因此这种语言的关键是代码短小紧凑与平台无关(即不能与任何特定的体系结构捆绑在一起)。

Gosling团队率先创造了这个语言,并命名为“Oak"(起名的原因是因为他非常喜欢自己办公室外的橡树)。后因智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。

随着20世纪90年代互联网的发展,Sun公司发现该语言在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。(Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。)

img

发展阶段:

发行版本 发行时间 备注
Java 1.0 1996.01.23 Sun公司发布了Java的第一个开发工具包
Java 1.1 1997.02.19 JavaOne会议召开,创当时全球同类会议规模之最。
Java 1.2 1998.12.08 Java拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
Java 1.3 2000.05.08
Java1.4 2004.02.06
Java 5.0 2004.09.30 ①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME
Java 6.0 2006.12.11 2009.04.20 Oracle宣布收购SUN公司
2009.04.20 Oracle公司收购SUN,交易价格74亿美元。
Java 7.0 2011.07.02
Java 8.0 2014.03.18 此版本是继Java 5.0以来变化最大的版本。是长期支持版本(LTS)
Java 9.0 2017.09.22 ①此版本开始,每半年更新一次;②Java 9.0开始不再支持windows 32位系统
Java 10.0 2018.03.21
Java 11.0 2018.09.25 JDK安装包取消独立JRE安装包,是长期支持版本(LTS)
Java 12.0 2019.03.19
... ...
Java17.0 2021.09 发布Java 17.0,版本号也称为21.9,是长期支持版本。
... ...
Java19.0 2022.09 发布Java19.0,版本号也称为22.9。

3. Java之父

img

  • 詹姆斯·高斯林(James Gosling)先生以“Java 技术之父”而闻名于世。他是Java 技术的创始人,他亲手设计了Java语言,并开发了Java编译器和Java虚拟机,使Java成为了世界上最流行的开发语言。
  • James Gosling于1984 年加入Sun公司,并一直服务于Sun公司,直至2010年前后,Sun被Oracle并购而加入Oracle,担任客户端软件集团的首席技术官; 2010年4月从Oracle离职。

4. 公司八卦

  • SUN 与 Oracle

SUN是一家极具创新能力的公司,2001年 “9.11”以前,SUN公司市值超过1000亿美元。 但是没能利用Java构建一个强有力、可变现的生态系统,没打好Java这张牌。此后,互联网泡沫破裂,硬件需求大幅减少,它的市值在一个月之内跌幅超过90%。SUN公司的成长用了20年,而衰落只用了1年!

img

  • Oracle 与 Google

Google和Oracle的侵权事件:

2010 年 8 月,Oracle 起诉 Google 的 Android 系统侵权,要求赔偿 26 亿美元。

  • Oracle认为Google的代码中使用了Java的37个API,并且认为Google是故意为之,因为这样做的好处是可以让更多的Java程序员更容易接受Android的代码。
  • Oracle认为Android 中有9行代码直接抄袭了Java的实现。这9行牛气哄哄的代码都出自一人之手,他就是Java 大牛------Joshua Bloch

2018 年 3 月,美国联邦巡回上诉法院裁决,谷歌侵犯了甲骨文的版权,支付高达88亿美元的赔偿金。

2021 年 4 月,美国最高法院给出了最终裁决:谷歌胜诉,其代码属于“合理使用”的范畴。为期十多年的软件行业“第一版权案”落幕。

//Code In OpenJDK / Android :
1. private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
2.    if (fromIndex > toIndex)
3.        throw new IllegalArgumentException("fromIndex(" + fromIndex +
4.                   ") > toIndex(" + toIndex+")");
5.    if (fromIndex < 0)
6.        throw new ArrayIndexOutOfBoundsException(fromIndex);
7.    if (toIndex > arrayLen)
8.        throw new ArrayIndexOutOfBoundsException(toIndex);
9. }

img

5. Java技术体系平台

  • Java SE(Java Standard Edition)标准版
    • 支持面向桌面级应用(如Windows下的应用程序)的Java平台,即定位个人计算机的应用开发。
    • 包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。
    • 此版本以前称为J2SE
  • Java EE(Java Enterprise Edition)企业版
    • 为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的Web应用开发
    • JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。如:Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术。
    • 版本以前称为J2EE
  • Java ME(Java Micro Edition)小型版
    • 支持Java程序运行在移动终端(手机、机顶盒)上的平台,即定位在消费性电子产品的应用开发
    • JavaME是JavaSE的内伸,精简了JavaSE 的核心类库,同时也提供自己的扩展类。增加了适合微小装置的类库:javax.microedition.io.*等。
    • 此版本以前称为J2ME

img

注意:

Android开发不等同于Java ME的开发

标签:Java,语言,SUN,fromIndex,概述,版本,Sun,Oracle
From: https://www.cnblogs.com/NorthPoet/p/17189911.html

相关文章

  • 商品清单----Java
    packageshangchengkucunqingdananli;/**商城库存清单案例*变量的形式对商品的数据保存*品牌,尺寸大小,价格,配置,库存数量*三个商品苹果,thinkpad,华硕**......
  • 初识C语言3/7
    分支/选择语句:if语句:#include<stdio.h>intmain(){intage=10;if(age>10)printf("hello,world\n");elseif(age>=10&&age<30)//10<=age<30是错......
  • java的流程控制-顺序结构
    顺序结构java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行顺序结构是最简单的算法结构语句与语句之间,框与框之间是按从上到下的顺序进行的,它是......
  • Java 赋值预算和比较运算
    赋值运算基本语法符号:=      当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。      支持连续赋值。扩展赋......
  • JAVA项目中的常用的异常处理情况总结
    一,JDK中与异常相关的类分析:Java中的异常分类:Throwable类有两个直接子类:Exception:出现的问题是可以被捕获的;Error:系统错误,通常由JVM处理。可捕获的异常又可以分为两......
  • java自动计算(王建民必考)
    //importjava.util.random.*;importjava.util.Random;importjava.util.Scanner;publicclassmain{ ScannerS=newScanner(System.in); staticRandomrandom=ne......
  • Java中的单元测试
    1、概念介绍单元测试(unittesting),是指对软件中的最小可测试单元进行检查和验证。单元是人为规定的最小的被测功能模块。本文主要讲Java中的单元测试中的代码编写,一般最小......
  • Java基础
    Java基础注释平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会被执行,是给我们写代码的人......
  • 实验1 C语言开发环境使用和编程初体验
    一.实践任务1//打印一个字符小人#include<stdio.h>intmain(){printf("o\n");printf("<H>\n");printf("II\n");return0;}  //打......
  • Java官方笔记1编写运行Java程序
    你可能已经迫不及待想安装Java,写个Java程序跑起来了。但是在这之前,有些概念需要提前了解,因为Java跟C、C++和Python都有点不一样。编译和执行我们在文本文件中编写英文代......