java资料总结:java两种核心机制:JAVA虚拟机,垃圾收集机制。 一个源文件中最多只能有一个pubilc class类 public static void main(String args[]){...} 。。。。。。。。。。。。。。。 ### Java核心机制与基础知识梳理 #### Java虚拟机(JVM) Java虚拟机是Java的核心机制之一,它是一种抽象计算机,负责执行Java字节码。Java程序编译后的字节码文件(.class)可以在任何安装了Java运行环境的平台上运行,这得益于JVM的平台独立性。JVM的主要组成部分包括: - **类加载器(Class Loader)**:负责将.class文件加载到内存中,并对其进行校验、解析和初始化。 - **运行时数据区(Runtime Data Area)**:包括方法区、堆、栈等,用于存储运行时的数据。 - **执行引擎**:解释并执行字节码指令。 - **本地接口(Native Interface)**:允许Java代码调用本地方法库中的函数。 #### 垃圾回收机制(Garbage Collection) 垃圾回收是Java的另一个核心机制,其主要功能是在程序运行过程中自动回收不再使用的对象所占用的内存空间,从而避免内存泄漏问题。Java的垃圾回收机制主要包括以下几个方面: - **标记-清除算法**:最基础的垃圾回收算法,分为“标记”和“清除”两个阶段。 - **复制算法**:将内存分为大小相等的两块,每次只使用其中一块,在垃圾回收时将存活的对象复制到另一块上面,然后再把已使用过的内存空间一次清理掉。 - **标记-整理算法**:标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向一端移动,然后直接清理掉端边界以外的内存。 - **分代收集算法**:基于对象存活周期的不同将Java堆分为新生代和老年代;新生代采用复制算法,老年代则使用标记-清除或标记-整理算法。 #### Java基本语法 - **源文件中的public class数量限制**:在Java中,一个源文件只能包含一个公共类(public class),并且这个公共类的名字必须与源文件的名字完全相同。 - **main方法**:每个Java应用程序都必须有一个主入口点,即`public static void main(String[] args)`方法。这是程序执行的起点。 #### Java数据类型 Java支持多种数据类型,包括原始类型和引用类型两大类: - **原始类型**:包括`boolean`、`char`、`byte`、`short`、`int`、`long`、`float`和`double`。 - `boolean`类型只有两个可能的值:`true` 和 `false`。 - `char`类型用于表示单个字符,使用Unicode编码,占用2字节。 - `byte`、`short`、`int`、`long`分别占用1、2、4、8字节,用于表示整型数值。 - `float`和`double`分别占用4和8字节,用于表示浮点型数值。 - **引用类型**:包括类(Class)、接口(Interface)、数组(Array)等。 #### Java程序结构 - **控制流语句**:如条件判断(`if`, `if-else`, `switch`)、循环(`for`, `while`, `do-while`)等。 - `for`循环可以使用增强型for循环(自JDK 1.5起)。 - `switch`语句在Java中只接受`int`类型的表达式。 - **异常处理**:Java通过try-catch-finally结构来处理异常情况。 - **面向对象特性**:Java支持封装、继承、多态等面向对象编程的基本特性。 #### 类与对象 - **类定义**:类是具有相同属性和行为的对象的集合。在Java中定义类的基本语法如下: ```java public class ClassName { // 类体 } ``` - **对象创建**:通过`new`关键字创建类的实例对象。 ```java ClassName objectName = new ClassName(); ``` - **成员变量与成员方法**:类中的字段称为成员变量,方法称为成员方法。 - **构造器**:用于初始化新创建的对象,构造器的名称必须与类名相同,没有返回类型。 ```java public ClassName() { // 构造器体 } ``` #### 访问修饰符 - `public`:公共访问权限,类及其成员可以被任何其他类访问。 - `protected`:受保护的访问权限,类及其成员可以被同一包内的其他类及不同包的子类访问。 - `默认`(无修饰符):包访问权限,类及其成员只能被同一包内的其他类访问。 - `private`:私有访问权限,类及其成员只能被该类自身访问。 #### 静态关键字(static) - **静态变量**:也称为类变量,属于类而非对象,所有对象共享同一份静态变量。 - **静态方法**:可以直接通过类名调用,不需要创建对象实例。 - **静态代码块**:用于初始化类的静态变量。 #### 包(Package) - **定义**:包是组织Java类的一种方式,可以避免类名冲突。 - **声明**:在一个Java源文件中,如果需要指定该文件所属的包,则必须使用`package`关键字放在文件的开头位置。 ```java package com.example.package_name; ``` - **导入**:使用`import`关键字可以导入其他包中的类或接口,方便使用。 ```java import com.example.package_name.ClassName; ``` 以上内容为Java语言的一些基础知识与核心概念的概述,对于初学者来说非常重要。理解这些概念有助于更好地学习和掌握Java编程语言。
- 粉丝: 2
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Unity In-game Debug Console
- (3292010)Java图书管理系统(源码)
- 新建 Microsoft Word 文档
- (176102016)MATLAB代码:考虑灵活性供需不确定性的储能参与电网调峰优化配置 关键词:储能优化配置 电网调峰 风电场景生成 灵活性供需不
- SINAMICS S120驱动第三方直线永磁同步电机系列视频-配置和优化.mp4
- (175601006)51单片机交通信号灯系统设计
- Starter SINAMICS S120驱动第三方直线永磁同步电机系列视频-调试演示.mp4
- (174755032)抽烟、烟雾检测voc数据集
- 基于滑膜控制的差动制动防侧翻稳定性控制,上层通过滑膜控制产生期望的横摆力矩,下层根据对应的paper实现对应的制动力矩分配,实现车辆的防侧翻稳定性控制,通过通过carsim和simulink联合仿真
- 伺服系统基于陷波滤波器双惯量伺服系统机械谐振抑制matlab Simulink仿真 1.模型简介 模型为基于陷波滤波器的双惯量伺服系统机械谐振抑制仿真,采用Matlab R2018a Simul