• JAVA基础之两种核心机制


        突然之间需要学习Java,学校里学的东西早就忘记了,得用最短的时间把Java知识理顺,重点还是J2EE,毕竟所有的ava项目中95%都是J2EE,还是先从基础的J2SE学起吧.......

        首先是了解Java的核心机制,Java中有两种核心机制:

        ①Java虚拟机(Java Virtual Machine)

        ②垃圾收集机制(Garbage collection)

       一、核心机制之Java虚拟机

        ① Java虚拟机可以理解成一个以字节码为机器指令的CPU

        ② 对于不同的运行平台,有不同的虚拟机

        ③ Java虚拟机机制屏蔽了底层运行平台的差别,能够很好的实现跨平台

                                          Java编译器                                          执行          |--->JVM for UNIX

         源程序(*.java文件)========>字节码(*.class文件)=========>|--->JVM for Windows

                                                                                                                    |--->JVM for other

         在不同的平台上有相应平台的虚拟机(相当于Java程序是运行在Java准备的虚拟环境中),这样就保证了Java程序的跨平台性.....

         注:由此也可以看出Java是解释型语言

         补充说明:语言类型

         ①编译型语言:直接编译成操作系统可识别的可执行文件,例如C,C++

         ②解释型语言:需要首先编译为.class等字节码文件后在逐行解释为操作系统可识别的可执行文件,例如Java

       二、核心机制之垃圾收集

          Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放。

          分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null即可。对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象,通过这种方式确定哪些对象是“可达的”,哪些对象是“不可达的”,当GC确定一些对象为“不可达”时,GC就有责任回收这些内存空间

          GC在JVM中通常是由一个或一组进程来实现的,它本身也和用户程序一样占用heap空间,运行时也占用CPU,当进程运行时,应用程序停止运行。

          因此,当GC运行时间较长时,用户能够感到Java程序的停顿,另一方面,如果GC运行时间太短,则可能对象回收率太低,这意味着还有很多应该回收的对象没有被回收,这即要求我们在设计GC时要均衡效率。

  • 相关阅读:
    单一index.php实现PHP任意层级文件夹遍历(原创自Zjmainstay)
    php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(原创自Zjmainstay)
    php获取页面并切割页面div内容
    jQuery单击双击实现链接的提取、插入与删除
    PHP 利用AJAX获取网页并输出(原创自Zjmainstay)
    php 数组首字符过滤功能
    点击图片添加文件在Chrome中使用的兼容问题
    php读取txt文件组成SQL并插入数据库(原创自Zjmainstay)
    为博客园添加标签云动画
    jQuery动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
  • 原文地址:https://www.cnblogs.com/wangyong/p/3169144.html
Copyright © 2020-2023  润新知