Java 历史

这里不详细记录java的历史,只是标记出时间点和事件。

时间点 事件
1991 Sun公司成立Green项目。Oak(橡树)语言诞生。
1992 1992年9月,Oak语言连同Green OS和一些应用程序一起发布在称做Start 7的小设备上。Sun开了一家名为FirstPerson的公司,Green团队被转移到这家公司里研发机顶盒
1993 First Person公司重定位Oak。转向到网络应用领域(背景:WWW开始席卷全球)
1994 Oak技术包括源代码全部免费公开。Oak开发出网络浏览器Webrunner,后更名为Hotjava。Oak编写的Applet让网页由静态转成动态
1995 Oak注册登记时,发现该名已被占用,遂更名为Java。First Person公司解散。
1995-3-23 Java里程碑,Java当年被评为十大优秀科技产品之一。JDK1.0a2版本正式对外发布
1996 Sun成立Javasoft分公司来发展Java。Netscape支持Java。IBM、Symantec、Inprise、Microsoft IE支持Java。
1997-2-19 JDK 1.1(Java Development Kit) 发布
1998-12-4 JDK 1.2发布,JDK更名为J2SDK(Java 2 Software Development Kit)。J2SDK 1.2又名Java 2,并将Java的应用细分(J2ME、J2SE、J2EE)
2000-5-8 J2SDK 1.3发布
2002-2-13 J2SDK 1.4发布
2004-9-30 JDK 1.5发布
2006-11-13 Sun在javaOne大会上宣布要开原java,并在随后的一年多内,陆续将JDK的各个部分在GPL v2协议下公开了源码,并建立了OpenJDK组织对源码进行独立管理。
2006-12-11 JDK 1.6发布
2009-4-20 Oracle以74亿美元收购了Sun
2011-7-28 JDK 1.7发布
2014-3-18 JDK 1.8发布

Java 平台

平台 说明
Java Card 支持一些小程序(Applets)运行在小内存设备(如智能卡)上的平台。
Java ME(Micro Edition) 支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加入了针对第东终端的支持,这个版本以前称为J2ME.
Java SE(Standard Edition) 支持面向桌面应用的Java平台,提供了完整的java核心API,这个版本之前称为J2SE.
Java EE(Enterprise Edition) 支持使用多层架构的企业应用(如ERP、CRM应用)的java平台,除了提供Java SE API外,还对其做了大量的扩充(一般以javax.*作为包名)并提供了相关的部署支持,这个版本之前称为J2EE.

Java开发环境

  • Java术语
术语名 缩写 解释
Java Development Kit JDK Java开发工具包。1.2~1.4版本被称为Java SDK,简写J2SDK.
Java Runtime Environment JRE Java运行时环境
Java 2 J2 一个过时的术语,用于描述1998-2006年之间的Java版本
Software Development kit SDK 一个过时的术语,用于描述1998-2006之间的JDK
Update u Oracle的术语,用于发布修改的bug
NetBeans —— Oracle的集成开发环境
  • java技术体系内容

JDK应该包含Java语言、JRE、Java 开发工具。
JRE应该包含Java SE API和java虚拟机。

  • 搭建Java开发环境

1.下载安装JDK
2.配置环境变量

windows 7/8/8.1/10

JAVA_HOME=”JDK安装路径”
PATH中添加%JAVA_HOME%/bin
CLASSPATH中添加%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar

linux

修改~/.bash_peofile(用户)或者/etc/profile(系统),添加
export JAVA_HOME=/usr/java/jdk1.8.0_101
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.JDK目录

目录 描述
bin 编译器和工具
demo 演示
docs HTML格式的类库文档(解压j2sdkversion-doc.zip)之后
include 用于编译本地方法的文件
jre Java运行环境文件
lib 类库文件
src 类库源文件(解压src.zip)之后

Java 运行原理[简]

指令 说明
javac hello.java java编译器将hello.java文件编译成.class字节码文件
java hello 调用JVM,不同平台的JVM根据平台指令解释字节码文件

参考资料:

[1].java的历史
[2].周志明.深入理解Java虚拟机[M].第2版.北京:机械工业出版社,2013.6.
[3].Cay S.Horstmann Gary Cornell.Java核心技术 卷I—基础知识[M].第9版.美,2013.10

1-初识java的更多相关文章

  1. 初识Java

    Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以极强的安全性.平台无关性.硬件结构无关性.语言简洁.面向对象的特点,在网络编程语言中占据了无可比拟的优势 ...

  2. SSH 框架学习之初识Java中的Action、Dao、Service、Model-收藏

    SSH 框架学习之初识Java中的Action.Dao.Service.Model-----------------------------学到就要查,自己动手动脑!!!   基础知识目前不够,有感性 ...

  3. Java 面向对象编程——第一章 初识Java

      第一章    初识Java 1.  什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...

  4. Personal Learning Path of Java——初识Java

    初识Java 在我个人看来,Java是一门高大上的面向编程语言,这也是Java吸引我的地方.在自学Java之前,我在学校大概学过了一些C语言的知识,在学校学的那点C语言纯属是拿来打基础用的,大概了解了 ...

  5. 初识Java作业

    初识Java作业 一.    填空题 Java技术按照用途不同分为三大版本,分别是JavaSE.     javaEE       和JavaMe Java虚拟机就是一个虚拟的用于执行  .class ...

  6. Java学习笔记心得——初识Java

    初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...

  7. 初识Java程序,编写简单代码?

    Dear All: 初识Java程序,编写简单代码? 首先小编在这里说下我们今天编写Java程序使用的是 eclipse 开发工具! 1.下载eclipse 官网地址:http://www.eclip ...

  8. 初识JAVA语言

    推荐阅读:  我的CSDN  我的博客园  QQ群:704621321 前言        很多游戏开发者可能会有疑问,你会C#,JS,TS,为什么还要初识JAVA呢?有人可能会说,多学点对自己有好处 ...

  9. day01-day02 初识java、注释、变量、变量命名、基本数据类型

    1. 初识java 1) 什么是java java是一门高级的计算机编程语言 2) JDK的安装 2.1) 下载2.2) 安装2.3) 验证 3) 环境变量的配置 3.1) 打开环境变量3.2) 配置 ...

  10. Java入门——初识Java

    Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...

随机推荐

  1. css伪元素:before和:after用法详解

    css的伪元素,之所以被称为伪元素,是因为他们不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似是页面 ...

  2. AJPFX平台讲述买卖、点差、单位,外汇的交易时间以及外汇交易者的参与者

    AJPFX平台讲解:买(多).卖(空).点差.单位 外汇保交易也就是通过外汇的升值和贬值来赚取利润.以EURUSD(欧元/美元)为例.假设目前价格为1.3820左右,即1欧元兑换1.3820美元.这个 ...

  3. activemq在一台服务器上启动多个Broker

    步骤如下: 1.把整个conf文件夹复制一份,比如叫conf2 2.修改里面的activemq.xml文件 ①brokerName不能和原来的重复 ②数据存放的文件名称不能重复,比如<kahaD ...

  4. 链表(上):如何实现LRU缓存淘汰算法?

    一.什么是链表 和数组一样,链表也是一种线性表. 从内存结构来看,链表的内存结构是不连续的内存空间,是将一组零散的内存块串联起来,从而进行数据存储的数据结构. 链表中的每一个内存块被称为节点Node. ...

  5. js变量提升

    JavaScript的函数定义有个特点,它会先扫描整个函数体的语句,把所有申明的变量“提升”到函数顶部: 'use strict'; function foo() { var x = 'Hello, ...

  6. gradle构建工具

    在使用android studio开发android程序时,as就是基于gradle进行构建的,我们只需要通过run就可以编译.打包.安装,非常方便,但是究竟gradle是什么呢?  一.java构建 ...

  7. @JSONField注解的使用

    FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个: 修改和json字符串的字段映射[name] 格式化数据[format] 过滤掉不需要序列化的 ...

  8. mybatis 关联映射

    一对一 创建数据表 CREATE TABLE `tb_card` ( `id` int NOT NULL AUTO_INCREMENT , `code` varchar() NULL , PRIMAR ...

  9. 记一次cocos项目的加载速度优化

    半个月前,我们用cosos creator做了一个简单的小游戏,也许算不上小游戏吧..一边学cocos,一边做,几经波折后终于上线了.然鹅,功能是实现了,但是加载速度十分感人(毕竟没经验嘛,无辜脸). ...

  10. 高可用Hadoop平台-集成Hive HAProxy

    1.概述 这篇博客是接着<高可用Hadoop平台>系列讲,本篇博客是为后面用 Hive 来做数据统计做准备的,介绍如何在 Hadoop HA 平台下集成高可用的 Hive 工具,下面我打算 ...