Java技术三?特性讲解

Java 技术具有卓越的通?性、?效性、平台移植性和安全性,?泛应?于PC、数据中?、游戏控制台、科学超级计算机、移动电话和互联

?,同时拥有全球最?的开发者专业社群。下?店铺给?家分享的是Java技术三?特性,在这希望对?家有所帮助!

1 :虚拟机

Java 虚拟机 JVM(Java Virtual Machine)在 Java 编程??具有?常重要的地位,约相当于前?学到的 Java 运?环境,虚拟机的基本功能如

下:

(1):通过 ClassLoader 寻找和装载 class ?件

(2):解释字节码成为指令并执?,提供 class ?件的运?环境

(3):进?运?期间垃圾回收

(4):提供与硬件交互的平台

Java虚拟机是在真实机器中?软件模拟实现的?种想象机器。Java虚拟机代码被存储在 .class?件中; 每个?件都包含最多?个public类。

Java 虚拟机规范为不同的硬件平台提供了?种编译Java技术代码的规范,该规范使Java 软件独?于平台,因为编译是针对作为虚拟机的“?般机

器”?做。这个“?般机器”可?软件模拟并运?于各种现存的计算机系统,也可?硬件来实现。编译器在获取Java应?程序的源代码后,将其?成

字节码,它是为JVM?成的?种机器码指令。每个Java解释器,不管它是Java技术开发?具,还是可运?applets 的Web浏览器,都可执?JVM。

JVM 为下列各项做出了定义

– 指令集(相当于中央处理器[CPU] )

– 寄存器

– 类?件格式

– 栈

– 垃圾收集堆

– 存储区

JVM 的.代码格式由紧缩有效的字节码构成。由 JVM 字节码编写的程序必须保持适当的类型约束。?部分类型检查是在编译时完成。任何从

属的 Java 技术解释器必须能够运?任何含有类?件的程序,这些类?件应符合 Java 虚拟机规范中所指定的类?件格式。

1.1 :虚拟机是 Java 平台?关的保障

  正是因为有虚拟机这个中间层,Java 才能够实现与平台?关。虚拟机就好?是?个 Java运?的基本平台,所有的 Java 程序都运?在虚拟机

上,如下图所?:

2 :垃圾回收

2.1 :什么是垃圾

  在程序运?的过程中,存在被分配了的内存块不再被需要的情况,那么这些内存块对程序来讲就是垃圾。

  产?了垃圾,?然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占?的内存资源,回收回来,加以再利?,从?节省资源,提?系统

性能。

2.2 :垃圾回收

– 不再需要的已分配内存应取消分配(释放内存)

– 在其它语?中,取消分配是程序员的责任

– Java 编程语?提供了?种系统级线程以跟踪内存分配

– 垃圾收集

– 可检查和释放不再需要的内存

– 可?动完成上述?作

– 可在 JVM 实现周期中,产?意想不到的变化

  许多编程语?都允许在程序运?时动态分配内存,分配内存的过程由于语?句法不同?有所变化,但总是要将指针返回到内存的起始位置,当

分配内存不再需要时(内存指针已溢出范围),程序或运?环境应释放内存。

  在 C,C++ 或其它语?中,程序员负责释放内存。有时,这是?件很困难的事情。因为你并不总是事先知道内存应在何时被释放。当在系统

中没有能够被分配的内存时,可导致程序瘫痪,这种程序被称作具有内存漏洞。

Java 编程语?解除了程序员释放内存的责任。它可提供?种系统级线程以跟踪每?次内存的分配情况。在 Java 虚拟机的空闲周期,垃圾收

集线程检查并释放那些可被释放的内存。垃圾收集在 Java 技术程序的?命周期中?动进?,它解除了释放内存的要求,这样能够有效避免内存漏

洞和内存泄露(内存泄露就是程序运?期间,所占?的内存?直往上涨,很容易造成系统资源耗尽?降低性能或崩溃)。

2.3 :提?

(1):在 Java ??,垃圾回收是?个?动的系统?为,程序员不能控制垃圾回收的功能和?为。?如垃圾回收什么时候开始,什么时候结束,

还有到底哪些资源需要回收等,都是程序员不能控制的。

(2):有?些跟垃圾回收相关的?法,?如:System.gc() , 记住?点,调?这些?法,仅仅是在通知垃圾回收程序,?于垃圾回收程序运不运

?,什么时候运?,都是?法控制的。

(3):程序员可以通过设置对象为 null(后?会讲到)来标?某个对象不再被需要了,这只是表?这个对象可以被回收了,并不是马上被回收。

3 :代码安全

Java 如何保证编写的代码是安全可靠的呢?

(1):第?关:编写的代码?先要被编译成为 class ?件,如果代码写得有问题,编译期间就会发现,然后提?有编译错误,?法编译通过。

(2):第?关:通过编译关后,在类装载的时候,还会进?类装载检查,把本机上的类和?络资源类相分离,在调?类的时候进?检查,因?

可以限制任何“特洛伊?马”的应?。

(3):第三关:类装载后,在运?前,还会进?字节码校验,以判断你的程序是安全的。

(4):第四关:如果你的程序在?络上运?,还有沙箱 (Sand Box)的保护,什么是沙箱呢?

  就是如果你的程序没有获得授权,只能在沙箱限定的范围内运?,是不能够访问本地资源的,从?保证安全性。

来源:解影视

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月16日
下一篇 2022年4月16日

相关推荐