Skip to content

基本语法

变量声明

变量定义

java
// 声明变量
int age;
// 赋值
age = 25;

// 声明并赋值
String name = "张三";

变量命名规则

  • 由字母、数字、下划线(_)、美元符号($)组成
  • 不能以数字开头
  • 不能使用Java关键字
  • 区分大小写
java
// 合法命名
int age = 25;
String userName = "张三";
double _price = 99.9;
int $count = 10;

// 非法命名
int 1stPlace;      // 不能以数字开头
int class;         // 不能使用关键字
int user-name;     // 不能包含连字符

数据类型

基本数据类型

类型关键字大小取值范围默认值
字节型byte1字节-128 ~ 1270
短整型short2字节-32768 ~ 327670
整型int4字节-2^31 ~ 2^31-10
长整型long8字节-2^63 ~ 2^63-10L
单精度float4字节±3.4E380.0f
双精度double8字节±1.7E3080.0d
字符型char2字节0 ~ 65535'\u0000'
布尔型boolean1位true/falsefalse

整数类型

java
// 十进制
int dec = 100;

// 二进制(Java 7+)
int bin = 0b1100100;  // 100

// 八进制
int oct = 0144;       // 100

// 十六进制
int hex = 0x64;       // 100

// 长整型(后缀L或l)
long bigNumber = 10000000000L;

// 数字下划线分隔(Java 7+)
int million = 1_000_000;
long creditCard = 1234_5678_9012_3456L;

浮点类型

java
// float类型(后缀F或f)
float price = 99.9f;

// double类型(默认,后缀D或d可选)
double salary = 10000.50;
double pi = 3.141592653589793d;

// 科学计数法
double avogadro = 6.022e23;

注意

不要使用浮点数进行精确计算,应使用 BigDecimal

字符类型

java
// 单个字符
char letter = 'A';
char digit = '9';
char chinese = '中';

// 转义字符
char tab = '\t';      // 制表符
char newline = '\n';  // 换行符
char quote = '\'';    // 单引号
char backslash = '\\'; // 反斜杠

// Unicode字符
char unicode = '\u4e2d';  // '中'

布尔类型

java
boolean isTrue = true;
boolean isFalse = false;

// 条件表达式结果
boolean isAdult = age >= 18;
boolean isEmpty = name.isEmpty();

引用类型

字符串

java
String name = "张三";
String greeting = "Hello, " + "World!";

// 常用方法
int length = name.length();           // 长度
char first = name.charAt(0);          // 获取字符
boolean empty = name.isEmpty();       // 是否为空
String upper = name.toUpperCase();    // 转大写
String lower = name.toLowerCase();    // 转小写

数组

java
// 声明数组
int[] numbers;
String[] names;

// 创建数组
numbers = new int[5];
names = new String[3];

// 声明并初始化
int[] scores = {90, 85, 92, 88, 95};
String[] colors = {"红", "绿", "蓝"};

类型转换

自动类型转换(隐式)

从小类型到大类型自动转换:

java
byteshortintlongfloatdouble

       charint
java
int num = 100;
long bigNum = num;     // int → long
double d = bigNum;     // long → double

char c = 'A';
int code = c;          // char → int (65)

强制类型转换(显式)

从大类型到小类型需要强制转换:

java
double d = 99.9;
int num = (int) d;     // 99(小数部分丢失)

long bigNum = 1000L;
int small = (int) bigNum;  // 1000

// 溢出风险
int max = Integer.MAX_VALUE;
int overflow = max + 1;    // 溢出为负数

字符串与基本类型转换

java
// 基本类型 → 字符串
String s1 = String.valueOf(100);
String s2 = String.valueOf(3.14);
String s3 = String.valueOf(true);
String s4 = 100 + "";  // 简单方式

// 字符串 → 基本类型
int num = Integer.parseInt("100");
long bigNum = Long.parseLong("1000000");
double d = Double.parseDouble("3.14");
boolean b = Boolean.parseBoolean("true");

常量

final关键字

java
// 常量定义(通常大写)
final double PI = 3.14159;
final int MAX_SIZE = 100;
final String APP_NAME = "MyApp";

// 常量不能重新赋值
PI = 3.14;  // 编译错误

常量类

java
public class Constants {
    public static final String APP_NAME = "MyApp";
    public static final String VERSION = "1.0.0";
    public static final int MAX_CONNECTIONS = 100;
}

// 使用
String name = Constants.APP_NAME;

变量作用域

java
public class ScopeDemo {
    // 类变量(静态变量)
    static int classVar = 100;
    
    // 实例变量(成员变量)
    int instanceVar = 200;
    
    public void method() {
        // 局部变量
        int localVar = 300;
        
        if (true) {
            // 块级变量
            int blockVar = 400;
            System.out.println(localVar);  // 可访问
        }
        
        // blockVar 不可访问
        System.out.println(classVar);      // 可访问
        System.out.println(instanceVar);   // 可访问
    }
}

完整示例

java
public class DataTypeDemo {
    public static void main(String[] args) {
        // 基本类型
        byte age = 25;
        short year = 2024;
        int population = 1_400_000_000;
        long worldPopulation = 8_000_000_000L;
        
        float price = 99.9f;
        double salary = 10000.50;
        
        char grade = 'A';
        boolean isStudent = true;
        
        // 引用类型
        String name = "张三";
        int[] scores = {90, 85, 92};
        
        // 输出
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        System.out.println("成绩等级: " + grade);
        System.out.printf("工资: %.2f%n", salary);
    }
}