2.1代码注释与编码规范
2.1.1
1.单行注释标记
“//”为单行标记
2.文档注释
“/** */”为文档注释标
3.多行注释
“/**/”为多行注释标记
package h;
public class zy214 {
public static void main(String[] args) {
short x = -123;
System.out.println("12与8的结果为;" + (12 & 8));//单行注释
System.out.println("4与8的结果为;" + (4 | 8));/**
System.out.println("31与22的结果为;" + (31 ^ 22));*/
System.out.println("123取反的结果为;" + x);
System.out.println("2>3与4!=7的与结果为;" + (2 > 3 & 4 != 7 ));/*
System.out.println("2>3与4!=7的或结果为;" + (2 > 3 | 4 != 7 ));*/
System.out.println("2>3与4!=7的与异或结果为;" + (2 > 3 ^ 4 != 7 ));
}
}
2.1.2编码规范
1、每条语句要单独占一行,一条命令要以分号结束。
2、在声明变量时,尽量使每个变量的声明单独占一行,即使是相同的数据类型,也要将其放置在单独的一行上,这样有助于添加注释。
3、在java代码,中关键字与关键字之间如果有多个空格,这些空格均被视作一个。
4、为了方便日后的维护,不要使用技术性很高,难懂,易混淆判断的语句。
5、对于关键的方法要多加注释,这样有助于阅读者了解代码结构。
2.2变量和常量
2.2.1标识符和关键字
1.标识符
Java语言规定标识符由任意顺序的字母,下划线,美元符号和数字组成,并且第一个字符不能是数字标识符,不能是Java中的保留关键字。
2.关键字
int | public | this | finally | boolean | abstract |
continue | float | lonng | short | throw | throws |
return | break | for | static | new | interface |
if | goto | default | byte | do | case |
strictfp | package | super | void | try | switch |
else | catch | implements | private | final | class |
estends | volatile | while | synchronized | instanceof | char |
protecde | import | transient | default | double |
2.2.2变量
对于变量的命名并不是任意的,应遵循以下几条规则:
(1)变量名必须是一个有效的标识符。
(2)变量名不可以使用 Java 中的关键字。
(3)变量名不能重复。
(4)应选择有意义的单词作为变量名
2.2.3常量
在程序运行过程中,一直不会改变的量称为常量,通常也被称为“final 变量”。
package h;
public class he {
public static void main(String[] args) {
final double PI = 3.14;//声明常量Pi
// PI = 1.1//再次赋值会报错;
System.out.print("常量PI的值为;" + PI);//输出PI的值
System.out.print("半径为3的圆的周长为;" + (PI * 2 * 3) );//输出半径为3的圆的周长
System.out.print("半径为3的圆的周长为;" + (PI * 4 * 4) );//输出半径为3的圆的周长
}
}
2.3基本数据类型
2.3.1整数类型
1、int型
字节为4,长度为:32位,取值范围:-2147483648~2147483647
2、byte型
字节为1,长度为:8位,取值范围:-128~127
3、short型
字节为2,长度为:16位,取值范围:-32768~32767
4、long型
字节为8,长度为:64位,取值范围:-9223372036854775808~9223372036854775807
package h;
public class zy {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a = 11;//十进制整形
System.out.println(a);//输出十进制整形
int b = 011;//八进制整形
System.out.println(b);//输出八进制整形
int c = 0x11;//十六进制整形
System.out.println(c);//输出十六进制整形
}
}
2.3.2浮点类型
1、float型
字节为4,长度为:32位,取值范围:1.4E-45~3.4028235E38
2、double型
字节为8,长度为:64位,取值范围:4.9E-324~1.7976931348623157E308
package h;
public class l {
public static void main(String[] args) {
// TODO 自动生成的方法存根
double a = 4.35 * 100;//用double计算4.358100的值
System.out.println("a = " + a);//输出这个值
int b = (int) a;//将double类型强制转化成int类型
System.out.println("b = "+ b);//输出int的值
System.out.println("a的四舍五入的值 = " + Math.round(a));//四舍五入
}
}
package dd;
public static void main(String[] args) {
// TODO 自动生成的方法存根
double a = 0.1;//给a赋值
double b = 2.0-1.9;//用double计算2.0-1.9的值
System.out.println("a = "+ a);//输出double的值
System.out.println("b = "+ b);//输出double的值
System.out.println("a==b 的结果;"+ ( a== b));//a==b的值是false
/*
* Math.abs()是取绝对值的方法,1e-6表示1*10的-6次方,是计算机中最小数的概念
* 如果两个数之间的绝对值小于最小数,则认为这两个数是相等的。
*/
boolean bool = Math.abs(a - b) < (1e-6);
System.out.println("两数之差绝对值小于最小数的结果;" + bool);
}
}
2.2.3字符类型
1、char型
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在声明字符型变量时,要以单引号表示,如's’表示一个字符。
2、转义字符
转义字符 含义
\' 单引号字符
\" 双引号字符
\\ 反斜杠字符
\t 垂直制表符,将光标移到下一个制表符的位置
\r 回车
\n 换行
\b 退格
\f 换页
package h;
public class zyzf {
public static void main(String[] args) {
char c1 = '\\';//反斜杠转义字符
char c2 = '\'';//单引号转义字符
char c3= '\"';//双引号转义字符
char c4 = '\u2505';//十六进制转义字符
char c5 = '\101';//八进制转义字符
char c6 = '\t';//制表符转义字符
char c7 = '\n';//换行符转义字符
System.out.println("[" + c1 + "]");//输出c1转义字符
System.out.println("[" + c2 + "]");//输出c2转义字符
System.out.println("[" + c3 + "]");//输出c3转义字符
System.out.println("[" + c4 + "]");//输出c4转义字符
System.out.println("[" + c5 + "]");//输出c5转义字符
System.out.println("[" + c6 + "]");//输出c6转义字符
System.out.println("[" + c7 + "]");//输出c7转义字符
}
}
2.3.4布尔类型
布尔类型又称逻辑类型,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
通过关键字boolean 来声明布尔类型变量。
package dd;
public static void main(String[] args) {
boolean b;//声明布尔型变量b
boolean b1,b2;//声明布尔型变量b1,b2
boolean b3 = true,b4= false;//声明布尔型变量b1赋给初值true,b2赋给初值false
boolean b5 = 2 < 3, b6 = (2 == 4);//声明布尔型变量与逻辑判断的结果
System.out.println("b5的结果是;" + b5);//输出b5的值
System.out.println("b6 的结果是;" + b6);//输出b6的值
}
}
2.4数据类型转换
2.4.1隐式转换
package h;
public class sdhah {
public static void main(String[] args) {
// TODO 自动生成的方法存根
byte mybyte = 127;
int myint = 150;//声明int型变量myint,并赋值150
float myfloat = 452.12f;//声明float型变量myfloat,并赋值
char mychar = 10;//声明char型变量mychar,并赋值
double mydouble = 45.46546;//声明double型变量,并赋值
System.out.println("byte型与float型数据进行运算结果为;" + (mybyte+myfloat));
System.out.println("byte型与int型数据进行运算结果为;" + mybyte * myint);
System.out.println("byte型与char型数据进行运算结果为;" + mybyte / mychar);
System.out.println("byte型与char型数据进行运算结果为;" + (mybyte + mychar));
}
}
2.4.2显式转换
package dd;
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a = (int) 45.23;//double类型强制转化成int类型
long b = (long) 456.6F;//float类型强制转化成long类型
char c =(char)97.14 ;//double型强制转化成char的型
System.out.println("45.23强制转换成int的结果;" + a);//输出结果
System.out.println("456.6F强制转换成long的结果;" + b);//输出结果
System.out.println("97.14强制转换成char的结果;" + c);//输出结果
}
}
2.5运算符
2.5.1赋值运算符
package dd;
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a,b,c = 11;//声明整形变量a,b,c
a = 32;//将32的值赋给变量a
c = b = a + 4;//计算
System.out.println("a = " + a);//输出
System.out.println("b = " + b );//输出
System.out.println("c = " + c );//输出
}
}
2.5.2算术运算符
运算符 说明 实例 结果
+ 加 12.45f+15 27.45
- 减 4.56-0.16 4.4
* 乘 5L*12.45f 62.25
/ 除 7/2 3
% 除于 12%10 2
package dd;
public static void main(String[] args) {
// TODO 自动生成的方法存根
float num1 = 45.2f;//赋值
int num2 = 120;//赋值
int num3 = 17,num4 = 10;//赋值
System.out.println("num1*num2的和为;" + (num1 + num2));//输出num1+num2的值
System.out.println("num1*num2的差为;" + (num1 - num2));//输出num1-num2的值
System.out.println("num1*num2的积为;" + (num1 * num2));//输出num1*num2的值
System.out.println("num1*num2的商为;" + (num1 / num2));//输出num1/num2的值
System.out.println("num3*num4的余数为;" + (num3 % num4));//输出num3%num4的值
}
}
2.5.3自增和自减运算符
符合在前 ++i --i 先计算后使用
符合在后 i++ i-- 先使用后计算
package h;
public class dd {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a = 1;
System.out.println("a = " + a);//输出此时a的值
a++;//a自增+1
System.out.println("a++ = " + a);//输出此时a的值
a++;//a自增+1
System.out.println("a++ = " + a);//输出此时a的值
a++;//a自增+1
System.out.println("a++ = " + a);//输出此时a的值
a--;//a自减-1
System.out.println("a-- = " + a); //输出此时a的值
}
}
2.5.4关系运算符
运算符
说明
实例
结果
==
等于
2==3
false
<
小于
2<3
true
>
大于
2>3
false
<=
小于等于
5<=6
true
>=
大于等于
7>=7
true
!=
不等于
2!=3
true
package h;
public class 关系运算符 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int num1 = 4,num2 = 7;//赋值
int num3 = 7;//赋值
System.out.println("num1<num2的结果;" + (num1 < num2));//输出num1<num2的结果
System.out.println("num1>num2的结果;" + (num1 > num2));//输出num1》num2的结果
System.out.println("num1==num2的结果;" + (num1 == num2));//输出num1==num2的结果
System.out.println("num1!=num2的结果;" + (num1 != num2));//输出num1!=num2的结果
System.out.println("num1<=num2的结果;" + (num1 <= num2));//输出num1《=num2的结果
System.out.println("num1>=num2的结果;" + (num2 >= num3));//输出num1》=num3的结果
}
}
2.5.5逻辑运算符
运算符
含义
举例
结果
&&
逻辑与(并且)
A&&B
(对)与(错)=错
||
逻辑或(或者)
A||B
(对)或(错)=对
!
逻辑非(相反)
!A
不(对)=错
package h;
public class 逻辑运算符 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a = 2;//赋值
int b = 5;//赋值
boolean result = ((a > b) && (a != b));//声明boolean型变量,用于逻辑运算符“&&”后的返回值
boolean result2 = ((a > b) || (a != b));//声明boolean型变量,用于逻辑运算符“||”后的返回值
System.out.println(result);//输出
System.out.println(result2);//输出
}
}
2.5.6位运算符
运算符
含义
举例
&
与
a&b
|
或
a|b
~
取反
a~b
^
异或
a^b
<<
左移位
a<<b
>>
右移位
a>>b
>>>
无符号右移位
a>>>b
package h;
public class 位运算符 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
short x = ~123;//创建short变量x
System.out.println("12与8的结果为;" + (12 & 8));//位逻辑与计算整数的结果
System.out.println("4或8的结果为;" + (4 | 8));//位逻辑或计算整数的结果
System.out.println("31异或22的结果为;" + (31 ^ 22));//位逻辑异或计算整数的结果
System.out.println("123取反的结果为;" + x);//位逻辑取反计算整数的结果
System.out.println("2>3与4!=7的与结果为;" + (2 > 3 & 4!=7));//位逻辑与计算布尔值的结果
System.out.println("2>3与4!=7的或结果为;" + (2 > 3 | 4!= 7));//位逻辑或计算布尔值的结果
System.out.println("2<3与4!=7的与异或结果为;" + (2 < 3 ^ 4 !=7));//位逻辑异或计算布尔值的结果
}
}
package h;
public class 位运算符2 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a = 24;//赋值
System.out.println(a + "左移两位的结果是;" + (a >> 2));//右移两位的结果
int b = -16;//赋值
System.out.println(b + "左移两位的结果是;" + (b >> 3));//左符号右移两位的结果
int c = -256;//赋值
System.out.println(a + "无符号右移两位的结果是;" + (c >>> 2));//无符号右移两位的结果
}
}
package h;
public class 位运算符3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
byte a = (byte) (-32 >>> 1);//byte无符号右移的
System.out.println("byte无符号右移的结果;" + a);//byte无符号右移的结果
short b = (short) (-128 >>> 4);//short无符号右移
System.out.println("short无符号右移的结果;" + b);//short无符号右移的结果
}
}
2.5.8三元运算符
三元运算符的使用格式为:条件式?值1:值2
三元运算符的运算规则为:若条件式的值为truc,则整个表达式取值1,否则取值 2
2.5.9圆括号
圆括号可以提升公式中计算过程的优先级,在编程中常用,使用圆括号更改运算的优先级,可以得到不同的结果
2.5.10运算符优先级