一、Java 开发环境与基础语法入门要点
1、JDK、JRE、JVM之间的关系
- JDK,全称是Java Development Kit(java开发工具包)。其中包含了JRE以及一些编译器javac和自带的调试工具Jconsole。
- JRE,全称是Java Runtime Environment(Java运行时环境)。其中包含了JVM以及一些Java基础类库,是Java的语言编写程序运行的所需环境。
- JVM,全称是Java Virtual Machine(Java虚拟机)。是Java运行的核心环境,一次编译到处运行的核心就是因为这个。
2、Java的编译过程
编写好的Java文件通过javac进行编译成.class的字节码文件,在JVM中运行这个字节码文件就会最终得到编写代码的最终结果。
3、变量的命名规则
- 类名采用大驼峰,例如:HelloWorld。
- 变量名/方法名采用小驼峰,例如helloWorld。
二、数据类型与变量
1、数据类型
Java的数据类型一共就分为两大类,基本数据类型和引用数据类型。基本数据类型又分为整型、浮点型、字符型、布尔型。引用类型包括String、Array、Integer等。可以把引用类型理解为是封装好的对象,里面有好多的成员方法供咱们使用!但是这不是最根本的区别!最根本的区别是:引用类型的变量存的是地址,基本数据类型的变量存的是值
(1)基本数据类型
| 数据类型 | 关键字 | 内存占用 | 大小范围 |
|---|---|---|---|
| 字节型 | byte | 1字节 | -128 ~ 127 |
| 短整型 | short | 2字节 | -32768 ~ 32767 |
| 整型 | int | 4字节 | -2^31 ~ 2^31-1 |
| 长整型 | long | 8字节 | -2^63 ~ 2^63-1 |
| 单精度浮点型 | float | 4字节 | - |
| 双精度浮点型 | double | 8字节 | - |
| 字符型 | char | 2字节 | 0 ~ 65535 |
| 布尔型 | boolean | - | true、false |
(2)引用数据类型
| 本类型(值类型) | 对应的引用类型(包装类) |
|---|---|
int |
Integer |
double |
Double |
char |
Character |
boolean |
Boolean |
byte |
Byte |
short |
Short |
long |
Long |
float |
Float |
2、常量与变量
(1)常量
常量是程序运行过程中不能改变的值,被final关键字修饰。
| 类型 | 声明方式 | 命名规范 | 示例 |
|---|---|---|---|
| 字面常量 | 直接写出的固定值 | - | 'a'、3.14、100、true、"abc" |
final常量 |
final修饰的变量 |
全大写,单词间用下划线连接 | final int MAX_SIZE = 100; |
| 静态常量 | public static final 修饰 |
同上(常用于全局配置) | public static final double PI = 3.14159; |
(2)变量
变量其实和其他的语言大差不差,所以我这里就省略了。这里我就想说一些注意的事项。
!NOTE
- 局部变量不初始化,直接打印会报错。
- 长整型数字后面要加上L,例如:100L。
- 类型转换:小范围到大范围->隐式类型转换,反之显式类型转换。
- 计算a+b:计算机运算数据都会先将小于int的转成int然后进行运算。
三、内存布局
| 内存区域 | 存储内容 |
|---|---|
| 堆内存 | 所有对象实例、数组、字符串常量池 |
| 方法区 | 类信息、静态变量、常量 |
| 虚拟机栈 | 局部变量,正在执行的方法 |
| 本地方法栈 | Java 调用非 Java 代码时记录调用信息的地方 |
| 程序计数器 | 当前执行到哪一行代码 |
!NOTE 记住这三句话就够了!
堆里放对象,栈里放变量
静态变量方法区,所有对象共享它
方法调用进栈,方法结束出栈