一、Java标识符命名规范
标识符:用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列;
合法的标识符:----字母、数字、下划线‘_’、美元符号‘$’组成;不能用数字开头,不能用关键字,对大小写敏感;
例:helloWord 、DateClass、_12345、$B25_C7等;
二、Java关键字
有一些专门的词汇,Java已经赋予了特定的含义,只能用于特定的地方,不能用这些词汇来定义标识符,
不能改变这些词汇的含义;
三、Java的八种数据类型
整数类型:byte 、short 、int 、long
浮点数类型:float 、double
布尔类型:Boolean
字符类型:char
数据类型应用:在声明变量时,要指明变量的类型,不同的类型在内存中分配的空间大小也不同
四、运算符
定义:用来表示数据的运算、赋值和比较
分类:算数运算符,赋值运算符,比较运算符,逻辑运算符,位运算符
1、算数运算符
2、赋值运算符
例:int a=2;int b=a+1等
3、比较运算符
4、逻辑运算符
5、位运算符
分为按位运算符和移位运算符
(1)、按位运算符
按位运算符是来操作整数基本数据类型中的单个“比特”(bir),即二进制位,位运算符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
1、“与”、“位与”(&)
按位“与”操作符,如果两个数的二进制,相同位数都是1,则该位结果是1,否则是0.
例15&4
5的二进制是 0000 0000 0000 0101
4的二进制是 0000 0000 0000 0100
则结果是 0000 0000 0000 0100 转为十进制是4。
2、“或”、“位或”(|)
按位“或”操作符,如果两个数的二进制,相同位数有一个是1,则该位结果是1,否则是0
例25 | 4
5的二进制是 0000 0000 0000 0101
4的二进制是 0000 0000 0000 0100
则结果是 0000 0000 0000 0101 转为十进制是5。
3、“异或、“位异或”(^)
按位“异或”操作符,如果两个数的二进制,相同位数只有一个是1,则该位结果是1,否则是0
例35 ^ 4
5的二进制是 0000 0000 0000 0101
4的二进制是 0000 0000 0000 0100
则结果是 0000 0000 0000 0001 转为十进制是1
4、“非”、“位非”(~)也称为取反操作符
按位“非”操作符,属于一元操作符,只对一个操作数进行操作,(其他按位操作符是二元操作符)。按位“非”生成与输入位相反的值,——若输入0,则输出1,若输入1,则输出0。
例4~5
5的二进制是 0000 0000 0000 0101
则~5是1111 1111 1111 1010 转为十进制是 -6。
这里出现负数,强行插入一波^_^。
电脑的的世界中只有0和1,那么负数怎么表示呢?
二进制的正负是从高位看,最高位如果1则是负数,如果是0则是正数。
如果负数单纯是把最高位变为1的话,在运算中会出现不是我们想要的值,所以引入了:原码,反码,补码。正数的原码,反码,补码都一样,负数的反码是对除了符号位(最高位)对原码取反,补码是对反码+1
负数的二进制转化,计算机计算是用的补码
1、首先取出这个数的原码的二进制,
2、然后再求出反码
3、最后求出补码
例5-5
-5的原码是 1000 0000 0000 0101
求出反码的是1111 1111 1111 1010
求出补码是 1111 1111 1111 1011
--------------------- 本文来自 mxiaoyem 的CSDN 博客 ,全文地址请点击:/mxiaoyem/article/details/78569782?utm_source=copy
移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。
(2)移位运算符
移位操作符操作的运算对象也是二进制的“位”。移位操作符只可用来处理整数类型,左移位操作符(<<)能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0),“有符号”右移位操作符(>>)则按照操作符右侧指定的位数将操作符左边的操作数向右移。“有符号”右移位操作符使用“符号扩展”;若符号位正,则在高位插入0;若符号位负。则在高位插入1。java中增加了一种“无符号”右移位操作符(>>>),他使用“零扩展”;无论正负,都在高位插入0。这一操作符是C或C++中所没有的。
例65<<2 等于20
5的二进制是 0000 0000 0000 0101
左移两位 0000 0000 0001 0100
例75>>2 等于 1
5的二进制是 0000 0000 0000 0101
右移两位 0000 0000 0000 0001
例8-5>>2 等于 -2
-5的二进制是 1111 1111 1111 1011
右移两位1111 1111 1111 1110 转十进制,例5反着来,先-1,然后取反
如果对char、byte或者short类型的数值进行移位处理,那么在移位进行之前,它们会被转为int类型,并且得到结果也是一个int类型的值,只有数值右端的底5位才有用,这样可防止我们移位超过int类型所具有的位数,(因为2的5次方位为32,而int类型只有32位)。若对一个long类型的数值进行处理,最后得到结果也是long类型,此时只会用到数值右端的底6位,以防止移位超过long类型数值具有的位数。
“移位”可与“等号”(<<=或>>=或>>>=)组合使用。此时,操作符左边的值会移动由右边的值指定的位数,再将得到的结果赋值给左边的变量。但在进行“无符号”右移位结合赋值操作时,可能会遇到一个问题,如果对byte或short值进行这样的移位运算,得到的可能不是正确的结果。他们会先被转换成int类型,再进行右移操作,然后被截断,赋值给原来的类型,在这种情况下可能得到-1的结果
五、Java类型转换
1、自动类型转换
将一种类型的变量赋给另一种类型的变量时,只要满足以下条件,就可以自动转换类型
(1)两种类型兼容
(2)目标类型大于原类型 Byte~short~char~int~long~float~double
2、强制类型转换
强制转换用于显式类型转换。如果被转换的值的数据类型大于其目标类型就会丢失部分信息。
类型强制转换使程序将变量视为某种类型,尽管此变量中包含的是另一类型的数据。
由高----低示例:
char c=‘好’;
int b = (int) c;// 将 c 转换为整型
例如:
§char a=‘好‘;System.out.println(a);好
§intb =(int)a;System.out.println(b);22909
六、注释方法
1、//注释一行
2、/*注释中间所有内容*/
3、/**
*备注注释
*/
七、Java扫描器
定义声明:
Scanner sc = new Scanner(System.in);
在java.util包下面
使用方法:
整数类型:int a =sc.nextInt();大写的i
串类型:String s=sc.next();
字符类型:char c=sc.next().charAt(0);