一、Java 程序结构简介

在 Java 中,一个最简单的程序通常如下所示:

package com.demo;

// 类名采用大驼峰命名法
public class Demo29 {
    public static void main(String[] args) {
        System.out.println("Hello, Java!");
    }
}
  • package:声明包路径,便于项目结构化管理。

  • public class:定义类,文件名需与类名相同。

  • main 方法:Java 程序的入口。

二、命名规范:让代码更具可读性

在 Java 项目中,统一的命名风格和注释规范不仅提升了代码的专业性,也方便后期维护与多人协作。以下从两方面规范开发习惯:

1 常见命名规则汇总

类型 命名规则 示例
类名 大驼峰命名法(每个单词首字母大写) FirstSample
方法名 / 变量名 小驼峰命名法(首字母小写) firstSample
常量 全大写 + 下划线分隔 MAX_LENGTH
包名 全小写,通常使用反域名格式 com.qcby.demo

📌 命名风格说明:

  • 大驼峰(PascalCase):类、接口、枚举名

  • 小驼峰(camelCase):变量、方法

  • 全大写(SNAKE_CASE):常量

  • 小写包名:推荐使用组织的反域名结构作为命名前缀

2 文件头注释规范(多行注释)

在企业开发中,每个 Java 类文件开头建议添加标准的多行注释,用于记录作者、修改时间、联系方式及文件用途。规范如下:


/* 多行注释格式示例 
* 代码作者:gAlAxy...
* 维护日期:2025-08-02 
* 联系邮箱:your_email@example.com 
* 此类作用:演示 Java 命名规范与基本语法 
*/

✅ 建议所有类文件、工具类、服务类均添加类似的头部注释,方便后期快速定位作者与用途。


三、Java 的两大类型体系

Java 语言中的数据类型主要分为 基本类型引用类型

1. 基本数据类型(Primitive Types)

Java 提供 8 种基本类型,共分为 4 类:

类型 占用字节 位数/结构 默认值 范围(参考)
整数
byte 1 字节 8 位 0 -128 ~ 127
short 2 字节 16 位 0 -32,768 ~ 32,767
int 4 字节 32 位 0 -2^31 ~ 2^31-1
long 8 字节 64 位 0L -2^63 ~ 2^63-1
浮点数
float 4 字节 1/8/23(IEEE 754) 0.0f 大约 ±3.4×10^38
double 8 字节 1/11/52(IEEE 754) 0.0d 大约 ±1.8×10^308
布尔
boolean JVM 实际使用 4 字节(32 位) false true 或 false
字符
char 2 字节 支持 Unicode 编码 '\u0000' 0 ~ 65535

小知识补充:

  • 布尔型 boolean 为何占 4 字节?
           虽然布尔值本质上只需 1 个 比特(bit) 即可表达(true 或 false),但在 Java 中,JVM 实现中出于内存对齐和效率考虑,将 boolean 类型按 4 字节(32 位)处理。JVM 最小寻址单位为 1 字节(byte),不能精确操作单个位。JVM 内存模型为了加快访问速度,采用对齐方式处理数据(如按 4 字节或 8 字节边界对齐)。 虽然可以压缩多个 boolean 值进 bit 数组,但那样反而牺牲性能。

✅ 结论:boolean 占 4 字节是 JVM 实现层面的设计权衡,保证了兼容性和性能。

  • 浮点数表示方式(IEEE 754 标准)

    • float:1 位符号 + 8 位指数 + 23 位尾数

    • double:1 位符号 + 11 位指数 + 52 位尾数

2. 引用类型(Reference Types)

        引用类型是 Java 中除了基本数据类型外,所有表示对象的类型。它们用于表示更复杂的数据结构和对象。在程序运行时,引用类型变量存储的是对象在内存中的地址(引用),而不是对象本身的值。

简单来说:

  • 基本类型变量直接存储值;

  • 引用类型变量存储对象的内存地址(引用),对象本体存储在堆内存中。

包括:

类型 说明 示例
类(Class) 用户自定义或系统提供的类 Student stu = new Student();
接口(Interface) 用于定义规范和行为 Runnable task = new MyTask();
数组(Array) 存储同类型元素的有序集合 int[] nums = {1, 2, 3};
枚举(Enum) 表示有限的固定值集合 Day day = Day.MONDAY;
字符串(String) 字符序列,特殊的引用类型 String name = "Java";

示例:

// 声明并初始化一个字节数组
byte[] arr = {5, 4, 32, 1};

// 输出数组内容
System.out.println(java.util.Arrays.toString(arr)); // [5, 4, 32, 1]

// 声明字符串
String greeting = "Hello, World!";

// 输出字符串
System.out.println(greeting);

注意:引用类型的默认值为 null


四、变量与常量的定义与使用

1. 变量定义

变量分为两类:局部变量成员变量(全局变量)

public class Demo {
    int a = 10; // 成员变量,具有默认值
    public void test() {
        int b = 5; // 局部变量,必须显式赋值
    }
}

2. 常量定义

final double PI = 3.14159;
  • final 关键字用于定义常量。

  • final 修饰的变量不可再次赋值。

  • 可用于类、方法、参数,常和 static 搭配使用,如:public static final int MAX = 100;

3. final 的高级用法说明

使用位置 限制说明
变量 不可重新赋值(基本类型)
引用类型 不可更改引用指向,但内容可变
方法 不可被子类重写(Override)
不可被继承
多线程场景 保证内存可见性、防止指令重排序


五、基本运算符实践详解

1. 自增运算符的陷阱

int a = 2;
a = a++;  // a 先赋值再自增,a 仍然是 2
a = ++a;  // a 先自增再赋值,a 变成 3
System.out.println(a); // 输出 3

多个赋值连用时,只执行最左边的赋值操作!

2. 除法运算特殊情况

System.out.println(8.0 / 0); // 输出 Infinity 
System.out.println(8 / 0); // 抛出 ArithmeticException
  • 浮点除零不会报错,但会返回正无穷(Infinity)或负无穷。

  • 整型除以零会直接抛出运行时异常。


六、数组的使用与工具类

import java.util.Arrays;

public class Dome0730 {
    public static void main(String[] args) {
        byte[] arr = {5, 4, 32, 1};
        Arrays.sort(arr); // 数组排序
        System.out.println(Arrays.toString(arr)); // 输出:[1, 4, 5, 32]
    }
}

七、小结:学会数据类型,迈好 Java 基础第一步

掌握 Java 数据类型,是理解内存模型、算法效率、程序逻辑的第一步:

  • 理解 基本类型引用类型 的区别。

  • 掌握 变量/常量 的作用与用法。

  • 熟悉 类型默认值、存储结构、转换规则

  • 通过实战代码加强理解,如自增、自除、数组初始化。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐