Java体系基本概念
JVM:Java虚拟机
JRE:(Java Runtime Environment)Java程序允许,测试,传输应用程序的环境和平台
包括 jvm ,java 核心类库和支持的文件,但不包含开发工具JDK:编译器,调试器
和一些相关的工具,仅仅只是一个环境。
JDK:(Java Development Kit)Java语言开发工具包,包含JRE,JDK包含的基本组件有
javac 编译器 将源代码编译成可执行程序
jar 打包器 将相关的类文件打包成一个文件
javadoc 文档生成器 从源码注释中提取成文档
jdb 调试器 调试应用程序和逻辑排查
appletviewer 小程序浏览器 一种执行html文件上的java小程序的java浏览器
javah 调用器 产生可以调用java过程的C过程,创建能被Java调用的C头文件
javap 反汇编器 显示编译类文件中的可访问功能和数据,同时显示代码含义
jconsole 监控器 java进行系统调试和监控的工具
SDK:(software Development Kit)软件开发工具包,一般都是一些软件工程师为特定的软件包、
软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合,JDK只是SDK的一个
子集,比如你下载了软件开发平台 eclipse-SDK-3.2.2-win32.zip(JDK),它本身里面是没有jdk的
但是只要开发java程序就必须使用jdk(javaee和javase)因此仅说SDK,那么它的含义太广,无法
指明是具体哪个开发工具,若加上代名词,如andorid SDK则表示Andorid开发工具包,如java SDK
则表示开发java应用程序的工具包,也就是 JDK ,JDK已经成为使用最广泛的Java SDK(Software development kit)
总结:
如果只想允许java程序,JRE就够了
如果想开发java程序,则需要JDK
如图:SDK 包含 JDK 包含 JRE 包含 JVM


|
版本
|
名称
|
发行日期
|
|
JDK 1.1.4
|
Sparkler(宝石)
|
1997-09-12
|
|
JDK 1.1.5
|
Pumpkin(南瓜)
|
1997-12-13
|
|
JDK 1.1.6
|
Abigail(阿比盖尔–女子名)
|
1998-04-24
|
|
JDK 1.1.7
|
Brutus(布鲁图–古罗马政治家和将军)
|
1998-09-28
|
|
JDK 1.1.8
|
Chelsea(切尔西–城市名)
|
1999-04-08
|
|
J2SE 1.2
|
Playground(运动场)
|
1998-12-04
|
|
J2SE 1.2.1
|
none(无)
|
1999-03-30
|
|
J2SE 1.2.2
|
Cricket(蟋蟀)
|
1999-07-08
|
|
J2SE 1.3
|
Kestrel(美洲红隼)
|
2000-05-08
|
|
J2SE 1.3.1
|
Ladybird(瓢虫)
|
2001-05-17
|
|
J2SE 1.4.0
|
Merlin(灰背隼)
|
2002-02-13
|
|
J2SE 1.4.1
|
grasshopper(蚱蜢)
|
2002-09-16
|
|
J2SE 1.4.2
|
Mantis(螳螂)
|
2003-06-26
|
|
Java SE 5.0 (1.5.0)
|
Tiger(老虎)
|
2004-09-30
|
|
Java SE 6.0 (1.6.0)
|
Mustang(野马)
|
2006-04
|
|
Java SE 7.0 (1.7.0)
|
Dolphin(海豚)
|
2011-07-28
|
|
Java SE 8.0 (1.8.0)
|
Spider(蜘蛛) |
2014-03-18
|
| Java SE 9 | 2017-09-21 |
环境配置
Windows下
/* HelloWorld.java */
public class HelloWorld
{
public static void main(String[] arg)
{
System.out.println("Hello,World!");
}
}
javac HelloWorld.java
java HelloWorld
@pause
Hello,World
请按任意键继续. . .
在LINUX下
在LINUX下
export JAVA_HOME=/usr/jdk1..0_21
export JRE_HOME=/usr/jdk1..0_21/jre
export PATH=$PATH:/usr/jdk1..0_21/bin
export CLASSPATH=./:/usr/jdk1..0_21/lib:/usr/jdk1..0_21/jre/lib
public class Test{
public static void main(String[] args){
System.out.println("Hello,Welcome to Linux World!");
}
}
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
Java体系基本概念的更多相关文章
- JAVA的核心概念:接口(interface)
JAVA的核心概念:接口(interface) 接口与类属于同一层次,实际上,接口是一种特殊的抽象类. 如: interface IA{ } public interface: 公开接口 与 ...
- JAVA体系的线程的实现,线程的调度,状态的转换
java体系中线程的实现 1.使用内核线程实现 内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上,每个内核 ...
- java io-1基本概念
java io-1基本概念 2015-07-03 15:17 648人阅读 评论(0) 收藏 举报 分类: [JavaSE](37) 目录(?)[+] ------------------ ...
- Java线程:概念与原理
Java线程:概念与原理 一.操作系统中线程和进程的概念 现在的操作系统是多任务操作系统.多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程 ...
- atitit.为什么java体系开发效率这样低的原因and解决
atitit.为什么java体系开发效率这样低的原因and解决 #---开发理念问题(影响度:很大的,2-3倍效率) mvc<>webform server control ajax< ...
- java 线程基本概念 可见性 同步
开发高性能并发应用不是一件容易的事情.这类应用的例子包括高性能Web服务器.游戏服务器和搜索引擎爬虫等.这样的应用可能需要同时处理成千上万个请求.对于这样的应用,一般采用多线程或事件驱动的架构.对于J ...
- C功底挑战Java菜鸟入门概念干货(一)
一.认识Java 1.Java 程序比较特殊,它必须先经过编译,然后再利用解释的方式来运行. 2.Byte-codes 最大的好处是——可越平台运行,可让“一次编写,处处运行”成为可能. 3.使用 ...
- C功底挑战Java菜鸟入门概念干货(二)
(接上篇博文:C功底挑战Java菜鸟入门概念干货(一)) 一.Java面向对象程序设计-类的基本形式 1.“类”是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达对真实世界的一种抽象概 ...
- JAVA体系学习-导向
一:当前学习内容 数值类型处理总结,字符类型处理总结,日期类型处理总结 spring 事务源码分析 spring源码系列 二:当前学习 主攻:并发编程->RPC原理->MQ原理->- ...
随机推荐
- 挖坑:handoop2.6 开启kerberos(全流程学习记录)
目录: 1.涉及插件简介 2.安装步骤 3.日志错误查看 1.kerberos是什么东西 度娘指导: Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为 客户机 / 服务器 应用程序提供 ...
- 使用Delve进行Golang代码的调试
问题 安装好vscode编辑项目,出现以下错误: Failed to continue: "Cannot find Delve debugger. Ensure it is in your ...
- Opencv Mat运算(转)
一.矩阵Mat I,img,I1,I2,dst,A,B; double k,alpha; Scalar s; //注意Mat的行列号是从0开始的 //定义矩阵a,b,c Mat a,b,c; //生成 ...
- laravel5.4中验证与错误提示设置
1.对于交互提交数据,验证如: #验证 $this->validate(\request(),[ 'title' => 'required|string|min:3|max:20', 'c ...
- 20 go单元测试
单元测试 Go本身提供了一套轻量级的测试框架.符合规则的测试代码会在运行测试时被自动识别并执行.单元测试源文件的命名规则如下: 必须是以_test.go结尾的文件,比如manager_test.go ...
- [IR] Search Server - Sphinx
使用 Sphinx 更好地进行 MySQL 搜索 - IBM 尽管 MySQL 是一个出色的通用数据库,但是如果您的应用程序需要进行大量搜索,那么使用 Sphinx 可获得更好的性能. 尽管 Sphi ...
- 8 -- 深入使用Spring -- 5...3 使用@CacheEvict清除缓存
8.5.3 使用@CacheEvict清除缓存 被@CacheEvict注解修饰的方法可用于清除缓存,使用@CacheEvict注解时可指定如下属性: ⊙ value : 必须属性.用于指定该方法用于 ...
- 核态获取PsLoadedModuleList地址的稳定方法
转载: https://blog.csdn.net/celestialwy/article/details/1261407 PsLoadedModuleList是Windows加载的所有内核模 ...
- maven assembly plugin使用
使用场景 在使用maven来管理项目时,项目除了web项目,还有可能为控制台程序,一般用于开发一些后台服务的程序.最近在工作中也遇到了这种场景,使用quartz开发一个任务调度程序.程序中依赖很多ja ...
- {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm
Django基础十之Form和ModelForm组件 本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Model ...