Java入门基础概念
1 jdk、jre、jvm区别
- jdk: Java Development Kit
- jre: Java Runtime Environment
- jvm: Java Virtual Machine
2 环境配置
- JAVA_HOME: D:\jvm\jdk
- Path: %JAVA_HOME%\bin
- ClassPath: %JAVA_HOME%\lib
Path变量:提供命令路径。
ClassPath变量:提供lib和jar等路径,供Java程序寻找类
。
3 JVM内存划分
JVM对自己的内存进行了划分,分为5个区域:
- 寄存器:内存与CPU之间
- 本地方法栈:JVM调用系统中的功能
- 方法和数据共享:运行时期class文件进入的地方
- 方法栈:所有方法运行时候进入的内存
- 堆:存储容器和对象
注意:代码块结束时,JVM会自动清除空间,不用像C++中使用delete
手动释放空间。
4 Java程序开发步骤
- javac.exe: 编译器
- java.exe: 解释器
5 Java源文件结构
HelloWorld.java
源文件:
public class HelloWorld{ //类名必须和.java源文件名一致
public static void main(String[] args){ //main函数是java程序执行的起点
System.out.println("Hello World!!!");
}
}
6 标识符
- 标识符
程序中自己定义的内容,如类名
、方法名
、变量名
等。 - 命名规则:
硬性要求
- 标识符可以包含
英文字母26个(包含大小写)
、0-9数字
、$(美元符号)
和_(下划线)
。 - 标识符不能以数字开头。
- 标识符不能是关键字。
- 标识符可以包含
- 命名规范:
软性要求
- 类名规范:首字母大写,后面每个单词首字母大写
(大驼峰式)
。HelloWorld
- 变量名规范:首字母小写,后面每个单词首字母大写
(小驼峰式)
。helloWorld
- 方法名规范:同变量名。
(小驼峰式)
- Package名规范:全部小写。
- 类名规范:首字母大写,后面每个单词首字母大写
7 Java数据类型
8 简单输入输出
- 输出
System.out.println(输出内容);
- 输入
import java.util.Scanner;
Scanner sc = new Scanner(System.in); int i = sc.nextInt();
- 随机数
import java.util.Random;
Random ran = new Random(); int i = ran.nextInt(10);
9 数组
- 定义数组
dataType[] arrayName = new dataType[arraySize]
- 数组大小
arrayName.length
- 数组使用示范
代码如下:
public class ArrayDemo{
public static void main(String[] args){
int[] arr1 = new int[3]; //动态初始化,动态指定数组长度
int[] arr2 = new int[]{1,2,4}; //静态初始化1
int[] arr3 = {1,2}; //静态初始化2
System.out.println(arr1); //输出数组地址
System.out.println(arr2[1]); //输出2
System.out.println(arr3.length); //输出2
}
}
程序运行中内存分配:
10 方法
- 方法的定义
修饰符 返回值类型 方法名(参数列表);
如:public static void main(String[] args){ ... }
- 参数传递
- 值传递
public static void change(int a, int b){ a=a+b; b=b+a; }
- 引用传递(地址传递)
public static void change(int [] a, int index){ a[index]=100; }
- 值传递
- 方法重载(overload)
- 方法名相同
- 参数列表不同