Java 基础

这篇文章是按照 B 站狂神说的 Java 零基础课程的内容整理的 (实际上就是学习笔记的性质).

希望我能够坚持下去o(≧口≦)o

为了未来能够有一个不需要和别人打太多交道的岗位, 瓦达西要狠狠拼了😤😤.

之前在学校的课里有上过一些 C 语 (学校的课……懂的都懂🙏) 所以入 Java 这个坑应该不会特别困难 (大概……)

但不管怎么说, 为了将来总还是要硬着头皮去学的 (超绝脆弱 INFP 一和人交谈就能直接化成一滩水蒸发说是, 而且以后都是 AI 的时代了, 现在却连其皮毛都并不知晓也很是令人焦虑.) 现在暂且尽量每天的睡前几个小时来学习课程, 功崇惟志, 业广为勤, 愿我能坚持到最后吧.

原此行, 终抵群星.

(这文章会有人看嘛? 但是初学者的文章大抵也没什么营养的吧……)

这一段话是笔记写完了才过来写的,而刚刚惊喜地发现,存放项目的文件夹的创建日期是 3 月 7 日ヾ(≧▽≦*)o

数据类型与转换

Java 是一种强类型语言, 变量需要定义后才能使用.

数据类型

基本数据类型

屏幕截图 2026-03-08 214738

整数: byte, short, int, long (long 类型须在数字后加L) .

​ 分别占用 1B, 2B, 4B, 8B.

浮点数: float, double (float 类型须在数字后加 F) .

​ 分别占用 4B, 8B.

需注意: float 有舍入误差,需避免使用 float 进行比较.

字符: char, String (String 不是关键字, 是一种引用类型) .

char 使用单引号, 而 String 使用双引号.

char letter1 = 'A';
String letter2 = "B";

布尔值: boolean.

​ 表示 "是" 与 "非".

boolean flag = ture;
if(flag == ture){}
if(flag ==) {}//这种写法更常用.

进制

进制 前缀
二进制 0b
八进制 0
十进制 -
十六进制 0x
char character = 'A';
System.out.println((int)character);//加上int可以打印出字符的Unicode编码.(强制转化)

类型转换

由于 Java 是强类型语言, 需要进行类型转化 (将不同类型转为相同类型) .

屏幕截图 2026-03-10 231023

强制转换

, 手动转换.

格式: (类型)变量名

int a = 128;
byte b = (byte) a;

运算中只要有一个变量被转换了, 其他的也会一同被转换.

自动转换

, 自动转换.

int a = 128;
double b = a;

注意

  1. 布尔值不可以参与转换.

  2. 不可以转换成不相干的类型.

  3. 转换中可能会出现内存溢出和精度问题.

System.out.println((int) 12.3); //打印12, 丢失精度.
System.out.println((byte) 128);//打印-128, 内存溢出.

操作大数目时, 需要注意内存溢出.

int num1 = 10_0000_0000;
int num2 = 20;
System.out.println(num1 * num2); //由于内存溢出, 输出-1474836480.
long sum = num1 * (long) num2;//进行一处类型转换.
System.out.println(sum);//顺利打印出20000000000.

变量和常量

变量

Java 的每个变量必须声明其类型后才能使用.

变量是程序中最基本的单元, 包括变量名, 变量类型作用域.

使用 类型 变量名 [=值] 进行定义,可以用逗号隔开以声明多个同类型的变量 (不建议) .

int a = 1, b = 2, c = 3;//为了程序可读性, 不要一行定义多个变量!

变量作用域

局部变量

只能在一个方法里面使用, 必须声明和初始化

方法: 如有public static void main(String[] args), 则有 main方法.

实例变量

从属于对象.

public class Demo {
    int num = 23;
    String char1 = "abc";

    public static void main(String[] args) {
        Demo Demo = new Demo();//new就是在内存中开辟了一块空间,可以对里面的数据进行操作. 
        System.out.println(Demo.num);//打印23.
        System.out.println(Demo.char1);//打印abc.
    }
}

如不初始化, 则会输出默认值 (0, 0.0, ect.)

布尔值的默认值为 false.

除了基本类型, 其他类型默认值均为 null.

类变量

从属于类, 使用 static 进行定义.

static 是一种修饰符, 修饰符不区分前后顺序.

public class Demo {
    static int num = 23;

    public static void main(String[] args) {
        System.out.println(Demo.num);//不需要new便能成功执行.
    }
}

常量

初始化后不能改变值, 可视作一种特殊的变量, 使用final进行定义.

final 也是一种修饰符.

常量名称一般使用大写字母.

命名规则

所有变量, 方法, 类名, 都需要遵循见名知意原则.

类型 大小写 驼峰原则
类成员变量 首字母
局部变量 首字母
常量 全部大写, 使用 _ 分割 -
类名 首字母
方法名 首字母

驼峰原则: 除了第一个单词, 每个单词首字母大写.

运算符

名称类型 符号
算数运算符 +, -, *, /, %, ++, --
赋值运算符 =
关系运算符 >, <, >=, <=, ==, !=, instanceof
逻辑运算符 &&, `
位运算符 &, `
条件运算符 ?, :
扩展赋值运算符 +=, -=, *=, /=

一元运算符只需要一个操作数, 二元, 三元也同理.

运算优先级: 括号最优先, 其次是一元运算符 (多使用括号养成良好习惯).

算数运算符

加, 减, 乘, 除, 模

+, -, *, /, % (模运算, 取余).

  1. 当不同类型一同运算时, 结果的类型取决于最高的类型. 如:

  2. 当结果会出现小数, 需要对结果进行强制转换, 否则只会出现整数.

long a = 100L;
int b = 10;
short c = 1;
System.out.println( a + b + c);//里面是long类型
System.out.println(b + c);//里面是int类型
System.out.println(c / b);//打印0
System.out.println((double) c / b);//打印0.1   

如果+的前面有 String 类型, + 则变成字符串连接运算符,负责把多个字符串连接起来.

System.out.println(10 + 20);//打印30
System.out.println("Hello" + 10 + 20);//打印Hello1020
System.out.println(10 + 20 + "Hello" + 25);//打印30Hello25, 前面的会被运算

需要注意, 在字符串连接运算符前面的式子会先被计算.

自增自减

++ (自增), -- (自减). 两个都是一元运算符.

n++, n-- (先数字, 后符号): 先执行, 后自增/减.

++n, --n (先符号, 后数字): 先自增/减, 后执行.

int a = 1, b = 1;
int result1 = a++;//a=1---先为result1赋值, 然后才自增
int result3 = a;//a=2
int result2 = ++b;//b=2---先给自己自增, 再给result2赋值
int result4 = b;//b=2

比较运算

>, <, >=, <=, ==, != (不等于)

​ 输出的结果为boolean

逻辑运算符

a && b 逻辑与: 全真为真, 一假为假.

a || b 逻辑或: 一真为真,全假为假.

!(c) 逻辑非: 取反. (它是一元运算符).

短路运算

在逻辑与和逻辑非中, 如果第一个值就能确定整个结果, 那么后面的值不会再被计算.

int a = 5;
boolean result = (a < 4) && (a++ < 4);//a=5, result=false

如上: 在第 2 行, 由于 a < 4 的结果必然为 false, 程序便没有往后继续执行 a++, a 仍然为 5.

位运算

按位与 (&): 同真为真, 一假为假.

按位或 (|): 一真为真, 同假为假.

按位非 (~): 取反.

按位异或 (^): 不同则真, 相同则假.

左移(<<): 二进制位向左移动,右侧补 0, 相当于乘 2 的 n 次方.

右移(>>): 二进制位向右移动, 左侧补符号位 (带着符号一起移动), 相当于除 2 的 n 次方.

System.out.println(1 << 1);//00_000_001 ---> 00_000_010 = 2D
System.out.println(1 << 3);//00_000_001 ---> 00_001_000 = 8D
System.out.println(8 >> 2);//00_001_000 ---> 00_000_010 = 2D

由于是直接操作二进制数, 速度于前面的算术运算符, 可以提升计算效率.

扩展赋值运算符

+=, -=, *=, /=

例如: a += b 使 a=a+b, 其他同理.

条件运算符

三元运算符中的一株独苗.

?:, 用法 x ? y = z, 即如果 x==ture, 则 y, 否则 z. 类似 if 语句.

int score = 60;
String type = score < 60 ? "不合格" : "合格";

类似于文件夹, 用于区别类名的命名空间 (使能够重名).

定义格式: package pkg1[. pkg2[. pag3...]];

一般使用公司域名倒置作为包名.

包名不要重复.

引用格式: import pkg1[. pkg2...] (classname), 需要写在 package 的下面.

如:

屏幕截图 2026-03-17 220632

可以使用通配符 * ,导入包内所有的类.

(不要忘了命名规范: 类名大写 TAT)

JavaDoc

用于生成自己的 API 文档. (文档注释)

@auther: 作者名

@version: 版本号

@since: 需使用的最低 JDK 版本

@param: 参数名

@return: 返回值

@throws: 异常抛出情况

/** 回车, 多行注释.

可以写在类里, 给类注释; 也可以写在方法里, 给方法注释.![1773759354252]
屏幕截图 2026-03-17 225444

po一下我推世界一的笑颜 (bushi)

打出 /** 多行注释然后回车时,会根据你写的内容自动帮你补全.

使用命令提示符生成 JavaDoc 文档

把文件在资源管理器打开, 用 cmd 运行javadoc -encoding UTF-8 -charset UTF-8 类名.java, 会在文件夹内生成 index.html 文件. *(中间的参数是使能够正常输出中文)

屏幕截图 2026-03-17 225649

屏幕截图 2026-03-17 225808

index.html 是生成的 Java 文档.

屏幕截图 2026-03-17 230402

使用 IDEA 生成 JavaDoc 文档

  1. 找到工具菜单,点击"生成 JavaDoc"

屏幕截图 2026-03-17 231009

  1. 在对话窗选择生成的文档范围 (作用域), 输出目录, 区域设置 (中文为 zh_CN), 参数(命令行实参:-encoding UTF-8 -charset UTF-8).

屏幕截图 2026-03-17 231503

posted @ 2026-03-18 00:10  令狐澄禮  阅读(48)  评论(0)    收藏  举报