2911 字
15 分钟

Java基础

2026-02-06
浏览量 加载中...

Java概述#

Java 语言是面向对象的(oop)、有跨平台性(一次编译到处运行)

Java 技术体系平台

  • JavaSE(Java Standard Edition)标准版
  • Java EE(Java Enterprise Edition)企业版
  • Java ME(Java Micro Edition)小型版

Java 语言是解释型的

  • 解释性语言:javascript,PHP,java

  • 编译性语言/ c++

    • 区别是:解释性语言,编译后的代码。不能直接被机器执行,需要解释器来执行,
      编译性语言,编译后的代码,可以直接被机器执行,c/c++

Java 核心机制-Java 虚拟机 [JVM java virtual machine]

基本介绍:JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器,包含在JDK 中。对于不同的平台,有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行“。

什么是JDK,JRE

  • JDK = JRE + 开发工具集(例如 Javac,java 编译工具等)
  • JRE = JVM+ Java SE 标准类库(java 核心类库)
  • 如果只想运行开发好的.class 文件 只需要 JRE

javac :命令对该 java 文件进行编译, 生成 .class 文件。
java : 命令对生成的 class 文件进行运行

Java常用转义字符

转义序列含义描述
​‘​单引号用于在字符常量’ ‘​或字符串中包含单引号。
​“​双引号用于在字符串” “​中包含双引号。
​\​反斜杠表示一个实际的反斜杠字符\​。
​\n​换行符将光标移动到下一行的开头(Line Feed)。
​\r​回车符将光标移动到当前行的开头(Carriage Return)。
(注:Windows 换行通常是\r\n​,Unix/Linux/macOS 通常是\n​)
​\t​制表符插入一个水平制表符(Tab),通常相当于 4 或 8 个空格。
​\b​退格符将光标向后移动一格(Backspace)。
​\f​换页符用于打印机控制,表示换页(Form Feed)。
​\0​空字符ASCII 码为 0 的字符(Null),常用于 C 风格字符串结尾,Java 中较少直接使用。

初学java易犯错误

  • 找不到文件:源文件名不存在或者写错,或者当前路径错误
  • 主类名和文件名不一致:声明为public的主类应与文件名一致,否知编译失败
  • 缺少分号:编译失败,注意错误出现的行数,再到源代码中指定位置改错。

注释

  • 单行注释 //
  • 多行注释 /* */
  • 文档注释 /** */

变量#

变量的注意事项:

  • 变量表示内存中的一个存储区域不同的变量,类型不同,占用的空间大小不同
  • 变量必须先声明,后使用,即有顺序
  • 变量在同一个作用域内不能重名
  • 变量=变量名+值+数据类型,这一点请大家注意。变量三要素

数据类型#

基本数据类型:

类型关键字位数 (bit)字节 (byte)取值范围默认值说明
整数型​byte​81-128 ~ 127​0​最小整数类型,常用于节省内存数组
​short​162-32,768 ~ 32,767​0​较少使用
​int​324-2³¹ ~ 2³¹-1​0​最常用的整数类型
​long​648-2⁶³ ~ 2⁶³-1​0L​用于大整数,字面量需加L​
浮点型​float​324约 ±3.4E38 (7位有效数字)​0.0f​单精度,字面量需加F​
​double​648约 ±1.8E308 (15-17位有效数字)​0.0d​最常用的浮点类型
字符型​char​162​\u0000​~\uffff​(0 ~ 65535)​‘\u0000’​存储单个 Unicode 字符
布尔型​boolean​--​true​或false​​false​仅用于逻辑判断,大小由 JVM 决定

java数据类型分为两大类基本数据类型,引用类型

  • 基本数据类型有8种:
    数值型:[byte,short,int,long,float,double]
    字符型:char
    布尔型:boolean
  • 引用类型[类,接口,数组]

JavaAPI文档#

网站:

下载

基本数据类型转换#

自动类型转换

  • 规则:byte → short → char → int → long → float → double

  • byteshortintlongfloatdouble
    char
  • 细节:

    • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
    • 当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。
    • (byte,short)和char之间不会相互自动转换。
    • byte,short,char 他们三者可以计算,在计算时首先转换为int类型。
    • boolean不参与转换
    • 自动提升原则:表达式结果的类型自动提升为 操作数中最大的类型

强制类型转换

  • 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成精度降低或溢出,格外要注意。

  • 目标类型 变量名 = (目标类型) 原值;
  • 细节:当进行数据的大小从大一一>小,就需要使用到强制转换

  • 强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级

  • char类型可以保存int的常量值,但不能保存int的变量值,需要强转

  • byte和short,char类型在进行运算时,当做int类型处理。

基本数据类型和 String 类型的转换#

基本类型转String类型
语法:将基本类型的值+即可

String类型转基本数据类型【体验】
语法:通过基本类型的包装类调用parseXX方法即可

运算符#

算术运算符、赋值运算符、关系运算符 [比较运算符]、逻辑运算符、位运算符 [需要二进制基础]、三元运算符

算数运算符#

运算符运算范围结果
+正号+77
-负号b=11; -b-11
+9+918
-10-82
*7*856
/9/91
%取模(取余)11%92
++自增(前):先运算后取值
自增(后):先取值后运算
a=2;b=++a;
a=2;b=a++;
a=3;b=3
a=3;b=2
自减(前):先运算后取值
自减(后):先取值后运算
a=2;b=—a;
a=2;b=a—;
a=1;b=1
a=1;b=2
+字符串相加”hsp”+“edu""hsp edu”

细节说明:

  1. 对于除号 ”/“,它的整数除和小数除是有区别的

  2. 当对一个数取模时,可以等价表示为:a % b = a - (a / b) * b​

    示例:11 % 9 = 11 - (11/9)9 = 11 - 19 = 2​

  3. 当自增当做一个独立语句使用时,不管是 ++i;​ 还是 i++;​ 都是一样的,等价于:→ i = i + 1;​

  4. 当自增当做一个表达式使用时,
    ​j = ++i​ 等价于:→ i = i + 1; j = i;​
    ​j = i++​ 等价于:→ j = i; i = i + 1;​

关系运算符#

运算符运算范例结果
==相等于8 == 7false
!=不等于8 != 7true
<小于8 < 7false
>大于8 > 7true
<=小于等于8 <= 7false
>=大于等于8 >= 7true
​instanceof​检查是否是类的对象”hsp” instanceof Stringtrue

细节说明:

  1. 关系运算符的结果​都是boolean 型,也就是要么是 true,要么是 false。
  2. 关系运算符组成的表达式,我们称为关系表达式。a>b
  3. 比较运算符”==“不能误写成”=“

逻辑运算符#

aba & ba && ba | ba | b!aa ^ b
truetruetruetruetruetruefalsefalse
truefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse
运算符名称类型说明
​&​按位与 / 逻辑与位运算/逻辑两边都为 true 才返回 true;无短路
​&&​短路与逻辑运算左边为 false 时右边不执行,直接返回 false
​|​按位或 / 逻辑或位运算/逻辑任一边为 true 就返回 true;无短路
​|​短路或逻辑运算左边为 true 时右边不执行,直接返回 true
​!​逻辑运算取反
​^​异或位运算/逻辑两边不同为 true,相同为 false

💡 注意:

虽然 &​, |​, ^​ 可用于布尔值作逻辑运算,但它们也常用于整数的位运算。

而 &&​, ||​ 仅用于布尔逻辑,且具有“短路”特性。

📌 记忆口诀:

“与要全真才为真,或有一真即为真;
非是取反很简单,异或不同才是真;
短路运算效率高,左边决定右不跑!”

赋值运算符#

运算符名称
=基本赋值
+=加后赋值
-=减后赋值
*=乘后赋值
/=除后赋值
%=取模后赋值
&=按位与后赋值
|=按位或后赋值
^=按位异或后赋值
<<=左移后赋值
>>=右移后赋值
>>>=无符号右移后赋值

三元运算符#

条件表达式 ? 表达式 1: 表达式 2;

运算规则:

  1. 如果条件表达式为 true, 运算后的结果是表达式 1;
  2. 如果条件表达式为 false, 运算后的结果是表达式 2;

运算符优先级(熟悉即可)#

优先级运算符类型结合性示例
1​()​ []​ .​括号、数组索引、成员访问左 → 右​obj.method()​,arr[0]​
2​expr++​ expr—​后缀自增/自减左 → 右​i++​,count—​
3​++expr​ —expr​ +​ -​ ~​ !​ (type)​前缀操作符、正负号、按位非、逻辑非、强制类型转换右 → 左​++i​,-x​,!flag​,(int)y​
4​*​ /​ %​乘、除、取模左 → 右​a * b​,x % 3​
5​+​ -​加、减左 → 右​a + b​,x - 1​
6​<<​ >>​ >>>​移位运算左 → 右​x << 2​,y >>> 1​
7​<​ >​ <=​ >=​ instanceof​关系运算左 → 右​a > b​,obj instanceof Class​
8​==​ !=​相等性判断左 → 右​x == 5​,a != b​
9​&​按位与左 → 右​a & b​
10​^​按位异或左 → 右​a ^ b​
11​|​按位或左 → 右​a | b​
12​&&​逻辑与左 → 右​a && b​
13​|​逻辑或左 → 右​a | b​
14​? :​三元条件运算符右 → 左​cond ? a : b​
15​=​ +=​ -=​ *=​ /=​ %=​ &=​ ^=​ |=​ <<=​ >>=​ >>>=​赋值运算右 → 左​x = 5​,sum += i​

标识符命名规则和规范#

标识符概念:

  1. Java 对各种变量、方法和类等命名时使用的字符序列称为标识符
  2. 凡是自己可以起名字的地方都叫标识符intnum1=90;

标识符的命名规则(必须遵守)

  • 只能包含:字母(A-Z, a-z)、数字(0-9)、下划线(_​)和 美元符号($​)。
  • 不能以数字开头,不可以使用关键字和保留字,但能包含关键字和保留字。
  • 标识符不能包含空格。长度没有限制

软性规范(行业最佳实践)

命名风格(驼峰命名法)

  1. 大驼峰命名法:类名、接口名、枚举名、注解名
  2. 小驼峰命名法:方法名、变量名、参数名
  3. 常量名:全大写 + 下划线分隔
  4. 包名 (Package):全小写 + 点号分隔

特殊场景规范

  1. 测试类:通常以被测试类名 + Test​ 结尾
  2. 异常类:以 Exception​ 或 Error​ 结尾
  3. 实现类:若接口名为 XxxService​,实现类通常为 XxxServiceImpl​

Java相关基础知识#

进制#

二进制:0,1,满2进1.以0b 或0B 开头

十进制:0-9,满10进1

八进制:0-7,满8进1.以数字0开头表示

十六进制:0-9 及 A(10)-F(15),满16 进1.以0x或0X开头表示。此处的 A-F 不区分大小写

进制的转换

  1. 二进制转十进制:
    规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。
    案例:0b1011 → 十进制

    0b1011 =
    = 1*1 + 1*2 + 0*4 + 1*8
    = 1 + 2 + 0 + 8 = 11
  2. 八进制转十进制:
    规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和。
    案例:0234 → 十进制

    0b1011 =
    = 1*1 + 1*2 + 0*4 + 1*8
    = 1 + 2 + 0 + 8 = 11
  3. 十六进制转十进制:
    规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。
    案例:0x1A3 → 十进制

    0x1A3 =
    = 3×16+ A×16¹ + 1×16²
    = 3×1 + 10×16 + 1×256 = 3 + 160 + 256 = 419

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Java基础
https://blog.tsh520.cn/posts/java笔记本/java基础/
作者
团子和蛋糕
发布于
2026-02-06
许可协议
CC BY-NC-SA 4.0
最后更新于 2026-02-06,距今已过 41 天

部分内容可能已过时

评论区

Profile Image of the Author
团子和蛋糕
团子喜欢吃蛋糕!
公告
如果你喜欢,那么欢迎来到我的世界!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
23
分类
7
标签
14
总字数
85,228
运行时长
0
最后活动
0 天前

目录