Java基础语法①
- 注释
- 关键字与标识符
- 数据类型
- 字面量和常量
- 变量
- 转义字符
注释
注释是在写代码时,对代码作出的一些解释说明,比如某一个函数的作用(功能)、函数接收的参数以及函数返回什么东西等等。 这些解释说明没有任何功能,编译器编译的时候也会直接忽略注释。
注释有三种类型【图源:B站黑马程序员java入门到精通课程】:
- 单行注释:
//注释信息
两个斜杠,后面是注释信息;换行以后如果还要注释需要打新的“//”; - 多行注释:
/* 注释信息 随意换行 */
,多行注释顾名思义,就是可以写很多行的注释(hhhhhhh),以/*开始,以*/结束; - 文档注释:以
/**
开始,*/
结束,用于生成文档。这种注释通常用于类、方法和变量的说明;文档注释的格式通常包含一些特定的标签,如@param
用于描述方法参数,@return
用于描述返回值,@throws
用于描述可能抛出的异常等等,这些标签有助于生成清晰的API文档,以便其他开发者能够更好地理解和使用你的代码。
/** * 这是一个简单的方法 * @param x 参数 x * @return 返回结果 */
public int myMethod(int x) { return x * 2;
}
关键字与标识符
- 关键字(Keywords):
关键字是编程语言预定义的单词,具有特殊含义,用于表示语言结构、控制流程、数据类型等。在Java中,关键字是被保留的单词,不能用作标识符(如变量名、方法名等)。例如,在Java中,public
、class
、void
等都是关键字。
- 标识符(Identifiers):
标识符是程序员定义的用于表示变量、常量、函数、类等的名称。标识符可以由字母、数字、下划线和美元符号组成,但必须以字母、下划线或美元符号开头。不能以数字开头;不能使用关键字作为标识符(会冲突)。例如,在Java中,变量名myVariable
、方法名calculateTotal
等都是标识符。
二者的关联、区别如下:
1、含义:关键字是编程语言预定义的单词,具有特殊含义;而标识符是程序员定义的用于表示各种元素名称的字符序列。
2、用途:关键字用于表示语言结构、控制流程、数据类型等;标识符用于命名变量、常量、函数、类等。
3、限制:关键字是被保留的,不能用作标识符;标识符则是由程序员自定义的,不能与关键字相同。
总的来说,关键字是编程语言的一部分,具有预定义的含义和用途;而标识符是程序员在编写代码时定义的名称,用于表示各种元素。
数据类型
在说到下面的变量、常量之前,还是要先说一下这个Java中的数据类型。因为不管是变量还是常量,其目的都是为了声明一块内存空间存储一个值,常量和变量的区别只是这个值能不能改变而已。前面这句话的一个重点是“存储一个值”,那个这个值是什么类型呢,就需要先学习一下这个数据类型。
我们学数学的时候,一开始学什么?正整数,1,2,3,4,5……,然后我们才知道有负数;之后我们知道有小数、实数虚数、有理数无理数…… 我们知道计算机能够理解的实际上只是0/1比特是吧,不管是整数还是浮点数(小数),在计算机中都会以某种编码格式编程0/1比特串存储起来。实际上,我们说话用到的字母、句子,计算机想要理解也是需要转换成0/1比特串的,这些字母、句在Java(或者其他编程语言中)中被称之为字符、字符串。
java中的数据类型可以分为基本数据类型、引用数据类型,后者涉及到引用,后面再细说吧吧吧吧吧(我也没有搞明白呜呜呜)。先来看看基本数据类型吧:
数据类型 | 关键字 | 取值范围 | 占用内存 |
---|---|---|---|
整数 | byte | -127 ~ 128 (-2^7 ~2^7-1) | 1 Byte |
整数 | short | -32768 ~ 32767 (-2^15 ~2^15-1) | 2 Byte |
整数 | int | -2^31 ~2^31-1 | 4 Byte |
整数 | long | -2^63 ~2^63-1 | 8 Byte |
浮点数 | float | 后续解释 | 4 Byte |
浮点数 | double | 后续解释 | 8 Byte |
字符 | char | 0 ~ 65535 | 2 Byte |
布尔 | boolean | true,false | 1 Byte |
public class Main {public static void main(String[] args) {//bytebyte a = 20;System.out.println(a);//shortshort b = 10;System.out.println(b);//intint c = 10;System.out.println(c);//longlong d = 20L;//注意需要L后缀System.out.println(d);//floatfloat e = 15.5f;//注意需要一个f后缀System.out.println(e);//doubledouble f = 20.5;System.out.println(f);//booleanboolean g = true;System.out.println(g);//charchar h = 'A';System.out.println(h);}
}
在Java中,浮点数的编码方式遵循IEEE 754标准。这个标准定义了单精度浮点数(float)和双精度浮点数(double)的表示方法。
- 单精度浮点数(float):
符号位:1位,表示正负号。
指数位:8位,用于表示指数部分。
尾数位:23位,用于表示尾数部分。 - 双精度浮点数(double):
符号位:1位,表示正负号。
指数位:11位,用于表示指数部分。
尾数位:52位,用于表示尾数部分。
这种编码方式允许浮点数在计算机中以二进制形式表示,同时保留了一定的精度和范围。 后续复习计算机组成原理相关内容的时候再来讨论,float、double两种浮点数所能表示的数据范围!
我们常用的数组、字符串String,其实都是引用类型的数据结构,后续我学会了再总结!!!
字面量和常量
- 字面量(Literals) 是指在程序中直接表示数值、字符串或者其他数据类型的值。它们是程序中的固定值,不会改变。在Java中,一些常见的字面量包括整数字面量(如
5
)、浮点数字面量(如3.14
)、布尔型字面量(如true
或false
)、字符串字面量(如"Hello"
)、字符变量(如'a'
)等。
public class Main {public static void main(String[] args) {// 字面量的输出-整数System.out.println(123);System.out.println(-456);// 字面量的输出—浮点数System.out.println(3.14);System.out.println(-2.718);// 字面量的输出—布尔值System.out.println(true);System.out.println(false);// 字面量的输出—字符System.out.println('A');System.out.println('中');// 字面量的输出—字符串System.out.println("Hello, world!");System.out.println("你好,世界!");}
}
-
常量(Constants) 是程序中用于存储固定值的标识符,其值在程序执行期间不会改变。在Java中,可以使用
final
关键字来定义常量。例如:final int MAX_VALUE = 100;
。在这里,MAX_VALUE
是一个常量,它的值被设定为100,并且在程序执行期间不会改变(补充,在C、C++中用const
关键字定义常量)。
final定义一个常量以后,其值是不可更改的👇
-
区别:
字面量是数据的值本身,在代码中直接出现;常量是用于存储这些固定值的符号名称。
字面量是固定的值;常量也是固定的值,但它们是通过符号名称来引用的。
因此,字面量可以是常量的一种形式,但不是所有的字面量都是常量。常量是一种具有符号名称的固定值,而字面量是程序中直接出现的值。
变量
变量,顾名思义,就是一个值可以变化的标识符。底层一点的解释,就是用一个标识符(变量名)来命名一块内存空间,之后这个内存空间存储的具体值就是这个变量的值,当然这个内存空间中存储的值是可以变化的。变量的声明规则是type variableName = value;
,即需要说明这个内存空间内存储的数据类型是什么,比如float、int、boolean(实际上编译器根据这个类型来分配对应大小的空间),需要说明这个内存空间的名字,以及需要给它一个初始化的值【使用之前必须要赋值(初始化)!!!】。
转义字符
当编写字符串或字符字面量时,有时需要表示一些特殊字符,如换行符、制表符、引号等。然而,直接键入这些字符可能会导致编译器误解你的意图。为了解决这个问题,编程语言引入了转义字符的概念。
转义字符是由反斜杠(\)紧跟着一个字符组成的序列。当编译器遇到一个反斜杠时,它会检查反斜杠后面的字符,并根据这个字符的不同来采取相应的行动。这个过程称为转义序列的解析。
在Java中,一些常见的转义字符包括:
\n
:换行符
\t
:制表符
\r
:回车符
\\
:反斜杠
\'
:单引号
\"
:双引号
\b
:退格
\f
:换页
例如,要在一个字符串中表示换行符,你可以使用 \n
。这样编译器就知道你希望在那个位置插入一个换行符。
总的来说,转义字符允许你在字符串中表示那些在源代码中难以输入或者不可见的字符,从而使得程序能够正确地解释和显示这些特殊字符。