🏠HelloWorld小案例

步骤:

  1. 创建一个名为HelloWorld文本文档,将后缀名.java
  2. 打开文件,在里面写点内容:
    ```java class HelloWorld { public static void main(String[] args) { System.out.println(“约吗”); } }

1.什么地方加空格,什么地方加. 2.什么地方大写,什么地方小写 3.什么地方用{},什么地方用[],什么地方用()

  1. 3. HelloWorld.java文件放入到jdk安装的目录中的bin目录中
  2. 3. 编译<br />如何编译?<br />需要使用javac.exe编译工具<br />格式:javac HelloWorld.java<br />编译完之后,会生成一个新的文件,叫做HelloWorld.class
  3. 3. 运行<br />如何运行?<br />需要使用java.exe运行工具<br />格式:java HelloWorld
  4. <a name="88ece357"></a>
  5. # 🔪注释
  6. > 注释是对代码的解释和说明文字。Java中的注释分为三种。
  7. <a name="vnvKF"></a>
  8. ## 注释的分类
  9. 1. 单行注释:
  10. `//注释的内容`
  11. 2. 多行注释:
  12. `/*注释的内容*/`
  13. 3. 文档注释:
  14. `/**注释的内容*/`<br />文档注释一般是生成帮助文档用的
  15. 快捷键:<br />单行注释:ctrl+/<br />多行注释:ctrl+shift+/
  16. <a name="OqPO6"></a>
  17. ## 注释的作用
  18. 1. 用来解释说明,提高了代码的阅读性
  19. 1. 可以帮助我们查找错误
  20. <a name="UVj4b"></a>
  21. ## 注释的注意事项
  22. 1. 单行注释可以嵌套
  23. 1. 多行和文档注释都不能嵌套使用。
  24. <a name="071a46fc"></a>
  25. # 💣关键字
  26. > Java语言赋予了特殊含义,用作专门用途的字符串(单词)的单词,这些关键字不能用于常量、变量、和任何标识符的名称。
  27. 💡 关键字的特点:
  28. - 关键字的字母全部小写。
  29. - 常用的代码编辑器对关键字都有高亮显示,比如现在我们能看到的publicclassstatic等。
  30. - main不是关键字
  31. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647221559925-3482b843-6fea-4479-b867-3d3841e5b113.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=833&id=u7853f84c&margin=%5Bobject%20Object%5D&name=image.png&originHeight=762&originWidth=477&originalType=binary&ratio=1&rotation=0&showTitle=false&size=65991&status=done&style=none&taskId=u365fb4e2-bb91-439e-a757-13dff69020d&title=&width=521.5)
  32. <a name="56fa84eb"></a>
  33. # 🔦标识符
  34. > 用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列称为标识符,简单来说就是我们自己起的名字。
  35. <a name="GM030"></a>
  36. ## Java中标识符的组成规则
  37. 1. 由字母、数字、下划线“_”、美元符号“$”组成,长度不受限制。
  38. 1. 第一个字符不能是数字字符。
  39. 1. 不能使用java中的关键字作为标识符。也不能是truefalsenull
  40. 1. 标识符对大小写敏感(区分大小写)。
  41. <a name="PxY3R"></a>
  42. ## 标识符的两种命名方式
  43. 针对不同类型的标识符用不同的命名方式,以下是两种常用的命名方式:
  44. 1. **小驼峰式命名:首字母小写,从第二个单词开始每个单词的首字母大写。**
  45. 1. 例如:nameuserNamestudentNumber
  46. 2. **大驼峰式命名:每个单词的首字母都大写。**
  47. 1. 例如:ChinaMadeWaterLake等。
  48. 不同场合不同使用:
  49. - **包名:全部小写,多级包用.隔开。**
  50. 举例:com.jourwoncom是公司,也是行业规定。
  51. - **类、接口:大驼峰命名**
  52. 举例:Student,Car,HelloWorld
  53. - **方法和变量:小驼峰式命名**
  54. 举例:age,maxAge,show(),getAge()
  55. - **常量:如果是一个单词,所有字母大写,如果是多个单词,所有的单词大写,用下划线区分每个单词。**
  56. 举例:DATE,MAX_AGE
  57. - **项目名:全部用小写字母,多个单词之间用横杆-分割。**
  58. 举例:demospring-boot
  59. <a name="af7c4e3e"></a>
  60. # 🔮常量
  61. > 在程序执行的过程中,其值不可以发生改变的量。
  62. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647222226190-22605a8a-2c5a-4a26-a177-82f5b41ef8a3.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=266&id=u7880d185&margin=%5Bobject%20Object%5D&name=image.png&originHeight=506&originWidth=1083&originalType=binary&ratio=1&rotation=0&showTitle=false&size=216511&status=done&style=none&taskId=u7a5daa9f-c136-4e8b-be66-ef93b61ff24&title=&width=569.5)
  63. <a name="Yz8DQ"></a>
  64. ## 字符串常量
  65. "a", "ab", "123", "abc123", "约吗", ""
  66. 注意:
  67. 1. 字符串常量是必须用双引号括起来的
  68. 1. 双引号里面可以有一个数据,可以有多个数据,可以没有数据
  69. <a name="zgj4B"></a>
  70. ## 字面值常量
  71. - 整数常量
  72. 1, 2, 12
  73. - 小数常量
  74. 3.14, 1.2
  75. - 字符常量
  76. 'a', 'b', '1', '#', '在', ' ' 都是字符常量<br />'abc', '' 不是字符常量
  77. 注意:
  78. 1. 字符常量是必须用单引号括起来的
  79. 1. 引号里面有且只能有一个字符
  80. <a name="taAql"></a>
  81. ## 布尔常量
  82. 只有2个值<br />truefalse
  83. <a name="kxjnN"></a>
  84. ## 空常量
  85. 只有一个值:null
  86. 自定义常量(以后学)
  87. <a name="aTLqy"></a>
  88. ## 注意事项
  89. - 除空常量外,其他常量均可使用输出语句直接输出。
  90. - 在定义常量时就需要对该常量进行初始化。
  91. - final 关键字不仅可以用来修饰基本数据类型的常量,还可以用来修饰对象的引用或者方法。
  92. - 为了与变量区别,常量取名一般都用大写字符。
  93. <a name="68a240a2"></a>
  94. # 🛡Java进制
  95. > 进制也就是进位计数制,是人为定义的带进位的计数方法。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。生活中常用的是十进制
  96. <a name="wNW7p"></a>
  97. ## Java中的进制的分类
  98. - 十进制:逢十进一,正常写
  99. 12, 5, 123<br />10
  100. - 二进制:逢二进一,0b
  101. 0101010<br />0b10
  102. - 八进制:逢八进一,0
  103. 1234, 12<br />010
  104. - 十六进制:逢十六进一,0x
  105. 10 -> A<br />11 -> B<br />12 -> C<br />13 -> D<br />14 -> E<br />15 -> F<br />123AB<br />0x10
  106. 在计算机中,数据最终都会变成二进制,也就是由多个1或者多个0来组成的,而每一个1或者0都称为一个位,也叫做1bit
  107. 注意:在计算机中进行存储和运算的最小单位是字节(byte)<br />1byte = 8bit<br />1KB = 1024byte<br />1MB = 1024kb<br />1GB = 1024MB<br />1TB = 1024GB
  108. <a name="hOjph"></a>
  109. ## 进制转换
  110. <a name="QSYkI"></a>
  111. ### 二进制转十进制
  112. > 8421码方法为:把二进制数按权展开、相加即得十进制数。
  113. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647223355072-494c2689-f0fd-4219-86cf-1c42bf1fa3d3.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=336&id=u38a2b233&margin=%5Bobject%20Object%5D&name=image.png&originHeight=734&originWidth=1280&originalType=binary&ratio=1&rotation=0&showTitle=false&size=302496&status=done&style=none&taskId=u5aa45681-d2b9-4b1e-8e32-b2fe5d55b63&title=&width=586)
  114. <a name="JIhxN"></a>
  115. ### 二进制转八进制
  116. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647223571010-df08e57f-a3b2-45aa-bd87-f5d2836d8764.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=346&id=u3d3bb290&margin=%5Bobject%20Object%5D&name=image.png&originHeight=692&originWidth=1218&originalType=binary&ratio=1&rotation=0&showTitle=false&size=251104&status=done&style=none&taskId=u417a9c73-b7a6-4273-91a5-758df2f677b&title=&width=609)
  117. <a name="q13bx"></a>
  118. ### 二进制转十六进制
  119. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647223837920-07323992-8b25-4790-a283-0550eee29099.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=389&id=ubf9b37e8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=778&originWidth=1354&originalType=binary&ratio=1&rotation=0&showTitle=false&size=265938&status=done&style=none&taskId=u2685469a-5f2e-4dc7-a6d4-185b527a2cc&title=&width=677)
  120. <a name="uwklH"></a>
  121. ### 十进制转二进制
  122. > 十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
  123. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647224067932-cb59d206-4317-4de6-bb6a-137c9cae3aa6.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=351&id=u8abb5884&margin=%5Bobject%20Object%5D&name=image.png&originHeight=226&originWidth=311&originalType=binary&ratio=1&rotation=0&showTitle=false&size=14960&status=done&style=none&taskId=u5f4d0792-9aaf-479c-b64c-a85ec5a079a&title=&width=483.5)
  124. <a name="mMneY"></a>
  125. # 🍐原码,反码和补码
  126. <a name="BY2er"></a>
  127. ## 原码
  128. > 原码:将一个整数转换成**二进制表示**
  129. int 类型为例,int类型占4个字节、共32位。<br />例如:<br />2 的原码为:00000000 00000000 00000000 00000010<br />-2的原码为:10000000 00000000 00000000 00000010
  130. <a name="DIcEl"></a>
  131. ## 反码
  132. > 正数的反码:与原码相同
  133. > 负数的反码:原码的符号位不变,其他位取反
  134. 例如,-2 的反码为:11111111 11111111 11111111 11111101
  135. <a name="FSfGc"></a>
  136. ## 补码
  137. > 正数的补码:与原码相同
  138. > 负数的补码:反码+1
  139. 例如,-2 的补码为:01111111 11111111 11111111 11111110
  140. - 符号位
  141. > 二进制的最左边的那一个位,就称为符号位,正数的符号位是0,负数的符号位是1
  142. <a name="TWs8H"></a>
  143. ## 计算机在对数据进行运算的原理
  144. 3 - 2 = 1<br />3 + (-2) = 1
  145. 1. 先将3这个十进制,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
  146. 1. 先将-2这个十进制,,变成二进制的原码形式,然后变成反码形式,最后变成补码形式
  147. 1. 将这两个数二进制的补码形式参与运算会得到一个二进制补码形式
  148. 1. 然后再将这个二进制的补码形式最终变回二进制的原码形式,然后再变成十进制,就得到1
  149. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647225024595-242a7eb0-953b-4472-964a-c9ff6dc77e98.png#clientId=u486ac653-bc52-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=388&id=u16d76185&margin=%5Bobject%20Object%5D&name=image.png&originHeight=776&originWidth=1866&originalType=binary&ratio=1&rotation=0&showTitle=false&size=466880&status=done&style=none&taskId=u20413ae8-6962-4f6d-be73-dcd94fa88e5&title=&width=933)
  150. <a name="N3yuc"></a>
  151. ## 总结
  152. - 正数的原码反码和补码的转换规则
  153. 正数的原码,反码和补码是一样的
  154. - 负数的原码反码和补码的转换规则
  155. 负数的原码变反码:符号位不变,其余的01,10<br />负数的反码变补码,只需要+1
  156. <a name="jGlDK"></a>
  157. # 🥯变量
  158. > 在一定范围内,可以发生变化的量
  159. <a name="HufAt"></a>
  160. ## 变量的定义格式
  161. - 格式一:数据类型 变量名 = 数据;(直接定义)

int a = 12;

  1. - 格式二:数据类型 变量名;(间接定义)
  2. 变量名 = 数据;
  3. ```java
  4. int i;
  5. i = 2;

💡思考:当我们在程序中写了int i = 12这样一句代码,当我们运行的时候,内存中到底做了哪些事情呢?
在内存中会开辟一块内存空间,该空间的名字就是我们起的变量名i,该空间中存储的数据的数据类型就是我们给的int类型,该空间中存储的数据就是我给的12。

注意问题

  1. 当我们给float类型变量赋值的时候,要在数据的后面加上F或者f

    1. float i = 1.45F;
  2. 当我们给long类型变量赋值的时候,建议在后面加上L或者l

    1. long i = 120000L;
  3. 当我们想要使用某个变量的时候,一定要先赋值,再使用,要不然会报错

  4. 当我们想要给某个变量赋值的时候,一定要考虑该变量的范围,要不然会报错
  5. 在同一对花括号内,不能定义同名变量 ```java int i = 12; int i = 13;//错误的

int i = 12; i = 13;//正确的额,这是二次赋值

  1. <a name="h4Wj6"></a>
  2. # 🍞数据类型
  3. > Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。共2大类4小类8小种
  4. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647239827172-17b4edf6-4f46-416c-b16a-716e7e41a0cf.png#clientId=u2ae119fd-629c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=371&id=u17fe4e16&margin=%5Bobject%20Object%5D&name=image.png&originHeight=561&originWidth=1007&originalType=binary&ratio=1&rotation=0&showTitle=false&size=47645&status=done&style=none&taskId=u22cd8889-5f21-45e1-8ad2-eae66ba900b&title=&width=666.5)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/21490994/1647239913968-54c36d28-c86a-4ea4-b760-b268f69ae58f.png#clientId=u2ae119fd-629c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=213&id=uaf445545&margin=%5Bobject%20Object%5D&name=image.png&originHeight=371&originWidth=1157&originalType=binary&ratio=1&rotation=0&showTitle=false&size=71464&status=done&style=none&taskId=u3456582b-b3f0-43cf-aeee-05c3fdc7c72&title=&width=664.5)
  5. <a name="U3Xao"></a>
  6. ## 整型
  7. - byte(1个字节)
  8. - short(2个字节)
  9. - int(4个字节)
  10. - long(8个字节)
  11. 一个整数,默认的数据类型是int
  12. <a name="yJkoJ"></a>
  13. ## 浮点型
  14. - float(4个字节)
  15. - double(8个字节)
  16. 一个小数,默认的数据类型是double
  17. <a name="QNMbQ"></a>
  18. ## 字符型
  19. - char(2个字节)
  20. <a name="BmE1B"></a>
  21. ## 布尔型
  22. - boolean(1个字节)
  23. - true或false。
  24. <a name="UrB99"></a>
  25. ## 引用数据类型(以后学)
  26. <a name="FcAsL"></a>
  27. # 🥥数据类型的转换
  28. > 小的数据类型会自动提升为大的数据类型
  29. ```java
  30. 举例子:
  31. byte b = 1;
  32. short s = 2;
  33. int i = 3;
  34. long l = 4;
  35. float f = 3.14f;
  36. double d = 3.14;
  37. double dd = b + s + i + l + f + d;

当多个数据类型参与运算的时候,小的数据类型会自动提升为大的数据类型

注意:boolean类型不能和其他数据类型相互转换

常见的考试题?

  1. 情况一:
  2. byte b1 = 1;
  3. byte b2 = 2;
  4. byte b3 = b1 + b2;
  5. System.out.println(b3);//编译报错
  6. short s1 = 1;
  7. short s2 = 2;
  8. short s3 = s1 + s2;
  9. System.out.println(s3);//编译报错
  10. 情况二:
  11. byte b1 = 1;
  12. byte b2 = b1 + 2;
  13. System.out.println(b2);//编译报错
  14. short s1 = 1;
  15. short s2 = s1 + 2;
  16. System.out.println(s2);//编译报错

结论:针对byte类型和short类型的时候,只要右边有一个是变量,就会编译报错

  1. 情况三:
  2. byte b = 126 + 1;
  3. System.out.println(b);//正确,127
  4. 情况四:
  5. byte b = 127 + 1;
  6. System.out.println(b);//编译报错,因为byte范围最大值是127

强制类型转换

是指大的数据类型被强制转换成小的数据类型

强制类型转换的格式?
小的数据类型 小的数据类型的变量名 = (小的数据类型)大的数据类型的变量名;

举例子:

  1. int i = 130;
  2. byte b = (byte)i;

注意:我们能不使用强制转换,尽量不要使用,因为转不好会出现问题

  1. int i = 130;
  2. byte b = (byte)i;
  3. System.out.println(b);//却是得-126

image.png

🍅ASCII编码表

字符也是可以参与计算中的

image.png

  1. char aa = 'a';
  2. System.out.printIn(a);
  3. System.out.printIn( '' + 0); //查询语句
  4. 'a' -> 97
  5. 'A' -> 65
  6. '0' -> 48