一。虚拟机的工作机制

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

二。Java 从代码到运行的全过程

  1.创建类:创建Java类文件,文件名(文件后缀名为java)必须跟其中一个类名完全一致,只有该类可以带public修饰符,一个类文件中最多只有一个类被public修饰(内部类不算)

    类包含如下部分:①包(package)定义,②引用(import)的别的类,③类定义

  2.编译:将类文件编译成JVM可以识别的字节码文件,文件以class为后缀名

  3.类装载ClassLoader:类装载就是JVM把二进制文件加载到内存中

  4.字节码(byte-code)校验:JVM对class文件进行字节码校验,保证代码的安全性

  5.解释:解释器解释加载后的字节码文件

  6.运行:由运行环境中的 Runtime 对代码进行运行

三。 Java 的垃圾回收机制

  1.目的:取消分配已分配的内存,即释放内存

  2.方式:有系统级线程自动追踪内存分配情况,并自动回收

  3.提示:

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

四。Java 的安全机制

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

五。 path、classpath、JAVA_HOME 各自的含义和配置方式

  PATH :提供给操作系统寻找到 Java 命令工具的路径。通常是配置到 JDK 安装路径\bin
  JAVA_HOME :提供给其它基于 Java 的程序使用, 让它们能够找到 JDK 的位置。 通常配置到 JDK 安装路径。注意:这个必须书写正确,全部大写,中间用下划线。
  CLASSPATH :提供程序在运行期寻找所需资源的路径,比如:类、文件、图片等等。

Java基础の第一弹的更多相关文章

  1. JAVA面试精选【Java基础第一部分】

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

  2. JAVA基础第一章-初识java

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 ...

  3. java基础第一章

    有一定的基础,但是还是要重新开始,2020.10.6 1.手写Hello World public class HelloWorld{ public static void main(String[] ...

  4. Hadoop基础——第一弹:Hadoop介绍

    一.基础 1.了解Java.Linux操作系统相关知识 2.如需精进,应为水平要达到一定标准,能够阅读国外相关技术网站,eg:http://hadoop.apache.org/ 二.什么是Hadoop ...

  5. JAVA基础第一组(前5道题)

    1.[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?        1.程序分析: 兔 ...

  6. Java基础第一节.Java简介

    第一节 Java简介 Java是一个由Sun公司开发而成的新一代的编程语言. Java语言是对软件开发有深远影响.应用前景广泛.具有丰富的类库.继承了C++的传统(摈弃了某些不足)广泛使用的网络编程语 ...

  7. Java基础第一天--继承、修饰符

    继承 继承的概述: 继承是面向对象三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法. //创建父类 public class Fu{ public void sh ...

  8. java基础第一节课随笔

    第一题:1.定义一个HelloWold类2.在类中定义主方法3.在主方法中使用输出语句在dos控制台打印HelloWorld 打印结果如:HelloWorld4.在案例中使用当行注释.多行注释添加相关 ...

  9. java 基础第一季

    1. i安装jdk ii 配置环境变量:JAVA_HOME 配置jdk的安装路径 path            配置命令文件的位置 bin目录的安装路径 PATH_HOME 配置库文件的位置   l ...

随机推荐

  1. SQL 批量字符串替换

    --在SQL SERVER中批量替换字符串的方法 update table[表名] set Fields[字段名]=replace(Fields[字段名],'被替换原内容','要替换成的内容') up ...

  2. Web开发者选择的最佳HTML5/CSS3代码生成器

    原文地址:http://codecloud.net/css3-code-generators-for-web-programmers-6672.htmlHTML5 和CSS3是一入门就能用的最好的语言 ...

  3. 菜鸟成长进阶之——fiddler使用总结

     作为一个猪拱性能的程序猿,不会使用fiddler来协助自己分析问题是万万不能的.还记得刚入职的时候老大提过的几个必须要熟练使用的工具中第一个就是fiddler.虽然接触了快一年了,但是还是一知半解的 ...

  4. R语言-妹子被追后的选择分析

    前提假设 妹子们一生中可以遇到100个追求者,追求者的优秀程度符合正态分布: 每个妹子都具备判断并比较追求者优秀程度的能力: 接受或拒绝一个追求者后永远无法后悔. 那么,问题来了 当遇到追求者时,如何 ...

  5. Google OKR 目标管理体系学习

    OKR 全称是「目标和关键成果」(Objectives and Key Results).它是Google在公司创立不足一年的时候,从Intel公司引入的目标管理系统,也常被认为是一套组织测评系统. ...

  6. 来自亚马逊CEO Jeff Bezos的20句经验之谈

    英文原文:The 20 Smartest Things Jeff Bezos Has Ever Said 当外界对一个公司的热情有些偏离常态时, 就会出现武断的言论,亚马逊对此就深有感受.2000 年 ...

  7. parseInt第二个参数详解

    前阵子在stackOverflow上看到两个这样的问题: 为什么parseInt(8,3) == NaN,parseInt(16,3) == 1? 为什么parseInt('dsff66',16) = ...

  8. Bootstrap-用ICheck插件给CheckBox换新装

    直接来吧! 下面是添加上复选框以后的树形菜单效果: 这样看起来有种驴唇不对马嘴的感觉. 所以就要想办法给这些复选框添加1些样式,让全部界面看起来搭配1些. 通过查询得知,有个叫ICheck的第3方Bo ...

  9. Atitit.病毒木马程序的感染 传播扩散 原理

    Atitit.病毒木马程序的感染 传播扩散 原理 1. 从木马的发展史考虑,木马可以分为四代 1 2. 木马有两大类,远程控制  vs  自我复制传播1 3. 自我复制2 3.1. 需要知道当前cpu ...

  10. Q:关于Outlook for CRM 中预览记录窗体的设置

    问题: 如何在Outlook for CRM中,将实体记录的预览窗口的信息做调整? 解决方案: 在Outlook里,在打开实体后选择View=>Customize Reading Pane,这里 ...