JAVA学习笔记(初级)一

来源:互联网 发布:java校招面试 编辑:程序博客网 时间:2024/05/16 07:43

虚拟机

JVM为下列各项做出了定义:
- 指令集
- 寄存器
- 类文件格式
- 栈
- 垃圾收集堆
- 存储区

JVM的功能:
- 通过ClassLoader寻找和装载class文件;
- 解释字节码成为指令并执行,提供class运行环境;
- 进行运行期间垃圾回收;
- 提供与硬件交互的平台;

垃圾回收

在程序运行过程中,存在被分配了的内存块不再被需要的情况,那么这些内存块对程序来说就是垃圾。
对不再需要的已分配内存,也就是释放内存,这个过程就是垃圾回收。

  • Java的垃圾回收:
    Java编程语言提供了一种系统级线程以跟踪内存分配,从而可以自动检查和释放不再需要的内存。

    • 在Java里面,垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功能和行为,比如垃圾回收什么时候开始,什么时候结束,以及到底哪些资源需要回收等。
    • 有一些跟垃圾回收相关的方法,比如System.gc()。但是调用这些方法,仅仅是在通知垃圾回收程序,至于垃圾回收程序运不运行,什么时候运行,都是无法控制的
    • 程序员可以通过设置对象为null来标示某个对象不再被需要了,这只是表示这个对象可以被回收了,并不是马上被回收

代码安全

  • 编译:编写的代码首先被编译成为class文件。如果代码有问题,编译期间就会发现,提示有编译错误,无法编译通过;
  • 装载:在类装载的时候,还会进行类装载检查,把本机上的类和网络资源类相分离,在调入类的时候进行检查,因而可以限制“木马”应用。
  • 运行前:类装载后,运行前,还会进行字节码校验,以判断程序是安全的。
  • 沙箱:如果你的程序在网络上运行,还有沙箱(Sand Box)的保护。如果你的程序没有取得授权,只能在沙箱限定的范围内运行,是不能访问本地资源的,从而保证安全性。
0 0