目录
2.1代码注释与编码规范
2.1.1代码注释
1.单行注释 //为单行注释标记,从符号“//"开始直到换行为止的所有内容均作为注释释而被编译器忽略。语法如下:
//注释内容
例如,以下代码为声明的int型变量添加注释:
int age;
//声明int型变量用于保存年龄信息2.多行注释 /**/为多行注释标记,符号“/*”与“*/”之间的所有内容均为注释内容。注释中的内容可
2.1.2编码规范
(1)每一条语句要单独占一行,一条命令要以分号结尾。
对于变量的命名并不是任意的,应遵循以下几条规则
(1)变量名必须是一个有效的标识符。
(3)变量名不能重复。
(4)应选择有意义的单词作为变量名。
2.2变量与常量关键词
2.2.1标识符与关键字
(1)类名:通常使用名词,第一个单词字母必须大写,后续单词首字母大写。
(2)方法名:通常使用动词。第一个单词首字母小写,后续单词首字母大写。
(3)变量:第一个单词首字母小写,后续单词首字母大写。
(4)常量:所有字母均大写。
(5)单词的拼接法:通常使用“userLastName"方式拼接单词,而不是user-last-name
关键字
2.2.2变量
(1)变量名必须是一个有效标识符。
(2)变量名不可以使用java 中的关键字。
(3)变量名不能重复。
(4)应选择有意义的单词作为变量名。
例2.1
public static void main(String[] args) {//主函数
// TODO Auto-generated method stub
final double pi =3.14; //声明常量PI
//pi =1.1; //再次给常量赋值会报错
System.out.println("常量PI的值为:"+pi);//输出常量的值
System.out.println("半径为3的圆的周长为:"+(pi*2*3));//使用常量
System.out.println("半径为4的圆的周长为:"+(pi*4*4));//使用常量
}
}
结果
2.3基本数据类型
2.3.1整数类型
例2.2
public class JING { //创建jing
public static void main(String[] args) {//主函数
int a=11; //十进制类型
System.out.println(a); //输出十进制表示的整形
int b=011; //八进制类型
System.out.println(b); //输出八进制表示的整形
int c=0x11; //十六进制类型
System.out.println(c); //输出十六进制表示的整形
}
}
结果
例2.3
public class DoubleUnAccurate1 { //创建DoubleUnAccurate1的类
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
double a=4.35*100; //用double计算4.35*100的结果
System.out.println("a="+a); //输出这个double值
int b=(int)a; //将double类型强制转换成int类型
System.out.println("b="+b); //输出int值
System.out.println("a的四舍五入值="+Math.round(a)); //使用四舍五入
}
}
结果
例2.4
public class Three { //创建Three类
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
double a=0.1; //定义double为0.1 a值
double b=2.0-1.9; //定义double为2.0-1.9 b值
System.out.println("a="+a); //输出a值得计算方法
System.out.println("b="+b); //输出b值得计算方法
System.out.println("a==b的结果:"+(a==b)); //a==b的结果false
}
}
结果
例2.5
public static void main(String[] args) {//主函数
// TODO Auto-generated method stub
char cl='\\'; //反斜杠转义字符
char c2='\\'; //单引号转义字符
char c3='\\'; //双引号转义字符
char c4='\u2605'; //16进制表示的字符
char c5='\101'; //8进制表示的字符
char c6='\t'; //制表符转义字符
char c7='\n'; //换行符转义字符
System.out.println("[" + cl +"]"); //输出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.6 布尔类型
布尔类型又称逻辑类型,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。
尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。 使用
通过关键字boolean 来声明布尔类型变量。
2.4数据转换类型
类型转换是将一个值从 一种类型更改为另种类型的过程。 例如,不仅可以将String类型数据“457”转换为一个数值型,而且可以将任意类型的数据转换为String类型。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的:而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。
数据类型转换有两种方式,即隐式转换与显式转换。
public class BooleanTest { //创建BooleanTest类
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
boolean b; //声明布尔型变量b
boolean b1,b2; //声明布尔型变量b1、b2
boolean b3=true,b4=false; //声明布尔型变量b1赋给初值ture,b2赋值初值false
boolean b5=2<3,b6=(2==4); //声明布尔型变量赋与逻辑判断的结果
System.out.println("b5的结果是:"+b5); //输出布尔型b5的结果
System.out.println("b6的结果是:"+b6); //输出布尔型b6的结果
}
}
类型转换是将一个值从一种类型更改为另一种类型的过程。例如,不仅可以将String类型数据“457”转换为一个数值型,而且可以将任意类型的数据转换为String 类型。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的:而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。
数据类型转换有两种方式,即隐式转换与显式转换。
隐式转换
自动转换隐式转换: int a = 3;
double b=a;
隐式转换
强制转换 显示转换: double c=3.5;
int d=(double)c;
例2.7
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
byte mybyte =127;//声名byte型变量mybyte,并把byte型变量允许的最大值赋值给mybyte
int myint=150; //声明int型变量myint,并赋值150
float myfloat=10; //声明float型变量myfloat,并赋值
char mychar=10; //声明char型变量mychar,并赋值
double mydouble=45.46546; //声明double型变量并赋值
/*将运算结果输出
* 分开结果输出
*/
System.out.println("byte型与float型数据进行运算结果为:"+(mybyte+myfloat));//输出byte型与float型数据
System.out.println("byte型与int型数据进行运算结果为:"+(mybyte*myint));//输出byte型与int型数据
System.out.println("byte型与char型数据进行运算结果为:"+(mybyte/mychar));//输出byte型与char型数据
System.out.println("byte型与char型数据据进行运算结果为:"+(mydouble+mychar));//输出byte型与char型数据
}
}
结果
例2.8
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
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);//double类型强制转换int类型的值
System.out.println("456.6f强制转换成int的结果:"+b);//float类型强制转换long类型的值
System.out.println("97.14强制转换成int的结果:"+c);//double类型强制转换char类型的值
}
}
结果
2.5运算符
例2.9
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int a,b,c=11; //声明整型变量a,b,c
a=32; //将32赋值给变量a
c=b=a+4; //将a与4的和先赋值给变量b,再赋值给变量c
System.out.println("a="+a);//输出a的结果
System.out.println("b="+b);//输出b的结果
System.out.println("c="+c);//输出c的结果
}
}
结果
2.5.2算术运算符
例2.10
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
float num1 = 45.2f; //定义float的值
int num2 = 120; //定义值
int num3 =17, num4=10; //定义3,4的值
System.out.println("num1+num2的和为:"+(num1+num2)); //两数和值
System.out.println("num1-num2的差为:"+(num1-num2)); //两数差值
System.out.println("num1*num2的积为:"+(num1*num2)); //两数之积
System.out.println("num1/num2的商为:"+(num1 /num2)); //输出商值
System.out.println("num3/num4的余数为:"+(num3%num4));//求余
}
}
结果
2.5.3自增和自减运算符
自增和自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增和自减运算符的作用是使变量的值增1或减1。
例2.11
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int a =1; //创整型量初始值为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.12
代码
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int num1 =4,num2=7; //定义三个数
int num3 =7; //定义第三个数
System.out.println("numl<num2 的结果:"+(num1 < num2)); //判断两值
System.out.println("numl>num2 的结果:"+(num1 > num2)); //判断两值
System.out.println("num1==num2的结果:"+(num1 ==num2)); //判断是否等于输出结果
System.out.println("numl!=num2 的结果:"+(num1 != num2)); //输出结果
System.out.println("numl<=num2的结果:"+(num1 <= num2)); //输出结果
System.out.println("num2>=num3的结果:"+(num2>= num3));//输出结果
}
}
结果
2.5.5逻辑运算符
例2.13
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int a = 2; //声明int型变量a
int b =5; //声明int型变量b
boolean result =((a >b) && (a != b)); //声明boolean型变量,用于保存应用逻辑运算符“&&”后的返回
boolean result2 = ((a > b) || (a !=b));// 声明boolean 型变量,用于保存应用逻辑运算符“||”后的返回值
System.out.println(result); // 将量result 输出
System.out.println(result2); //将变量result2输出
}
}
结果
2.5.6位运算符
例2.14
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
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)); //位逻辑与计算布尔值的结果
}
}
结果
2.位移运算符
移位运算有三个,分别是左移<<、右移>>和无符号右移>>>>,这三个运算符都是双目的。
(1)左移是将一个二进制操作数对象按指定的移动位数向左移,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充。左移相当于乘以2的幂。
例2.15
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
int a = 24;//定义a的值
System.out.println(a +"右移两位的结果是:"+ (a >> 2)); //输出a右移两后的值
int b = -16;//定义b为负数
System.out.println(b+"左移三位的结果是:"+ (b << 3));//输出b左移三后的值
int c = -256;//定义负数c
System.out.println(c+"无符号右移2位的结果是:"+ (c >>> 2));//输出c无符号右移2位的结果
}
}
结果
例2.16
public static void main(String[] args) { //主函数
// TODO Auto-generated method stub
byte a = (byte)(-32 >>> 1); //yete无符号右移
System.out.println("byte无符号右移的结果:" + a);//输出结果
short b=(short) (-128 >>> 4); //short无符号右移
System.out.println("short无符号右移的结果:" + b);//输出右移之后的结果
}
}
结果
2.5.7复合赋值运算符
和其他主流编程语言一样,Java 中也有复合赋值运算符。所谓的复合赋值运算符,就是将腻们运算符与其他运算符合并成一个运算符来使用,从而同时实现两种运算符的效果
2.5.8 三元运算符
三元运算符的运算规则为:若条件式的值为ture,则整个表达式取值1,否则取值2.
2.5.10运算符优先级
如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先处理,如下表优先级:
逻辑运算符是对真和假这两种逻辑值进行运算,运算后的结果仍是一一个逻辑值。逻辑运算符包括&& (逻辑与)、II (逻辑或)、! (逻辑非)。逻辑运算符计算的值必须是boolean型数据。在逻辑运算符中,除了“!”是单目运算符之外,其他都是双目运算符。
左移是将一个二进制操作数对象按指定的移动位数向左移,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充
右移是将一个二进制的数按指定的位牧向右移动,右边(低位端)溢出的位被丢弃山乐边(高位端)用符号位补充,正数的符号位为0,负数的符号为1
无符号右移是将一个二进制的数按指定的位数向右移动,右边(低位端)溢出的位被丢车、左边(高位端)一律用0填充,运算结果相当于除以2的幂