🏠HelloWorld小案例
步骤:
- 创建一个名为HelloWorld文本文档,将后缀名.java
- 打开文件,在里面写点内容:
```java class HelloWorld { public static void main(String[] args) { System.out.println(“约吗”); } }
1.什么地方加空格,什么地方加. 2.什么地方大写,什么地方小写 3.什么地方用{},什么地方用[],什么地方用()
3. 将HelloWorld.java文件放入到jdk安装的目录中的bin目录中
3. 编译<br />如何编译?<br />需要使用javac.exe编译工具<br />格式:javac HelloWorld.java<br />编译完之后,会生成一个新的文件,叫做HelloWorld.class
3. 运行<br />如何运行?<br />需要使用java.exe运行工具<br />格式:java HelloWorld
<a name="88ece357"></a>
# 🔪注释
> 注释是对代码的解释和说明文字。Java中的注释分为三种。
<a name="vnvKF"></a>
## 注释的分类
1. 单行注释:
`//注释的内容`
2. 多行注释:
`/*注释的内容*/`
3. 文档注释:
`/**注释的内容*/`<br />文档注释一般是生成帮助文档用的
快捷键:<br />单行注释:ctrl+/<br />多行注释:ctrl+shift+/
<a name="OqPO6"></a>
## 注释的作用
1. 用来解释说明,提高了代码的阅读性
1. 可以帮助我们查找错误
<a name="UVj4b"></a>
## 注释的注意事项
1. 单行注释可以嵌套
1. 多行和文档注释都不能嵌套使用。
<a name="071a46fc"></a>
# 💣关键字
> 被Java语言赋予了特殊含义,用作专门用途的字符串(单词)的单词,这些关键字不能用于常量、变量、和任何标识符的名称。
💡 关键字的特点:
- 关键字的字母全部小写。
- 常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的public、class、static等。
- main不是关键字

<a name="56fa84eb"></a>
# 🔦标识符
> 用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列称为标识符,简单来说就是我们自己起的名字。
<a name="GM030"></a>
## Java中标识符的组成规则
1. 由字母、数字、下划线“_”、美元符号“$”组成,长度不受限制。
1. 第一个字符不能是数字字符。
1. 不能使用java中的关键字作为标识符。也不能是true、false、null。
1. 标识符对大小写敏感(区分大小写)。
<a name="PxY3R"></a>
## 标识符的两种命名方式
针对不同类型的标识符用不同的命名方式,以下是两种常用的命名方式:
1. **小驼峰式命名:首字母小写,从第二个单词开始每个单词的首字母大写。**
1. 例如:name、userName、studentNumber
2. **大驼峰式命名:每个单词的首字母都大写。**
1. 例如:ChinaMade、WaterLake等。
不同场合不同使用:
- **包名:全部小写,多级包用.隔开。**
举例:com.jourwon,com是公司,也是行业规定。
- **类、接口:大驼峰命名**
举例:Student,Car,HelloWorld
- **方法和变量:小驼峰式命名**
举例:age,maxAge,show(),getAge()
- **常量:如果是一个单词,所有字母大写,如果是多个单词,所有的单词大写,用下划线区分每个单词。**
举例:DATE,MAX_AGE
- **项目名:全部用小写字母,多个单词之间用横杆-分割。**
举例:demo,spring-boot
<a name="af7c4e3e"></a>
# 🔮常量
> 在程序执行的过程中,其值不可以发生改变的量。

<a name="Yz8DQ"></a>
## 字符串常量
"a", "ab", "123", "abc123", "约吗", ""
注意:
1. 字符串常量是必须用双引号括起来的
1. 双引号里面可以有一个数据,可以有多个数据,可以没有数据
<a name="zgj4B"></a>
## 字面值常量
- 整数常量
1, 2, 12
- 小数常量
3.14, 1.2
- 字符常量
'a', 'b', '1', '#', '在', ' ' 都是字符常量<br />'abc', '' 不是字符常量
注意:
1. 字符常量是必须用单引号括起来的
1. 引号里面有且只能有一个字符
<a name="taAql"></a>
## 布尔常量
只有2个值<br />true、false
<a name="kxjnN"></a>
## 空常量
只有一个值:null
自定义常量(以后学)
<a name="aTLqy"></a>
## 注意事项
- 除空常量外,其他常量均可使用输出语句直接输出。
- 在定义常量时就需要对该常量进行初始化。
- final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
- 为了与变量区别,常量取名一般都用大写字符。
<a name="68a240a2"></a>
# 🛡Java进制
> 进制也就是进位计数制,是人为定义的带进位的计数方法。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。生活中常用的是十进制
<a name="wNW7p"></a>
## Java中的进制的分类
- 十进制:逢十进一,正常写
12, 5, 123<br />10
- 二进制:逢二进一,0b
0101010<br />0b10
- 八进制:逢八进一,0
1234, 12<br />010
- 十六进制:逢十六进一,0x
10 -> A<br />11 -> B<br />12 -> C<br />13 -> D<br />14 -> E<br />15 -> F<br />123AB<br />0x10
在计算机中,数据最终都会变成二进制,也就是由多个1或者多个0来组成的,而每一个1或者0都称为一个位,也叫做1bit。
注意:在计算机中进行存储和运算的最小单位是字节(byte)<br />1byte = 8bit<br />1KB = 1024byte<br />1MB = 1024kb<br />1GB = 1024MB<br />1TB = 1024GB
<a name="hOjph"></a>
## 进制转换
<a name="QSYkI"></a>
### 二进制转十进制
> 8421码方法为:把二进制数按权展开、相加即得十进制数。

<a name="JIhxN"></a>
### 二进制转八进制

<a name="q13bx"></a>
### 二进制转十六进制

<a name="uwklH"></a>
### 十进制转二进制
> 十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。

<a name="mMneY"></a>
# 🍐原码,反码和补码
<a name="BY2er"></a>
## 原码
> 原码:将一个整数转换成**二进制表示**
以 int 类型为例,int类型占4个字节、共32位。<br />例如:<br />2 的原码为:00000000 00000000 00000000 00000010<br />-2的原码为:10000000 00000000 00000000 00000010
<a name="DIcEl"></a>
## 反码
> 正数的反码:与原码相同
> 负数的反码:原码的符号位不变,其他位取反
例如,-2 的反码为:11111111 11111111 11111111 11111101
<a name="FSfGc"></a>
## 补码
> 正数的补码:与原码相同
> 负数的补码:反码+1
例如,-2 的补码为:01111111 11111111 11111111 11111110
- 符号位
> 二进制的最左边的那一个位,就称为符号位,正数的符号位是0,负数的符号位是1
<a name="TWs8H"></a>
## 计算机在对数据进行运算的原理
3 - 2 = 1<br />3 + (-2) = 1
1. 先将3这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
1. 先将-2这个十进制,,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
1. 将这两个数二进制的补码形式参与运算会得到一个二进制补码形式
1. 然后再将这个二进制的补码形式最终变回二进制的原码形式,然后再变成十进制,就得到1

<a name="N3yuc"></a>
## 总结
- 正数的原码反码和补码的转换规则
正数的原码,反码和补码是一样的
- 负数的原码反码和补码的转换规则
负数的原码变反码:符号位不变,其余的0变1,1变0<br />负数的反码变补码,只需要+1
<a name="jGlDK"></a>
# 🥯变量
> 在一定范围内,可以发生变化的量
<a name="HufAt"></a>
## 变量的定义格式
- 格式一:数据类型 变量名 = 数据;(直接定义)
int a = 12;
- 格式二:数据类型 变量名;(间接定义)
变量名 = 数据;
```java
int i;
i = 2;
💡思考:当我们在程序中写了int i = 12这样一句代码,当我们运行的时候,内存中到底做了哪些事情呢?
在内存中会开辟一块内存空间,该空间的名字就是我们起的变量名i,该空间中存储的数据的数据类型就是我们给的int类型,该空间中存储的数据就是我给的12。
注意问题
当我们给float类型变量赋值的时候,要在数据的后面加上F或者f
float i = 1.45F;
当我们给long类型变量赋值的时候,建议在后面加上L或者l
long i = 120000L;
当我们想要使用某个变量的时候,一定要先赋值,再使用,要不然会报错
- 当我们想要给某个变量赋值的时候,一定要考虑该变量的范围,要不然会报错
- 在同一对花括号内,不能定义同名变量 ```java int i = 12; int i = 13;//错误的
int i = 12; i = 13;//正确的额,这是二次赋值
<a name="h4Wj6"></a>
# 🍞数据类型
> Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。共2大类4小类8小种
<br />
<a name="U3Xao"></a>
## 整型
- byte(1个字节)
- short(2个字节)
- int(4个字节)
- long(8个字节)
一个整数,默认的数据类型是int
<a name="yJkoJ"></a>
## 浮点型
- float(4个字节)
- double(8个字节)
一个小数,默认的数据类型是double
<a name="QNMbQ"></a>
## 字符型
- char(2个字节)
<a name="BmE1B"></a>
## 布尔型
- boolean(1个字节)
- true或false。
<a name="UrB99"></a>
## 引用数据类型(以后学)
<a name="FcAsL"></a>
# 🥥数据类型的转换
> 小的数据类型会自动提升为大的数据类型
```java
举例子:
byte b = 1;
short s = 2;
int i = 3;
long l = 4;
float f = 3.14f;
double d = 3.14;
double dd = b + s + i + l + f + d;
当多个数据类型参与运算的时候,小的数据类型会自动提升为大的数据类型
注意:boolean类型不能和其他数据类型相互转换
常见的考试题?
情况一:
byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2;
System.out.println(b3);//编译报错
short s1 = 1;
short s2 = 2;
short s3 = s1 + s2;
System.out.println(s3);//编译报错
情况二:
byte b1 = 1;
byte b2 = b1 + 2;
System.out.println(b2);//编译报错
short s1 = 1;
short s2 = s1 + 2;
System.out.println(s2);//编译报错
结论:针对byte类型和short类型的时候,只要右边有一个是变量,就会编译报错
情况三:
byte b = 126 + 1;
System.out.println(b);//正确,127
情况四:
byte b = 127 + 1;
System.out.println(b);//编译报错,因为byte范围最大值是127
强制类型转换
是指大的数据类型被强制转换成小的数据类型
强制类型转换的格式?
小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名;
举例子:
int i = 130;
byte b = (byte)i;
注意:我们能不使用强制转换,尽量不要使用,因为转不好会出现问题
int i = 130;
byte b = (byte)i;
System.out.println(b);//却是得-126
🍅ASCII编码表
字符也是可以参与计算中的
char aa = 'a';
System.out.printIn(a);
System.out.printIn( '' + 0); //查询语句
'a' -> 97
'A' -> 65
'0' -> 48