HelloWorld 示例

编写第一个Java程序:

class HelloChina {
    public static void main(String[] args) {
        System.out.println("你好,世界!");
    }
}

编译和运行步骤

  1. 编译:使用 javac 命令编译 Java 源文件:

    javac HelloChina.java
  2. 生成的字节码文件:编译后会生成一个名为 HelloChina.class 的字节码文件。

  3. 运行:使用 java 命令运行字节码文件:

    java HelloChina

中文编码问题

如果使用中文输出,需将编码设置为 ANSI(GBK),以避免中文字符乱码问题。

Java 基础

在Java中,是构造程序的基本单位,定义类的语法格式如下:

class 类名 {
    // 类的成员变量
    // 类的成员方法
}

主方法(Main Method)

每个 Java 程序都必须包含一个 main 方法,作为程序的入口点。其固定格式如下:

public static void main(String[] args) {
    // 程序执行的代码
}

控制台输出

在Java中,可以使用 System.out.printlnSystem.out.print 进行控制台输出:

示例:

System.out.println("Hello, World!"); // 输出后换行
System.out.print("Hello");           // 输出不换行
System.out.print(" World!");         // 输出继续在同一行

注意事项

Tips

以下是整理并补充后的Java数据类型学习笔记,格式为Markdown:

基本数据类型

Java中有8种基本数据类型,它们可以分为四类:

  1. 整型

    • byte:1字节,范围 -128 ~ 127
    • short:2字节,范围 -32,768 ~ 32,767
    • int:4字节,范围 -2^31 ~ 2^31-1(常用)
    • long:8字节,范围 -2^63 ~ 2^63-1(需在数值后加L,如123L
  2. 浮点型

    • float:4字节,精度较差,需在数值后加F,如12.3F
    • double:8字节,双精度,表示范围更大(默认浮点型为double
  3. 字符型

    • char:2字节,用于表示单个字符,支持 Unicode 编码(例如:char c1 = '中';
  4. 布尔型

    • boolean:只能取 truefalse,占4字节(与int相同)

image (11)

image (12)

image (13)

浮点型的精度问题

示例:

int radius = 1;
double radius2 = 1.5;

字符型(char)

布尔类型(boolean)

数据类型的运算

自动类型提升

在运算时,数据类型可以自动进行类型提升。当不同类型的数据一起运算时,较小范围的类型会自动提升为较大范围的类型:

强制类型转换

如果需要将大容量的类型转换为小容量类型,必须使用强制类型转换,但这可能会丢失数据:

特别说明

示例:

long l1 = 123L; // long 类型常量,需要加 L
long l2 = 123;  // int 类型常量,自动类型提升为 long

byte b3 = 20;
byte b4 = b3 + 1; // 报错,因为 b3 + 1 的结果是 int,需要使用 int 接收

数据类型练习题

image (15)

特殊注意:

示例:

System.out.println('a' + 1 + "Hello!"); 
// 输出为 98Hello! 因为 'a' 的 ASCII 码为 97,97 + 1 = 98

引用数据类型

String 类属于引用数据类型,用于表示字符串。

image (16)
image (17)
image (18)

image (14)

Java 数据类型学习笔记

进制转换

常见进制

Java 中可以使用不同的进制表示数值:

image (19)
image (20)

进制转换规则

在Java程序中,编写时可以使用不同的进制,但编译和运行的结果将以十进制展示

了解即可

进制转换在 Java 编程中不是重点,了解即可。主要的进制操作包括将不同进制的数字转换为十进制结果。

image (21)

Java 中的数据类型分为两大类:基本数据类型引用数据类型

1. 基本数据类型

Java 提供了 8 种基本数据类型,它们直接存储在栈(stack)内存中。这 8 种类型可以分为四类:

2. 引用数据类型

引用数据类型包括类(class)、接口(interface)、数组(array)等。它们的值是对象的内存地址,而不直接存储对象的实际内容。

3. 自动类型提升(Widening Primitive Conversion)

自动类型提升是指当不同数据类型混合运算时,系统会自动将较小的数据类型提升为较大的数据类型,以确保运算的正确性。

自动类型提升遵循以下规则:

例子

int a = 10;
double b = 5.5;
double result = a + b;  // int 类型 a 自动提升为 double
System.out.println(result);  // 输出 15.5

在上述例子中,int 类型的变量 a 被自动提升为 double 类型,然后与 double 类型的 b 进行运算。

4. 强制类型转换(Narrowing Primitive Conversion)

强制类型转换是指当需要将一个较大的数据类型转换为较小的数据类型时,必须显式地进行转换。因为可能会丢失精度或溢出,因此需要开发者使用显式的转换语法。

语法

目标类型 变量名 = (目标类型) 原始变量;

例子

double d = 9.78;
int i = (int) d;  // 强制类型转换,将 double 转为 int
System.out.println(i);  // 输出 9(小数部分被舍弃)

在这个例子中,double 类型的 d 被强制转换为 int 类型,结果是去掉了小数部分,只保留了整数部分。

5. 自动类型提升与强制类型转换的应用

自动类型提升:

byte b = 42;
char c = 'A';
int i = b + c;  // byte 和 char 被提升为 int
System.out.println(i);  // 输出 107 ('A' 的 Unicode 值为 65)

强制类型转换:

long l = 1000L;
int i = (int) l;  // 强制将 long 转为 int
System.out.println(i);  // 输出 1000

原码、反码与补码

在二进制系统中,负数的表示方式有三种:

image (22)
image (23)

例如,对于一个负数 -5

在Java中,所有负数的表示和计算都是通过补码来实现的。

Java 学习笔记

书写规范

Java 注释

Java 提供了三种类型的注释,用于解释代码或生成文档:

  1. 单行注释:使用 //,表示一行注释,后面的内容不会被编译执行。

    // 这是单行注释
  2. 多行注释:使用 /* */,可以跨多行书写注释,适合解释较长的代码段。

    /* 这是多行注释
       可以跨越多行 */
  3. 文档注释:使用 /** */,用于生成 Java 文档(API文档)。文档注释常用于类、方法等,并可以包含一些特殊标记。

    /**
    * @author 作者名
    * @version 1.0
    * 这是文档注释,可以生成网页形式的API文档。
    */

image (24)

Java API 文档

Java 提供了强大的 API文档(Application Programming Interface),包含了所有 Java 类库、方法的详细说明。你可以通过文档注释的方式,在编写代码时自动生成类似的网页文档,方便使用者了解代码结构和功能。

生成的文档可以通过浏览器查看,方便阅读和共享。

JVM(Java虚拟机)

Java 的 JVM(Java Virtual Machine)是其核心部分,负责将编译后的字节码(.class 文件)解释为机器指令执行。JVM具有以下特点:

  1. 跨平台性:Java 语言具有“编写一次,处处运行”的特性,因为不同平台只需要提供不同的 JVM 实现。字节码文件在各个平台的 JVM 上都可以运行。

  2. 自动内存管理:Java 通过垃圾回收机制(Garbage Collection, GC)自动管理内存分配和回收,开发者无需手动释放内存,减少了内存泄漏的风险。

  3. 无指针:与 C、C++ 等语言不同,Java 没有直接操作内存的指针,避免了很多指针引发的错误,提高了代码的安全性。

JVM 提供了一个封闭、隔离的运行环境,增强了程序的安全性和跨平台性。

特殊字符

在Java中,常用的转义字符有:

推荐书籍

在学习 Java 的过程中,以下书籍是非常经典和推荐的:

  1. 《Java核心技术》(Core Java)
    适合入门及中级开发者,全面讲解了 Java 基础、面向对象编程及相关技术。

  2. 《Effective Java》
    高级 Java 编程的最佳实践,书中列举了很多使用 Java 时应当遵循的规则和技巧,适合进阶开发者。

  3. 《Java编程思想》(Thinking in Java)
    深入分析了 Java 的面向对象特性及高级编程技术,是很多开发者必读的经典书籍。

  4. 《剑指Java》
    侧重于面试准备,涵盖了Java编程的各个方面,适合有一定基础、准备面试的开发者。

图形化用户界面(GUI)和命令行界面(CLI)

图形化GUI

Java 提供了多种工具来开发图形化用户界面(GUI),例如:

命令行CLI

在学习 Java 编程时,命令行界面(CLI)也是非常重要的。命令行操作可以帮助编译、运行程序,管理文件等。

常用 DOS 命令

在 Windows 系统下,常用的 DOS 命令有:

这些命令在使用命令行编译、运行 Java 程序时非常实用,有助于提高开发效率。