文档章节

Java基础11

DouDouLee
 DouDouLee
发布于 2016/05/09 22:32
字数 899
阅读 30
收藏 3

1、Java是平台独立性语言

平台独立性是指可以在一个平台上编写和编译程序,而在其他平台上运行。保证Java具有平台独立性的机制为“中间码”和“Java虚拟机(Java Virtual Machine)”。Java程序编译后不是生成能在硬件平台上可执行的代码而是生成“中间码”。不同硬件平台上会安装不同的JVM,由JVM负责把“中间码”翻译成硬件平台能执行的代码,因此能看出JVM不是平台独立的,是与硬件平台相关的。

解释执行分三步进行:代码的装入、代码的校验和代码的执行,装入代码的工作由“类加载器”完成,装入的代码由字节码校验器进行检查。

Java字节码的执行分两种方式:

1)解释执行指解释器通过每次解释执行一小段代码来完成Java字节码程序的所有操作。

2)即时编译方式,解释器现将字节码编译成机器码,再执行该机器码。

Java平台

包含两个模块:JVM和Java API。JVM是一个虚构出来的计算机,用来把Java编译成的中间代码转换为机器可以识别的编码并运行。有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统,它屏蔽了与具体OS相关的信息,使Java程序只需生成在JVM上运行的目标代码(即字节码)就可以在多种平台上顺利运行。每当一个java程序运行时,都会有一个对应的JVM实例。当程序运行结束后,这个JVM才会退出。JVM实例通过调用类的main()方法来启动一个Java程序。

2、GC(Garbage Collection)垃圾回收

自动检测对象的作用域,把不再使用的存储空间释放掉。垃圾回收器需要完成三个任务:分配内存、确保被引用对象的内存不被错误的回收、回收不再被引用的对象的内存空间。

垃圾回收器使用有向图来记录和管理堆内存中的所有对象,通过有向图来识别哪些对象是“可达的(有引用变量引用它)”,哪些是不可达的。

3、内存泄漏

Java中的内存泄漏主要指一个不再被程序使用的对象或变量还在内存中占有存储空间。

引起内存泄漏的几个原因:

1)静态集合类,如HashMap和Vector,若为static,他们的生命周期与程序一致,那么容器中的对象在程序结束之前不能被释放

2)各种连接,如数据库连接、网络连接、IO连接等,只有连接被关闭后才会回收,若不显式的关闭会造成对象无法被回收。

3)监听器,在释放对象的时候往往没有删除相应的见同期

4)变量的不合理作用域,变量的作用域大于其使用范围,还有未及时的将对象置为null

4、Java中的堆和栈

都是存放数据的地方。栈内存主要存放基本数据类型和引用变量;堆内存存放运行时创建的对象

A a = new A();//a放在栈中, new A()放在堆中

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Dos下查看端口
下一篇: Java基础10
DouDouLee
粉丝 6
博文 95
码字总数 45242
作品 0
西安
私信 提问
你所需要的java提升篇大总结

java基础篇深入解析大总结 java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规则 java基础(三) 加强型for循环与Iterator java基础(四) java运算顺序的深入解析 java基础(五) Str...

sihailoveyan
04/25
0
0
Java程序设计经典300例

《Java程序设计经典300例》共分为3篇。 第1篇 基础篇(第1~5章)本篇主要内容包括:Java语言基础、流程控制、数组、字符串和面向对象编程。通过本篇的学习,读者可以掌握Java开发环境的配置...

请叫我院长
2013/12/03
402
0
阿里巴巴菜鸟Java一面11个问题,你会几个呢?

近日,w3cschool app开发者头条上分享了阿里菜鸟Java程序员一些面试题。 这吸引了不少程序员小伙伴们的注意。 在分享阿里菜鸟Java程序员面经前,来看下Java面试一些面试经验分享: 0、Java高...

W3Cschool
04/03
0
0
Java程序员从笨鸟到菜鸟全部博客目录【2012年十一月七日更新】

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主路线,想想这一年半,...

长平狐
2012/11/12
103
0
JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52724939 JAVA基础再回首(三十)——JAVA基础再回首完美结束,感概万千! 经过了几...

Aduroidpc
2016/10/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JavaScript 继承使用解析

继承,通俗地说,之前你写过一些类,这些类中有一些是而你现在要写的类的功能的子集或者基本相同,那么你不用完全重新写一个新的类,你可以把之前写的类拿过来使用.这样的一种代码重用过程就叫做继...

前端攻城小牛
13分钟前
0
0
深入解析JavaScript 原型继承

JavaScript 原型继承,学习js面向对象的朋友可以看看。十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 Object.prototype JavaScript是...

前端攻城老湿
15分钟前
0
0
2018阿里云双12——年末钜惠,低至2折

活动链接地址:https://m.aliyun.com/act/team1212/?params=N.JlJCGqQNL4

城市之雾
16分钟前
0
0
VMware前路难测,多个厂家群雄逐鹿

导读 以VMware为例,虚拟机巨头公布了第二财季报告所示,它第二财季收入同比增长13%,达到了21.7亿美元,而且该公司收入和每股收益均超出预期。 在人们高谈Salesforce、亚马逊等新兴云计算厂...

问题终结者
17分钟前
0
0
Vuex的初探与实战小结

1.概述 每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。 Vuex 和单纯的全局对象有以下两点不同: 1.Vuex 的状态存储是响...

peakedness丶
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部