Java基础の第一弹
一。虚拟机的工作机制
(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基础の第一弹的更多相关文章
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
- JAVA基础第一章-初识java
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 从今天开始,我将会持续更新java基础知识,欢迎关注. java的诞生 ...
- java基础第一章
有一定的基础,但是还是要重新开始,2020.10.6 1.手写Hello World public class HelloWorld{ public static void main(String[] ...
- Hadoop基础——第一弹:Hadoop介绍
一.基础 1.了解Java.Linux操作系统相关知识 2.如需精进,应为水平要达到一定标准,能够阅读国外相关技术网站,eg:http://hadoop.apache.org/ 二.什么是Hadoop ...
- JAVA基础第一组(前5道题)
1.[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔 ...
- Java基础第一节.Java简介
第一节 Java简介 Java是一个由Sun公司开发而成的新一代的编程语言. Java语言是对软件开发有深远影响.应用前景广泛.具有丰富的类库.继承了C++的传统(摈弃了某些不足)广泛使用的网络编程语 ...
- Java基础第一天--继承、修饰符
继承 继承的概述: 继承是面向对象三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法. //创建父类 public class Fu{ public void sh ...
- java基础第一节课随笔
第一题:1.定义一个HelloWold类2.在类中定义主方法3.在主方法中使用输出语句在dos控制台打印HelloWorld 打印结果如:HelloWorld4.在案例中使用当行注释.多行注释添加相关 ...
- java 基础第一季
1. i安装jdk ii 配置环境变量:JAVA_HOME 配置jdk的安装路径 path 配置命令文件的位置 bin目录的安装路径 PATH_HOME 配置库文件的位置 l ...
随机推荐
- vmware安装mac
1.笔记本安装mac10.6 2.用VMware8,需要在mac.vmx中添加以下语句 guestOS = "darwin10"ich7m.present="TRUE&q ...
- 在IIS7中使用ARR(Application Request Routing)反向代理虚拟目录到Nodejs站点
目标: 1.访问www.arrdemo.com/proxy 跳转到 localhost:8898的Nodejs站点 2.Nodejs站点的页面可以返回到浏览器,包括js,css,图片 3.Nodejs ...
- 在存储过程中调用WebService
1 create procedure usp_CallWebServices 2 ( 3 @parameter nvarchar(500)=null 4 ) 5 as 6 Declare @obj i ...
- 【Bootstrap基础学习】05 Bootstrap学习总结
好吧,Copy了几天,这个总结算是把我对Bootstrap的一些理解写一下吧. Bootstrap只是一套别人写好的前端框架,直接拿来用就好. 不过对于专业的前端而言,如果不去把所有的代码都看一遍来理 ...
- 泛函编程(22)-泛函数据类型-Monoid In Action
在上一节我们讨论了Monoid的结合性和恒等值的作用以及Monoid如何与串类元素折叠算法相匹配.不过我们只示范了一下基础类型(primitive type)Monoid实例的应用,所以上一节的讨论目 ...
- 配置了<mvc:resources> 导致以前的controller 无法访问。
解决方案: <mvc:annotation-driven/>
- maven工程导入时解决Cannot change version of project facet Dynamic Web Module to 2.3
解决方法:修改web.xml,在头部加入内容,加入后为: <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q ...
- Google OKR 目标管理体系学习
OKR 全称是「目标和关键成果」(Objectives and Key Results).它是Google在公司创立不足一年的时候,从Intel公司引入的目标管理系统,也常被认为是一套组织测评系统. ...
- 发布ASP.NET Core程序到Linux生产环境
原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...
- saltstack学习笔记1 --安装
salt官网:http://docs.saltstack.cn/zh_CN/latest/ 安装教程: - http://docs.saltstack.cn/zh_CN/latest/topics/i ...