java学习笔记(3):java的工作原理及相关基础

一.运行机制

如上图所示,图中内容即为Java的运行机制:

1.我们一开始所编写的代码文件存储格式为(如text.java)文件,这就是源程序文件

2.在Java编辑器的作用下,也就是就行了编译,形成字节码文件(如text.class)文件,其实,这个Java编译器是我们所说的Java虚拟机,其中,在命令行的处理方式如下:

要在当前文件目录下打开命令行进行编译

3.之后class文件经过类装载器、字节码校验器、解释器的处理,就变成了1010010……的二进制形式了,通过操作系统平台将结果显示在屏幕上。

  Java文件的运行:

  

二.相关概念

1.Java虚拟机(Java virtual machine,JVM):Java虚拟机可以理解成一个以字节码为机器指令的CPU;对于不同的运行平台,有不同的虚拟机;Java虚拟机机制屏蔽了底层运      行平台的差别,真正实现了“一次编译,随处运行”。

2.Java垃圾回收(Garbage Collection):在C/C++等语言中,由程序员负责回收无用的内存;而Java提供一种系统级线程跟踪存贮空间的分配情况,并在JVM空闲的时候,检查    并释放那些可以被释放的内存空间;垃圾收集在java程序运行过程中自动进行,程序员无法控制和干预。

3.JDK(Java development Kits):软件开发工具包,是Java开发的核心,包含了Java的开发环境、Java工具和Java基础的类库。

 

4.JDK配制时的路径作用说明

(1)CLASS_PATH:告诉Java执行环境JVM(Java虚拟机),在哪些目录下可以找到您所要执行的Java程序所需要的类或者包.

(2)PATH:作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序

5.JRE(Java Runtime Environment):运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

6.API(Application Programming Interface):应用程序接口,一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访     问源码,或理解内部工作机制的细节。

时间: 2024-12-20 02:38:31

java学习笔记(3):java的工作原理及相关基础的相关文章

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

Java学习笔记(Java语言规范,API,JDK,IDE)

Java语言规范:java.sun.com/docs/books/jls 三个版本的API:J2SE J2EE J2ME 1. J2SE 客户端独立应用程序或者applet 2. J2EE 服务端应用程序 [Java Servlets&JavaServer Page] 3. J2ME 移动设备变成 JDK为Java开发提供一个开发环境(IDE) Java学习笔记(Java语言规范,API,JDK,IDE)

java学习笔记(Core Java) 8 泛型

泛型一.定义一个泛型类public class Pair<T>{ private T _first; public Pair(T first) {this._first = first;} public T getfirst() {return _first;}}java中类型变量使用大写字母且比较短E:元素类型 K,V 表的关键字与值的类型 T(U/S)任意类型 泛型方法:要么返回类型是泛型,要么参数是泛型public static <T> getMiddle(T... a){

java学习笔记1——java环境的搭建

1.java的安装路径最好没有中文和空格,因为如果有中文或者空格,在以后的编译过程中很容易出现莫名其妙的错误 2.安装java的过程中,安装好jdk后弹出安装JRE的界面,此时不用继续安装直接退出即可,因为JDK包含JRE,就算再装JRE,也是与JDK中的JRE是一样的 3.java环境搭建的原因,是为了方便程序编译的时候可以直接在DOS命令中输入java相关的命令就可以直接调用,而不需要每次都要尽到java命令所在的目录,因为当你输入此命令时,windows会找两次,第一次在你输入的目录中寻找

Java学习笔记-7.Java IO流

一.输入/输出流 1.流:不同类型的输入.输出源    数据流:输入或输出的数据 Java数据流的所有接口和类都是在java.io包中定义的,因此应在程序开头加入 import java.io.* 2.流的分类: (1)从流的流动方向来看,可以将IO流分为输入流和输出流 输入流:数据信息从某个地方流向程序中 输出流:数据信息从程序中发送到某个目的地 (2)从流的数据处理单位来看,可以将IO流分为字节流和字符流 字节流:以字节方式处理的二进制数据 字符流:以字符方式处理的数据流(Java使用Uni

汇编学习笔记02(寄存器CPU工作原理)

1. 什么是寄存器呢? 就是可以用指令进行读写的部件. 程序员通过改变各种寄存器中的内容实现对CPU的控制. 如果是16位CPU的话, 就是相当于2个存储单元. 2. 字在寄存器中的存储? 8086CPU可以一次性处理两种尺寸的数据 Byte: 字节型数据, 一个字节由8个bit组成, 可以存在8位寄存器中. Word: 字型数据, 一个字型由16个bit组成, 也就是两个字节, 称为这个字的高位字节和低位字节. 3. 常用汇编指令的学习(需要注意的是汇编指令是不区分大小写的) mov ax,

Java学习笔记-6.Java异常处理

一.异常简介 1.异常:程序在运行过程中有时会出现一些意外的情况导致程序退出的情况 2.一个异常是由一个对象来表示的,所有的异常都直接或间接地继承自Throwable接口 Throwable接口是类库java.lang包中的一个类,它派生出两个子类:Error 和 Exception (1)Error类主要用来描述一些Java运行时系统内部的错误或资源枯竭导致的错误,此类错误一般由系统进行处理,一般程序本身不需要捕获和处理 (2)Exception类分为RuntimeException异常 和

java学习笔记(Core Java) 9 泛型

集合接口一.引言:接口与实现分离,使用队列举例//提供接口规范interface Queue{...}//具体实现class LinkedListQueue<E> impements Queue<E> {...}class CircularArrayQueue<E> impements Queue<E> {...} Queue<Customer> e = new LinkedListQueue<Customer> 二.迭代器1.集合类

Java学习笔记-2.Java语言基础

一.命名规则 1.Java标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都被称为标识符. 关于Java标识符,有以下几点需要注意: 所有的标识符都应该以字母(A-Z或者a-z),美元符($).或者下划线(_)开始 首字符之后可以是任何字符的组合 关键字不能用作标识符 标识符是大小写敏感的 合法标识符举例:age.$salary._value.__1_value 非法标识符举例:123abc.-salary 2.注意: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hell