JAVA20231124
081082083标识符的命名规则和规范(背下来)
-
标识符概念
- JAVA对各种变量、方法和类等命名时使用的字符序列称为标识符
- 凡是自己可以起名字的地方都叫标识符 int num1 = 90;
-
标识符的命名规则(必须遵守)
- 由26个英文字母大小写,0-9,_或$组成
- 数字不可以开头。例如: int 3ab = 1;//错误
- 不可以使用关键字和保留字,但能包含关键字和保留字//int class = 10;错误! int abcclass = 10;正确!
- Java中严格区分大小写,长度无限制。//int totalNum = 10; int n = 90;
- 标识符不能包含空格。//int a空格b = 90;错误!
判断下列变量名是否正确:
hsp //ok hsp12 //ok 1hsp //错误, 数字不能开头 h-s // 错误 , 不能有 - x h // 错误, 有空格 h$4 // ok class //错误,class 关键字 int // 错误 ,int 是关键字 double //错误 ,double 是关键字 public //错误 ,public 是关键字 static //错误 ,static 是关键字 goto //错误, goto 是保留字 stu_name //ok
-
标识符命名规范
- 包名:多单词组成时所有字母都小写:aaa.bbb.ccc//比如com.hsp.crm
- 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz[大驼峰]比如:TankShotGame
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz[小驼峰,简称驼峰法]比如:tankShotGame
- 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ比如:定义一个所得税率TAX_RATE
- 后面我们学习到类、包、接口、等时我们的命名规范要这样遵守,更加详细的看文档
附:标识符命名规范文档文件《JAVA代码规范》
084关键字
-
定义
被Java语言赋予了特殊含义,用做专门用途的字符串 -
特点
关键字中所有字母都为小写 -
常用的关键字
084保留字
- 介绍
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字:byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const
085键盘输入语句
-
介绍
在编程过程中,需要接受用户输入的数据,就可以使用键盘输入语句来获取。Input.java,需要一个扫描器(对象),就是Scanner
-
步骤
- 导入该类的所在包,java.util.*
- 创建该类对象(声明变量)
- 调用里面的功能
-
案例演示:
要求:可以从控制台接受用户信息【姓名,年龄,薪资】
086087088089090091092093094095096进制
-
进制介绍
对于整数,有四种表达方式:二进制:0,1 满2进1 以0b或0B开头
十进制:0-9 满10进1
八进制:0-7 满8进1 以数字0开头表示
十六进制:0-9及A(10)-F(15),满16进1,10(16) 以0x或0X开头表示。此处的A-F不区分大小写
-
举例说明
//演示四种进制 public class BinaryTest{ public static void main(String[] args){ //n1二进制 int n1 = 0b1010; //n2 十进制 int n2 = 1010; //n3 八进制 int n3 = 01010; //n4十六进制 int n4 = 0x1010; System.out.println("n1 =" + n1); System.out.println("n2 =" + n2); System.out.println("n3 =" + n3); System.out.println("n4 =" + n4); } }
运行结果:
-
进制图示
-
进制转换
-
非十进制转十进制
- 二进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的 (位数-1)次方,然后求和。 - 八进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的 (位数-1)次方,然后求和。 - 十六进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的 (位数-1)次方,然后求和。 - 课堂练习(将下列非十进制数转换为十进制)
0b1011 = 1+2+8 =11
oB110001100 = 4+8+128+256 = 396
0234 = 4+3 * 8 + 2 * 64 = 156
02456 = 6+5 * 8 + 4 * 64 + 2 * 512 = 1328
0x23A = 10+3 * 16 + 2 * 256 = 570
0XA45 = 5+4 * 16+ 10 * 256 = 2629
- 二进制转十进制
-
十进制转非十进制
-
十进制转二进制
规则:将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。 -
十进制转八进制
规则:将该数不断除以8,直到商为0为止,然后将每步得到的余数倒过来,就是对应的八进制。
-
十进制转十六进制
规则:将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。 -
课堂练习(将十进制转非十进制)
34转二进制:123转二进制:
131转八进制:
678转八进制:
237转十六进制:
8912转十六进制:
-
-
二进制转八进制、十六进制
- 二进制转八进制
规则:从低位开始,将二进制每三位一组,转成对应的八进制数即可。 - 二进制转十六进制
规则:从低位开始,将二进制每四位一组,转成对应的十六进制数即可。 - 课堂练习
0b11010101(二转八)—>0b11(3)010(2)101(5)->0325
0b11100101(二转八)—>0b11(3)100(4)101(5)—>0345
0b11010101(二转十六)—>0b1101(13)0101(5)—>0xD5
0b1110010110(二转十六)—>0b11(3)1001(9)0110(6)—>0x396
- 二进制转八进制
-
八进制转二进制
- 规则:将八进制数每1位,转成对应的一个3位的二进制数即可
- 课堂练习
0237(八转二)—>02(010)3(011)7(111)—>0b010011111
01230(八转二)—>01(001)2(010)3(011)0(000)—>0b001010011000
-
十六进制转二进制
- 规则:将十六进制数每一位,转成对应的一个4位的二进制数即可
- 课堂练习
0x23B(十六转二)—>0x2(0010)3(0011)B(1011)—>0b001000111011
0xAB29(十六转二)—>0xA(1010)B(1011)2(0010)9(1001)—>0b1010101100101001
-
098二进制在运算中的说明
- 二进制是逢2进位的进位制,0、1是基本算符
- 现代的电子计算机技术全部采用的是二进制,因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。计算机内部处理的信息,都是采用二进制数来表示的。二进制(Binary)数用0和1两个数字及其组合来表示任何数。进位规则是“逢2进1”,数字1在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增。
098原码、反码、补码
精简为几句话,对于有符号的而言(背下来):
- 二进制的最高位是符号位:0表示正数,1表示负数(口诀:0->0 1->-)
- 正数的原码,反码,补码都一样(三码合一)
- 负数的反码 = 它的原码符号位不变,其他位取反
- 负数的补码 = 它的反码+1,负数的反码 = 负数的补码-1
- 0的反码,补码都为0
- Java没有无符号数,换言之,Java中的数都是有符号的
- 在计算机运行的时候,都是以补码的方式来运算的
- 当我们看运算结果的时候,要看他的原码(重点)
0990100位运算
-
Java中有7个位运算(&、|、^、~、>>、<<、和 >>>)
分别是按位与&、按位或|、按位异或^、按位取反~,它们的运算规则是:
-
按位与&:两位全为1,结果为1,否则为0
-
按位或|:两位有一个为1,结果为1,否则为0
-
按位异或^:两位一个为0,一个为1,结果为1,否则为0
-
按位取反~:0->1,1->0
-
算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位
//int a=1>>2; //1 => 00000001 => 00000000 本质 1 / 2 / 2 = 0 -
算数左移<<:符号位不变,低位补0
//int c=1<<2; //1 => 00000001 => 00000100 本质 1 * 2 * 2 = 4 -
()>>>逻辑右移也叫无符号右移,运算规则是:低位溢出,高位补0
特别说明:没有<<<符号
-
-
随堂练习
2&3= ~-2= ~2= 2|3= 2^3= int a = 1>>2; int b = 1<<2;
4<<3 15>>2
在计算机运行的时候,都是以补码的方式来运算的,
当我们看运算结果的时候,要看他的原码(重点)
097位运算的思考题
-
请看下面的代码段,回答a,b,c,d,e结果是多少?
public static void maiin(String []args) { int a=1>>2; // 1 向右位移 2 位 int b=-1>>2;//算术右移 int c=1<<2;//算术左移 int d=-1<<2;// int e=3>>>2;//无符号右移 //a,b,c,d,e 结果是多少 System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); System.out.println("d="+d); System.out.println("e="+e); }
-
请回答在java中,下面表达式运算结果是:(位运算)
~2=? // 按位取反 2&3=?// 2 按位与 3 2|3=? ~-5=? 13&7=? 5|4=? -3^3=?//^ 按位异