目录
第二章 Java基础语法
一、注释
是给程序员看的代码的说明性文字
-
单行注释:// 注释内容
-
多行注释:/* 注释内容*/
-
文档注释:/** 注释内容 */ ,可以使用javadoc命令把文档注释内容提前到说明文档中。
二、关键字
Java定义好的一些赋予了特殊含义的字符串(单词),比如public,class,void 等
保留字:const,goto
特殊值:true,false,null
三、标识符
编写Java程序过程中,我们给类、接口、变量、方法等起名字用的字符串(单词)
-
标识符命名规则:必须遵守
-
由英文大小写字母、数字、下划线_、美元符号$组成。
-
不能由数字开头
-
不能使用关键字和特殊值
-
-
标识符命名规范:建议遵守,不遵守会被鄙视
-
见名知意
-
类名、接口名等:每个单词的首字母都大写(大驼峰法则),形式:XxxYyyZzz, 例如:HelloWorld,String,System等
-
变量、方法名等:从第二个单词开始首字母大写(小驼峰法则),其余字母小写,形式:xxxYyyZzz, 例如:age,name,bookName,main
-
包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz, 例如:java.lang
-
常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ, 例如:MAX_VALUE,PI
-
四、常量
程序运行过程中其值不会发生改变的量
-
自定义常量,使用final关键字
final int A = 10;//最终变量,即常量
A = 20;//不能修改
2. 字面常量,字面值(literal)
字面量分类 | 举例 |
---|---|
字符串字面量 | "HelloWorld" |
整数字面量 | 12,-23 |
浮点字面量 | 12.34 |
字符字面量 | 'a','A','0','好' |
布尔字面量 | true,false |
空值字面量 | null |
五、变量
程序运行过程中,其值可以发生改变的量
-
作用:用于存储一个数据
-
本质:变量是内存中的一块空间,可以存储数据
3.变量的声明与赋值
-
声明变量的同时并赋值
数据类型 变量名 = 变量值
int a = 18;
a = 19;//重新赋值
System.out.println(a);//19 输出变量值
System.out.println("a = "+a);//a = 19
先声明,再赋值
数据类型 变量名;
变量名 = 变量值;
int b;
b = 100;
同时声明多个同类型变量
数据类型 变量名1,变量2,....4.
int a,b,c;
a=1;
b=2;
c=3;
int x=1,y=2,z=3;
4.变量的使用注意事项
-
变量必须先声明才能使用,否则报错:错误: 找不到符号
-
变量必须先初始化值才能使用,否则,错误: 可能尚未初始化变量age
-
变量有作用域,其作用域为声明变量所在的大括号内
-
同一个作用域内,不能声明同名的变量
六、计算机如何存储数据(了解)
-
进制:
-
二进制 : 每位的数值 0,1
-
十进制:每位的数值0~9
-
八进制:每位的数值0~7
-
十六进制:每位的数值0~9,a~f
-
-
计算机存储单位
-
位(bit):是数据存储的最小单位,也就是一个二进制位。其中8 bit 就称为1个字节(Byte)。
-
字节(Byte):是计算机信息技术用于计量存储容量的一种计量单位,1字节等于8bit。
-
转换关系:
-
8 bit = 1 Byte
-
1024 Byte = 1 KB
-
1024 KB = 1 MB
-
1024 MB = 1 GB
-
1024 GB = 1 TB
-
-
-
计算机如何存储不同类型的数据
计算机底层所有类型的数据都以二进制形式存储。
-
存储整数
存储的是整数的补码形式,要知道补码需要先知道原码和反码。
原码:最高位为符号位,0表示整数,1表示负数,其他位为数值位。
正整数的原码,反码和补码一致,即三码合一
负整数的原码,反码和补码补一样。
反码:在原码基础上,符号位不变,其他按位取反
补码:在反码基础上,加1
-
10的原码:00001010
10的反码:00001010
10的补码:00001010
-10的原码:10001010
-10的反码:11110101
-10的补码:11110110
2.存储小数
-
计算机无法精确存储浮点类型float和double,实际存储的是一个近似值。
-
同样字节存储浮点型数据的范围远大于存储整数。
3.存储字符
计算机借助字符集编码表来存储字符,在编码表中,每个字符都对应一个整数
ASCII码表:使用一个字节表示一个字符,主要是英文等一些常用字符
Unicode字符集,万国码,统一码,全球所有国家常用字符都有收录,使用2个字节表示一个字符。Java的char类型支持Unicode字符集
Java中标识字符的形式有:
-
使用单引号:
'a'
,'中'
-
使用转义字符:
'\''
,'\t'
,'\\'
-
使用Unicode表中的字符的对应数值的十六进制:
'\u1234'
七、数据类型
Java是一种强类型语言,针对不同类型的数据分别定义了不同的数据类型。
1.Java数据类型的分类:
-
引用数据类型:比如String,数组,类,接口等等
-
基本数据类型:4类八种
注意:字面量整数的默认类型是int类型,字面量小数的默认类型是double类型
2.基本数据类型的转换
Java的基本数据类型中除布尔类型外的7种数值类型之间可以相互转换。
隐式自动转换:通常数值范围小的类型转换为数组大的类型会隐式自动转换。
显示强制转换:通过把数值范围大的类型转换为数值范围小的类型需要强制转换。
强制转换的语法格式:(目标类型)变量或值
强制类型转换有风险,可能损失数据,不要随便强制转换。
-
隐式自动转换的情况
-
数值范围小的转换为数组范围的
double a = 100;//int自动转换为double int b = '中';//char自动转换为int
-
不同类型之间混合运算时,全部自动提升为其中最大的类型
byte a = 1; int b = 2; double c = 3; double result = a+b+c;//abc全部自动提升为double进行运算
-
byte、short和char之间运算,全部自动提升为int类型
byte a = 1; char b = 'a'; int result = a+b;//ab全部自动提升为int类型
-
-
显示强制转换的情况
-
数值范围大的转换为 数值范围小的
double a = 12.345; int b = (int)a;//double强制转换为int ,结果是12 byte c = (byte)128;//int强制转换为byte,结果-128
-
强制提升类型
int a = 1; int b = 2; double c = (double)a/b;//把a先强制提升为double再参与运算
-
-
特殊类型转换
字符串String类型与任意类型使用+运算,都是拼接字符串,结果还是String类型
八、运算符
运算符:是一种特殊的符号,用以表示数据的运算、赋值和比较等。
表达式:用运算符连接起来的式子
1.算术运算符:
+,-,*,/除,%求余
自增++ :自动加1
自减-- :自动减1
自增自减运算符的使用:
-
单独使用时,前置和后置效果相同
int a = 10; a++;//后置自增,相当于a= a+1; ++a;//前置自增,相当于a= a+1; System.out.println(a);//12
-
组合使用时,前置和后置效果不同
后置自增自减:先使用,后自增自减
int a = 10; int b = a++; System.out.println(a);//11 System.out.println(b);//10
前置自增自减:先自增自减,再使用
int a = 10; int b = ++a; System.out.println(a);//11 System.out.println(b);//11
2.赋值运算符
=,+=,-=,*=,/=等等
int a = 10;
a += 2;//相当于a= a+2;
System.out.println(a);//12
byte b = 100;
b += 10;//结果b=110
byte c = 100;
c = c + 10;//编译失败 ,c+10结果为int类型不能直接赋值给byte类型的c
3.关系运算符
>,<,>=,<=,==,!=
关系运算符的运算结果一定是布尔类型。
4.逻辑运算符
与&,或|,非!,异或^,
短路与&&
短路或||
逻辑运算符的两边都是布尔类型,运算结果也是布尔类型。
-
与&运算符:并且的意思,两边都为真结果才为真。
-
或|运算符:或者的意思,一边为真,结果就为真。
-
非!运算符:取反,真变假,假变真
-
异或^运算符: 两边相同为假,不同为真
-
双与,双或:运算的最终结果与单与,单或相同,不同的时,如果通过运算符的左边可以判断出最终结果,将不再执行右边,效率高,推荐使用。
System.out.println(false && false);//fasle
5.条件运算符
也称为三目运算符。格式:
布尔表达式 ? 结果1 : 结果2;
执行流程:如果布尔表达式的结果为true,最终结果为结果1,否则为结果2
int age = 18;
String result = age>=18 ? "成年了" : "未成年";
6.位运算符(了解)
按照二进制位进行运算的运算符。位运算符运算效率高。
&按位与,|按位或,^按位异或,~按位取反
<< 左移
>> 右移
>>> 无符号右移
-
左移<< :一个数左移n位结果等于这个数乘以2的n次幂
-
右移>> :一个数右移n为结果等于这个数除以2的n次幂,除不尽时,向下取整。最高位是0补0,是1补1.
-
无符号右移>>> : 最高位永远补0,结果一定是正数。
7.运算符的优先级
提示说明:
(1)表达式不要太复杂
(2)先算的使用()
大体的排序:算术 > 位 > 比较 > 逻辑 > 三元 > 赋值
需要第二章完整学习笔记可以关注私信我哦