java特点了解及JDK初谈
java特性:
1.跨平台:主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。
2.简单:相比与C、C++不再有#include 和#define 等预处理功能、不再有指针、不再有多重继承、不再有手动内存管理。。。
3.安全:Java取消了强大但又危险的指针、
Java提供了自动内存管理机制,由垃圾回收器在后台自动回收、
Java在字节码的传输过程中使用了公开密钥加密机制(PKC),而在运行环境提供了四级安全性保障机制:
字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
|
字节码验证器(Byte Code Verifier) JVM通过字节代码验证程序放置代码,该代码验证程序检查格式并检查非法代码。例如,非法代码是违反对象访问权限或违反指针实现的代码。字节代码验证程序可确保代码符合JVM规范,并且不会违反系统完整性。 类加载器(Class Loader) 类加载器加载执行程序所需的所有必要类。它通过将本地文件系统的名称空间与通过网络导入的名称空间分开来提供安全性。这些文件可以从硬盘,网络或其他来源加载。 |
4.面向对象
5.健壮:Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
6.可移植
7.多线程
8.高性能
9.分布性
Java是一门编译性语言:
这里一张图展示编译型语言解释型语言区别:

了解字节码文件(bytecode)
• .class文件、二进制文件
• 格式中立、平台无关的二进制文件 采用结构中立的中间文件格式
• 是编译的产物,是解释的原料。

JDK、JRE、JVM的区别联系:
• JDK:
• Java DevelopmentKit
• 针对Java开发员的产品( Java应用和applets的软件开发环境)包含jre,一些工具(javac,java,javadoc( 文档生成器)等),java基础类库
• JRE:
• Java RuntimeEnvironment
• 是运行Java程序所必须的环境集合;包括 JVM,Java核心类库,java命令和其他的一些基础构件(支持文件)。但是,它不能用于创建新程序。
• JVM
• Java VirtualMachine:java虚拟机
• 解释运行Java字节码文件,跨平台的核心。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
• JVM就是一个虚拟的用于执行bytecodes字节码的计算机
• Java虚拟机是Java最核心技术,也是跨平台的基础。
• Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
• Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
联系:JDK 包含JRE,JRE包含JVM。



java特点了解及JDK初谈的更多相关文章
- POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等 ...
- 浅谈Java代理一:JDK动态代理-Proxy.newProxyInstance
浅谈Java代理一:JDK动态代理-Proxy.newProxyInstance java.lang.reflect.Proxy:该类用于动态生成代理类,只需传入目标接口.目标接口的类加载器以及Inv ...
- 细分java环境中的JDK、JVM、JRE
细分java环境中的JDK.JVM.JRE 近来小看了下Android,扑面而来一堆概念JDK.JVM.JRE.SDK.NDK.ADT.缕了一下,其中JDK.JVM.JRE是java环境的东西,而SD ...
- JAVA 学习随笔 : JDK Enhancement Process JEP process
是时候寻找一个学习JAVA的路径了 ---- JDK Enhancement Process Oracle发布了JDK增强提案与路线图进程,目的在于鼓励OpenJDK提交者贡献点子和扩展以改进Open ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
- [转]java动态代理(JDK和cglib)
转自:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html java动态代理(JDK和cglib) JAVA的动态代理 代理模式 代理 ...
- 【java开发系列】—— JDK安装
前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...
- java动态代理(JDK和cglib)
转:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代 ...
- 《转》JAVA动态代理(JDK和CGLIB)
该文章转自:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的 ...
随机推荐
- svg web拓扑更新了,支持动态添加svg组件
版本1.0请点此 预览地址 https://svg.yaolunmao.top 如何使用 # 克隆项目 git clone https://github.com/yaolunmao/vue-webto ...
- 了解常用数据库MySQL、Oracle、MongoDB
本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net 注:转载文章 什么是数据库 简单的说,数据库(英文 Dtabase)就是一个存放数据的仓库,这个仓库是按照一定的数据结果( ...
- queryset惰性与缓存
https://blog.csdn.net/zhu6201976/article/details/83550461
- ES6新增数组的一些思考和使用
ES6数组的新增 伪数组转换为数组的两种方法 Array.from()把一个伪数组转换为一个真正的数组 伪数组:有下标和length,但是不能使用数组方法 let lis = document.que ...
- KVM 添加新硬件
1 显卡 spice 2视频 qxl驱动 3 声音 ich6最好 ich9最清楚 4 输入 鼠标 智能图 否则不能VNC找不到焦点 5 磁盘大小 至少80G 否则 无法自动安装 无swap和 ...
- 【CentOS_7】一行shell实现自动清理过期日志
昨日web测试环境登录白屏,慌忙登上机器查看,半天没找到问题. 不知哪根筋不对,df -h 一看 , /dev/sda1 已经100%. 立马 du -sh *,发现log日志有点大. 手工清理后,业 ...
- Ubuntu 18.04 进入单用户模式修改密码
Ubuntu 18.04 使用单用户模式修改密码 操作步骤 启动Ubuntu 18.04 ,长按 Shift 键(有的可能按 Esc 键:绝大多数按 Shift 键)进入单用户视图,选中 Ubuntu ...
- centos7 安装Anaconda3及使用
centos7 安装Anaconda3及使用原创wangshu_liang 最后发布于2019-01-31 14:08:23 阅读数 1046 收藏展开最近在服务器上安装了anaconda3,先简单说 ...
- C语言编程 菜鸟练习100题(11-20)
[练习11]计算 int, float, double 和 char 字节大小 0. 题目: 计算 int, float, double 和 char 字节大小 1. 分析: 使用 sizeof 操作 ...
- JDK8中Stream使用解析
JDK8中Stream使用解析 现在谈及JDK8的新特新,已经说不上新了.本篇介绍的就是Stream和Lambda,说的Stream可不是JDK中的IO流,这里的Stream指的是处理集合的抽象概念『 ...