文章目录
前言
程序的基本组成:
- 注释(非必须)
- 关键字
- 标识符
- 数据
- 符号
一、注释
注释是对程序的解释说明文字,可以提高程序的可读性。所以在程序中添加注释十分重要。
Java中注释的分类:
- 单行注释:从//开始至本行结尾的文字将作为注释文字。
- 多行注释:使用/* 和*/将一段较长的注释括起来。
- 文档注释:以/**开始,以 */结束。
二、关键字
关键字是指被Java语言赋予了特殊含义的单词。
关键字的特点:
- 关键字的字母全部小写
- 常用的代码编辑器对关键字都有高亮显示,以我们的HelloWorld案例为例:
public class HelloWorld {
public static void main(String[] args){
System.out.print("Hello World!");
}
}
呈现紫色的单词均为我们Java中的关键字,如:public、class、static、void。
三、标识符
标识符是用户变成时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则:
- 由字母、数字、下划线 _ 、美元符号$组成,且第一个字符不能是数字。
- 不能使用Java中的关键字作为标识符。
- 标识符对大小写敏感(区分大小写)。
以我们的HelloWorld案例为例:
public class HelloWorld {
public static void main(String[] args){
System.out.print("Hello World!");
}
}
其中HelloWorld、main、String、args、System、out、print均为我们的标识符。
Java中标识符的命名约定:
- 小驼峰式命名:变量名、方法名
首字母小写,从第二个单词开始每个单词的首字母大写。 - 大驼峰式命名:类名
每个单词的首字母都大写。 - 标识符的命名最好可以做到见名知意。
四、数据
在Java中,将数据分为常量和变量。
1.常量
常量:在程序运行过程中,其值不可以发生改变的量。
Java中常量的分类:
常量名称 | 说明 | 举例 |
---|---|---|
字符串常量 | 用双引号括起来的内容 | “Hello World!” |
整数常量 | 不带小数的数字 | 666 |
小数常量 | 带小数的数字 | 3.14 |
字符常量 | 用单引号括起来的内容 | ‘我’ |
布尔常量 | 布尔值,表示真假,只有两个值 | true,false |
空常量 | 一个特殊的值,空值 | null |
注意:除空常量外,其他常量均可使用输出语句直接输出。
2.变量
变量:在程序运行过程中,其值可以发生改变的量。
从本质上讲,变量是内存中的一小块区域,其值可以再一定范围内变化。
- 变量的定义格式:
数据类型 变量名 = 初始化值;
比如:
int age = 18;
变量的定义格式也可以是先声明后赋值:
数据类型 变量名;
变量名 = 初始化值;
例如:
int age;
age = 10;
还可以在同一行定义多个同一种数据类型的变量,中间使用逗号隔开。
例如:
int a = 10, b = 20;
(1)数据类型
Java是一个强类型语言,Java中的数据必须明确数据类型。
Java中的数据类型包括基本数据类型和引用数据类型两种。
Java中的基本数据类型:
数据类型 | 关键字 | 内存占用 | 取值范围 |
整数 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int(默认) | 4 | -2的21次方到2的31次方-1 | |
long | 8 | -2的63次方到2的63次方-1 | |
浮点数 | float | 4 | 负数:-3.402823E+38到-1.401298E-45 正数:1.401298E-45到3.402823E+38 |
double(默认) | 8 | 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324到1.797693E+308 | |
字符 | char | 2 | 0~65535 |
布尔 | boolean | 1 | true、false |
引用数据类型:(暂不做详细介绍)
- 变量的使用:通过变量名访问即可。
- 变量的注意事项:
- 同一范围内 不能定义相同名字的变量
- 变量使用之前必须先赋值
- 变量只在当前{}内有效
- long类型的变量 数据后面要加L,float类型数据后面要加F
五、符号
1.基本符号
以HelloWorld为例来介绍基本符号
public class HelloWorld {
public static void main(String[] args){
System.out.print("Hello World!");
}
}
空格:每个单词之间必须用空格隔开。
{ } :表示范围,里面可以写多条语句,且可以继续写{}。
( ) :强制类型转换、运算中如果有()先算()内的表达式、结构语句、方法的定义和调用
[ ] :数组
" " :字符串
’ ’ :字符
. :小数点,表示调用的过程。
2.运算符号
(1)算术运算符
运算符:对常量或者变量进行操作的符号。
表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例:
int a = 10;
int b = 20;
int c = a + b;
+ :是运算符,并且是算术运算符。
a + b :是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。
符号 | 作用 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余 |
(2)赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a×b的值给a |
/= | 除后赋值 | a/=b,将a÷b的商给a |
%= | 取余后赋值 | a%=b,将a÷b的余数给a |
注意:扩展的赋值运算符隐含了强制类型转换。
(3)自增自减运算符
符号 | 作用 | 说明 |
---|---|---|
++ | 自增 | 变量的值加1 |
- - | 自减 | 变量的值减1 |
注意:
- ++和- -既可以放在变量的后边,也可以放在变量的前边。
- 单独使用的时候,++和–无论是放在变量的前边还是后边,结果是一样的。
- 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者- -。
参与操作的时候,如果放在变量的前边,先拿变量做++或者–,后拿变量参与操作。
(4)关系运算符
符号 | 作用 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注意事项:
关系运算符的结果都是boolean类型,要么是true,要么是false。
千万不要把“==”误写成“=”。
(5)逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false |
丨 | 逻辑或 | a丨b,a和b都是false,结果为false,否则为true |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
&& | 短路与 | 作用和&相同,但是有短路效果 |
丨丨 | 短路或 | 作用和丨相同,但是有短路效果 |
注意:
- 逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。 - 逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
(6)三元运算符
格式:关系表达式 ? 表达式1 : 表达式2;
范例:a > b ? a : b;
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
(7)位运算符
位运算符指的是二进制的运算,先将十进制数转成二进制后再进行运算。
在二进制运算中,1表示ture,0表示false。
符号 | 计算方式 |
---|---|
& | 遇到0(false)则0(false),两边同时为1(true),结果才是1(true) |
丨 | 遇到1(true)则1(true),两边都是0(false),结果才是0(false) |
^ | 相同为false,不同为true |
~ | 取反,二进制位全部取反,0变1,1变0,包括符号位 |
<< | 有符号左移运算,左边符号位丢弃,右边补齐0 |
>> | 右符号右移运算,根据符号位,补齐左边 |
>>> | 无符号右移,无论左符号位是0还是1,都补0 |
-
& 与运算
36 --00100100 & 40 --00101000 --------------- 00100000 //32 规律 36 --00100100 &-128 --11111111 --------------- 00100100 //36 36 --00100100 & 0 --00000000 --------------- 00000000 //0
-
| 或运算
36 --00100100 | 40 --00101000 //40-36=4 --------------- 00101100 //40+4=44 规律 36 --00100100 | 127 --01111111 --------------- 01111111 //127 36 --00100100 | 0 --00000000 --------------- 00000000 //36
-
^ 异或运算
36 --00100100 ^ 0 --00000000 --------------- 00100100 //36 一个数对0进行异或运算 还是自身 40 --00101000 ^ 40 --00101000 --------------- 00000000 //0 一个数对自己去异或的话 就是0 5^10^10 =5^(10^10) = 5^0 = 5; 5+10+10 = 25
-
~取反运算
~36 --00100100 ---------------- 11011011 //-91
-
<< 左移
100 <<2 00000000 00000000 00000000 01100100 __00000000 00000000 00000001 10010000 400 =100*4 -100 << 2 10000000 00000000 00000000 01100100 这是-100的原码 11111111 11111111 11111111 10011011 反码 11111111 11111111 11111111 10011100 补码 从此处进行位运算 __11111111 11111111 11111110 01110000 补码 __11111111 11111111 11111110 01101111 反码 __10000000 00000000 00000001 10010000 原码 -400 = -100 *4
-
>>有符号右移
100 >>2 00000000 00000000 00000000 01100100 00000000 00000000 00000000 00011001__ 25 = 100/4 -100 >> 2 0000000 00000000 00000000 01100100 这是-100的原码 11111111 11111111 11111111 10011011 反码 11111111 11111111 11111111 10011100 补码 从此处进行位运算 11111111 11111111 11111111 11100111__ 补码 11111111 11111111 11111111 11100110__ 反码 10000000 00000000 00000000 00011001__ 原码 -25 = -100/4
-
>>> 无符号右移
100 >>>2 00000000 00000000 00000000 01100100 00000000 00000000 00000000 00011001__ 25 = 100/4 -100 >>> 2 0000000 00000000 00000000 01100100 这是-100的原码 11111111 11111111 11111111 10011011 反码 11111111 11111111 11111111 10011100 补码 从此处进行位运算 00111111 11111111 11111111 11100111__ 正数 不区分原反补