Java语言技术三大特性
来源:才华咖 本文已影响3.1W人
来源:才华咖 本文已影响3.1W人
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。以下本站小编整理的Java语言技术三大特性的介绍,希望对大家有所帮助,更多信息请关注应届毕业生网!
1 :虚拟机Java 虚拟机 JVM(Java Virtual Machine)在 Java 编程里面具有非常重要的地位,约相当于前面学到的 Java 运行环境,虚拟机的基本功能如下:
(1):通过 ClassLoader 寻找和装载 class 文件
(2):解释字节码成为指令并执行,提供 class 文件的运行环境
(3):进行运行期间垃圾回收
(4):提供与硬件交互的平台
Java虚拟机是在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储在 s文件中; 每个文件都包含最多一个public类。 Java 虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范,该规范使Java 软件独立于平台,因为编译是针对作为虚拟机的“一般机器”而做。这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。编译器在获取Java应用程序的源代码后,将其生成字节码,它是为JVM生成的一种机器码指令。每个Java解释器,不管它是Java技术开发工具,还是可运行applets 的Web浏览器,都可执行JVM。
JVM 为下列各项做出了定义
- 指令集(相当于中央处理器[CPU] )
- 寄存器
- 类文件格式
- 栈
- 垃圾收集堆
- 存储区
JVM 的代码格式由紧缩有效的字节码构成。 由 JVM 字节码编写的程序必须保持适当的类型约束。大部分类型检查是在编译时完成。任何从属的 Java 技术解释器必须能够运行任何含有类文件的`程序,这些类文件应符合 Java 虚拟机规范中所指定的类文件格式。
1.1 :虚拟机是 Java 平台无关的保障
正是因为有虚拟机这个中间层,Java 才能够实现与平台无关。 虚拟机就好比是一个 Java运行的基本平台,所有的 Java 程序都运行在虚拟机上,如下图所示:
2.1 :什么是垃圾
在程序运行的过程中,存在被分配了的内存块不再被需要的情况,那么这些内存块对程序来讲就是垃圾。
产生了垃圾,自然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占用的内存资源,回收回来,加以再利用,从而节省资源,提高系统性能。
2.2 :垃圾回收
- 不再需要的已分配内存应取消分配(释放内存)
- 在其它语言中,取消分配是程序员的责任
- Java 编程语言提供了一种系统级线程以跟踪内存分配
- 垃圾收集
- 可检查和释放不再需要的内存
- 可自动完成上述工作
- 可在 JVM 实现周期中,产生意想不到的变化
许多编程语言都允许在程序运行时动态分配内存,分配内存的过程由于语言句法不同而有所变化,但总是要将指针返回到内存的起始位置,当分配内存不再需要时(内存指针已溢出范围),程序或运行环境应释放内存。
在 C,C++ 或其它语言中,程序员负责释放内存。有时,这是一件很困难的事情。因为你并不总是事先知道内存应在何时被释放。 当在系统中没有能够被分配的内存时,可导致程序瘫痪,这种程序被称作具有内存漏洞。
Java 编程语言解除了程序员释放内存的责任。它可提供一种系统级线程以跟踪每一次内存的分配情况。在 Java 虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的内存。垃圾收集在 Java 技术程序的生命周期中自动进行,它解除了释放内存的要求,这样能够有效避免内存漏洞和内存泄露(内存泄露就是程序运行期间,所占用的内存一直往上涨,很容易造成系统资源耗尽而降低性能或崩溃)。
2.3 :提示
(1):在 Java 里面,垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功能和行为。比如垃圾回收什么时候开始,什么时候结束,还有到底哪些资源需要回收等,都是程序员不能控制的。
(2):有一些跟垃圾回收相关的方法,比如:() , 记住一点,调用这些方法,仅仅是在通知垃圾回收程序,至于垃圾回收程序运不运行,什么时候运行,都是无法控制的。
(3):程序员可以通过设置对象为 null(后面会讲到)来标示某个对象不再被需要了,这只是表示这个对象可以被回收了,并不是马上被回收。
3 :代码安全Java 如何保证编写的代码是安全可靠的呢?
(1):第一关:编写的代码首先要被编译成为 class 文件,如果代码写得有问题,编译期间就会发现,然后提示有编译错误,无法编译通过。
(2):第二关:通过编译关后,在类装载的时候,还会进行类装载检查,把本机上的类和网络资源类相分离,在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。
(3):第三关:类装载后,在运行前,还会进行字节码校验,以判断你的程序是安全的。
(4):第四关:如果你的程序在网络上运行,还有沙箱 (Sand Box)的保护,什么是沙箱呢?
就是如果你的程序没有获得授权,只能在沙箱限定的范围内运行,是不能够访问本地资源的,从而保证安全性。
如下图所示:
学习到这里,大家应该对 Java 有了一定的了解了。 现在是否想要看看 Java 程序究竟什么样子呢?是不是想要体会一下如何开发 Java 程序呢?下面我们先来看看如何构建 JSE 的环境,这是进行 Java 程序开发的第一步。
Java语言的11大特点
基于JAVA语言的数据库访问技术
特大桥桥架梁技术交底
浅谈JAVA语言特点
java语言特点总结
Java技术简历范文
Java语法的主要特性
Java替代C语言的可能性有多大
Java语言11大特点解析
详解JAVA8的10大新特性
Java语言基本特点
Java性能优化技巧大全
Java语言Object类技巧
Java语言的特点分析
Java语言特点
JAVA语言有哪些特点
Java语言的特点
Java与Java web的区别大纲
Java语言与Java 技术
java语音主要特性是什么
Java语言面向对象的4大特征
java面向对象的四大特性
特种能源技术与工程专业大学排名
Java语言的产生及其特点大纲
Java语言第一个javaapplet