【JAVA】从入门到放弃-02-工具、类型、输入输出
1、缩写表
JVM:Java Virtual Machine(Java 虚拟机),是 Java 跨平台的核心,负责执行字节码。
JRE:Java Runtime Environment(Java 运行时环境),包含 JVM 和运行 Java 程序所需的核心类库。
JDK:Java Development Kit(Java 开发工具包),包含 JRE、编译器(javac)、调试工具等,用于开发 Java 程序。
JLS:Java Language Specification(Java 语言规范),定义 Java 语言的语法和特性。
JVM TI:JVM Tool Interface(JVM 工具接口),用于开发监控、调试 Java 程序的工具。
javac:编译工具
java:运行工具
jdb:调试工具
jhat:内存分析工具
开发环境:
运行环境:
2、基本类型
2.1 整数型
1)byte(和C++中char类似)
- 占 1 字节(8 位)
- 取值范围:-128 ~ 127
- 示例:byte age = 25;
2)short
- 占 2 字节(16 位)
- 取值范围:-32768 ~ 32767
- 示例:short score = 95;
3)int(最常用)
- 占 4 字节(32 位)
- 取值范围:-2³¹ ~ 2³¹-1(约 -21 亿~21 亿)
- 示例:int population = 1000000;
4)long(C++中32位硬件,可能占用4字节)
- 占 8 字节(64 位)
- 取值范围:-2⁶³ ~ 2⁶³-1
- 声明时需在数值后加 L 或 l(推荐大写 L 避免与数字 1 混淆)
- 示例:long distance = 1234567890L;
注意:long类型的数值后加L和不加L是不一样的
2.2 浮点类型(小数型)
1)float(单精度浮点型)
- 占 4 字节(32 位)
- 精度较低,适合存储不需要高精度的小数
- 声明时需在数值后加 F 或 f
- 示例:float pi = 3.14F;
2)double(双精度浮点型,最常用)
- 占 8 字节(64 位)
- 精度是 float 的两倍,默认浮点数值的类型
- 示例:double price = 99.99;(可省略 D/d)
2.3 字符类型
char(C++中char为8位)
- 占 2 字节(16 位),采用 Unicode 编码
- 用于存储单个字符(字母、数字、符号等)
- 声明时用单引号 ‘’ 包裹
- 示例:char gender = ‘男’; 或 char letter = ‘A’;(也可直接使用 Unicode 编码:char heart = ‘\u2764’;)
2.4 布尔类型
boolean
- 占 1 位(理论上),实际存储可能占用 1 字节
- 仅用于表示 true(真)或 false(假),常用于条件判断
- 示例:boolean isPass = true;
2.5 内存中存储位置
基本类型:直接存储值本身;
局部变量(方法内声明):存储在栈帧(Stack Frame)中,随方法调用创建,方法结束后自动释放。
实例变量(类中声明,非 static):作为对象的一部分存储在堆内存(Heap)中,随对象创建而分配,垃圾回收时释放。
静态变量(类中声明,带 static):存储在方法区(Method Area)的静态区,随类加载而创建,类卸载时释放。
2.6 引用类型
引用类型(如 String、数组、对象):变量存储的是对象在堆内存中的地址引用,而非值本身;
包装类的影响:如果将基本类型封装为包装类(如 Integer、Double),则会作为对象存储在堆中,变量存储的是对象引用。
栈内存的效率:栈内存的分配和释放速度比堆内存快,因此基本类型的访问效率通常高于引用类型。
默认值:未初始化的基本类型变量有默认值(如 int 为 0),而局部变量必须显式初始化才能使用(否则编译报错)。
空值:null,仅能用于引用类型(如对象、数组、字符串等),不能用于基本类型(int、boolean 等)
3、标识符
标识符的命名规则
- 由数字、字母、下划线_、或美元
$
符组成;(C++中没有$
) - 不能以数字开头
- 不能是关键字
4、输入输出demo
import java.util.Scanner;
public class Demo4Scanner{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入数字");int num = scanner.nextInt();System.out.print("输入的数字是:");System.out.println(num);}
}
1)头文件
java中使用 import 关键字引入头文件,C++中是#include
头文件的语句后也有分号“;”,C++中没有,而是使用大括号<>或者引号标注头文件名
2)输入使用java.util.Scanner
如果输入的是int型数字,输入的数字范围不能太长否则报错:
java Demo4Scanner
请输入数字
1234567890123
Exception in thread "main" java.util.InputMismatchException: For input string: "1234567890123"
System.out.print(); 打印时,没有回车
System.out.println(num); 打印时,有回车
编译、输出
PS D:\java\test> javac .\Demo4Scanner.java
PS D:\java\test> java Demo4Scanner
请输入数字
89787876
输入的数字是:89787876