From 65628fba5269dc5670145a9c00c686af0d8238c4 Mon Sep 17 00:00:00 2001 From: "huangxin.sir" Date: Tue, 10 Sep 2024 19:59:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=98=E9=87=8F=E3=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8B=E7=AD=89=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=A6=82=E5=BF=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...72\347\241\200\345\255\246\344\271\240.md" | 218 +++++++++++++++++- 1 file changed, 217 insertions(+), 1 deletion(-) diff --git "a/java\344\273\216\345\205\245\351\227\250\345\210\260\346\224\276\345\274\203/javaSE\345\237\272\347\241\200/2\343\200\201\345\237\272\347\241\200\345\255\246\344\271\240.md" "b/java\344\273\216\345\205\245\351\227\250\345\210\260\346\224\276\345\274\203/javaSE\345\237\272\347\241\200/2\343\200\201\345\237\272\347\241\200\345\255\246\344\271\240.md" index eb0a4e2..431b987 100644 --- "a/java\344\273\216\345\205\245\351\227\250\345\210\260\346\224\276\345\274\203/javaSE\345\237\272\347\241\200/2\343\200\201\345\237\272\347\241\200\345\255\246\344\271\240.md" +++ "b/java\344\273\216\345\205\245\351\227\250\345\210\260\346\224\276\345\274\203/javaSE\345\237\272\347\241\200/2\343\200\201\345\237\272\347\241\200\345\255\246\344\271\240.md" @@ -474,4 +474,220 @@ PS C:\java-study\day01\src> java HelloWorld hello world ``` -我们发现注释并不会影响程序的结果,后面学习中,我们可以多使用注释提升学习质量哦 \ No newline at end of file +我们发现注释并不会影响程序的结果,后面学习中,我们可以多使用注释提升学习质量哦 + +# 变量 + +**什么是变量呢?** + +每一个编程语言中都有变量,在Java中,变量是用来存储数据的容器。每个变量都有一个类型,这个类型决定了变量可以存储的数据类型。**Java是一种静态类型语言,这意味着每个变量在使用前都必须声明,并且一旦声明,其类型就不能改变。** + +变量声明的语法: + +```java +//数据类型 变量名 [= 值]; +int age = 100; + +String name; +name = "zhangsan"; + +long idCard = 1000000 +``` + +在Java中,变量又分为三类: + +- 局部变量 +- 成员变量 +- 静态变量 + +成员变量和静态变量后面的文章中我们再解释,现在简单说一下局部变量吧。 + +在上面hello world案例中,我们简单知道了方法,在方法中定义的变量就是局部变量,当然在方法外定义的就是成员变量或者是静态变量了,局部变量会随着方法的消亡而消亡,具体的原理会在后续面向对象章节中介绍。 + +变量有三要素:数据类型、变量名、值,当成员变量或者静态变量如果没有手动赋值的话,那么它会有自己的默认值,**默认值是和数据类型有关系的** + +但是,局部变量中,如果变量没有手动赋值的话,是用不了的,否则编译会失败,如果只是定义了该变量,但是没有使用,可以编译通过 + +例如下面的代码: + +```java +public class Variable { + + public static void main (String[] args) { + int num; + System.out.println(num); + } +} +``` + +我们编译一下试试看: + +```cmd +PS C:\java-study\day01\src> javac Variable.java +Variable.java:5: 错误: 可能尚未初始化变量num + System.out.println(num); + ^ +1 个错误 +``` + +如果只是定义变量,没有去打印该变量的值,是可以通过编译的,可以自行测试看一下 + +上面介绍了变量的使用,下面我们来针对变量内容做个分解,下面可以看下Java中的数据类型 + +# 数据类型 + +在Java中,数据类型定义了变量可以存储的数据的种类以及这些数据可以执行的操作。Java提供了两种主要的数据类型:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。 + +## 基本数据类型 + +基本数据类型是Java预定义的,它们是Java语言的基础部分,用于表示简单数据。Java有8种基本数据类型: + +``` +8中基本数据类型又对应了八种包装类型,这个等我们后面学了面向对象之后,大家就知道了 +``` + +8种基本数据类型可以简单分成四种表示: + +### 整数型 + +byte: + +- 8位有符号整数,范围从-128到127,占用计算机1个字节数 + +short: + +- 16位有符号整数,范围从-32768到32767,占用计算机2个字节数 + +int: + +- 32位有符号整数,默认类型,范围从-2147483648到2147483647,占用计算机4个字节数 + +long: + +- 64位有符号整数,范围从-9223372036854775808到9223372036854775807。在数值后面加`L`或`l`表示。占用计算机8个字节数 + +### 布尔型 + +boolean + +- 布尔型只有两个值,false和true + +``` +布尔型占用的字节数,有人说占用1个字节,有的则不认为这样子,目前存在争议,大家可以自行去查阅相关资料 +``` + +### 浮点型 + +float: + +- 32位单精度浮点数。在数值后面加`F`或`f`表示。占用计算机4个字节数 + +double: + +- 64位双精度浮点数,默认浮点数类型。占用计算机8个字节数 + +### 字符型 + +char: + +- 16位Unicode字符,可以存储任何字符。占用计算机2个字节数 + +## 引用数据类型 + +引用数据类型是指向内存中的对象,比如我们变量章节中的**`String name = "zhangsan"`**,String就是一个引用数据类型,它表示字符串,Java是一门面向对象的编程语言,等后续学习了面向对象,大家就理解了 + +# 标识符和关键字 + +我们变量三要素中有一个要素是变量名,而变量名就是我们这个章节中需要说的,它就是一个标识符。 + +## 什么标识符呢? + +代码的组成部分可以理解成是由各个关键字和标识符组合而成的,标识符是可以由程序员自己定义的,主要是变量名、方法名、类名、接口名等等... + +但是我们定义标识符的时候需要遵循必要的规范,可以理解成是工作中的一中约束,每个公司的规范都是有下面的几种规范衍生出来的。 + +- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始 +- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合 +- 关键字不能用作标识符 +- 标识符是大小写敏感的 +- 合法标识符举例:age、$salary、_value、__1_value +- 非法标识符举例:123abc、-salary + +## 什么是关键字呢? + +在Java中,关键字(也称为保留字)是编程语言预定义的,有特殊含义的单词,它们被用来表示特定的语言结构或功能。关键字不能用作变量名、类名、方法名或其他标识符。例如我们上面的8种基本数据类型就是关键字,它们就不能用作标识符,否则编译代码的时候会失败的。 + +截至Java11,Java中关键字一共有54个,分别如下: + +**访问控制**: + +- `public` +- `protected` +- `private` + +**非访问控制修饰符**: + +- `abstract` +- `default` (Java 8 引入) +- `final` +- `static` +- `strictfp` +- `transient` +- `volatile` + +**程序流程控制**: + +- `if` +- `else` +- `switch` +- `case` +- `break` +- `continue` +- `return` + +**错误处理**: + +- `try` +- `catch` +- `finally` +- `throw` +- `throws` + +**包和导入**: + +- `package` +- `import` + +**类和对象**: + +- `class` +- `extends` +- `interface` +- `super` +- `this` + +**实例初始化和类初始化**: + +- `new` +- `instanceof` + +**基本数据类型**: + +- `boolean` +- `byte` +- `char` +- `short` +- `int` +- `long` +- `float` +- `double` + +**其他**: + +- `void` +- `true` +- `false` +- `null` +- `const` (Java 10 引入,但未激活) +- `goto` (未在Java中使用) + -- Gitee