对Java平台的理解
1) Java是一种面向对象的语言(封装,继承,多态),最显著的特性有两个方面:
----书写一次,到处运行(Write once,run anywhere)
能够非常容易的获得跨平台的能力
----垃圾收集(GC,Garbage Collection)
Java通过垃圾收集器(Garbage Collector)回收分配内存,大部分情况下,程序员不需要自己操心内存的分配和回收。
2) JRE(Java Runtime Environment),是指Java运行环境,包含了JVM和Java类库,以及一些模块等。
3) JDK(Java Development Kit) 是指JRE的一个超集,提供了更多工具,比如编译器Javac,各种诊断工具等。
4) 与平台无关性:
①我们开发的java源代码,首先通过javac编译成字节码(bytecode),也就是编译成.class文件。
②解析:.class文件经过JVM内嵌的解析器解析执行
③编译:存在JIT编译器(Just In Time Compile)把经常运行的代码作为热点代码编译与本地平台相关的机器码,并进行各种层次的优化。
④AOT编译器Java9 提供的直接将所有代码编译成机器码执行。
----javac是java语言编程编译器。全称java compiler。javac工具读有java语言编写的类和接口的定义,将他们编译成字节大妈的class文件。javac可以隐式编译一些没有在命令行中提及的源文件。用-verbose选项可跟踪自动编译。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及,但通过继承提供信息的类和接口。
----JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上方针模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。Java虚拟机在执行字节码时,把字节码解释成据图平台上的及其指令执行。这就是Java的能够“一次编译,到处运行”的原因
5) Java语言特性: 包括泛型,Lambda等语言特点;
6) 类库:包括集合、IO/NIO、网络、并发、安全等基础类库。
对Java平台的理解的更多相关文章
- 谈谈你对 Java 平台的理解
声明 本篇所涉及的提问,正文的知识点,全都来自于杨晓峰的<Java核心技术36讲>,当然,我并不会全文照搬过来,毕竟这是付费的课程,应该会涉及到侵权之类的问题. 所以,本篇正文中的知识点, ...
- 《Java核心技术36讲》阅读笔记:谈谈对Java平台的理解笔记
1. 谈谈你对Java平台的理解. Java是一种面向对象的语言,最显著的特性有两个方面: 一个就是一次编译,到处运行(Write once, run anywhere),能够非常容易的获得跨平台能力 ...
- Java-谈谈对Java平台的理解
问题 谈谈对 Java 平台的理解 Java是解释执行的 这句话对么 程序的编译与解释有什么区别 Java 平台的了解 Java的主要特点是两个, 编写一次到处运行 Write once, run a ...
- 2018.7.26 进程和线程的区别 &&你对 Java平台的理解
进程和线程的区别 1.定义 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程:进程的一个实体,是CPU调度和分派的基本单位,它是比进程更 ...
- java面试题(杨晓峰)---第一讲谈谈你对java平台的理解
本人总结: 面向对象(封装,继承,多态) 平台无关性(jvm运行,class文件) 语言(泛型,lambda) 类库(集合,并发,网络,io/nio) jre(java运行环境,JVM,类库) JDK ...
- 1.谈谈对Java平台的理解
1.谈谈你对Java平台的理解 Java 本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“一次编译,到处运行”(Compile once,run anywhere),能够非常容易地获取跨 ...
- 谈谈你对java平台的理解?
问题:谈谈你对java平台的理解?java是解释执行,这句话对吗? 典型回答:java本身是一种面向对象的语言,具有很好的跨平台的能力,能够做到“write once ,run anywhere”.另 ...
- Java核心-01 谈谈你对Java平台的理解
今天我要问你的问题是,谈谈你对 Java 平台的理解?“Java 是解释执行”,这句话正确吗? 典型回答 Java本身是一种面向对象的语言,最显著的特性有两个.一是所谓的“书写一次,到处运行”,能够非 ...
- 谈谈对Java平台的理解
从我第一次接触Java的时候,老师就说"Write once,run anywhere",这句话虽然听起来有一点太过于形式主义,但是也突出了它的特点.那么,现在的我们应该总结一下和 ...
随机推荐
- 新唐ARM9之NUC972学习历程之系统的搭建和BSP包的使用
说到嵌入式,我们首先想到的,就是它的复杂程度,LINUX,BSP,UBOOT,交叉编译,寄存器配置,等等一系列的问题,甚至有的时候我们对此一头雾水,很是头疼,不过我们今天要说的就是关于NUC972的一 ...
- 国内linux 镜像
北京理工大学开源软件镜像服务mirrors.ustc.edu.cn 开源中国社区软件镜像下载资源库mirrors.oss.org.cn 阿里云开源镜像站mirrors.aliyun.com<ig ...
- diamond types are not supported at this language level
在intellij导入git项目之后出现 diamond types are not supported at this language level错误 或者String等报错 File->P ...
- 兼容ie8的框架
layui Flow-UI http://refined-x.com/Flow-UI/
- JQuery中$.ajax()方法参数详解 转载
url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 ...
- jquery背景backgroundPosition插件
在jquery官网里找到(http://plugins.jquery.com/kbw.backgroundpos/) 语法: obj.animate({'background-position': ' ...
- java如何使用base64生成图片文件
import org.apache.commons.codec.binary.Base64; public static void decodeFile(String base64Str,File f ...
- nginx负载均衡模块
1.upstream 模块 upstream backend { server backend1.example.com weight=5 max_fails=10 fail_timeout=10s; ...
- etc/fstab
etc/fstab 就是在开机引导的时候自动挂载到linux的文件系统 设备名称 挂载点 分区的类型 挂载选项 dump选项 fsck选项UUID=ce25cdc7-434f-420b-b3 / ex ...
- HDU Humble Numbers
Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The ...