Java程序的基本结构:
1、声明包
2、导入类库
3、主类
4、主方法(main方法),包含在主类中
5、变量
6、注释
8种基本数据类型
定义变量格式1:数据类型 变量名字;
定义变量格式2:数据类型 变量名字 = 初值;
定义常量格式:final 数据类型 变量名字 初值;
整数类型
//占用1个字节,取值范围-128~127
byte byte1 = 1;
byte byte2;
//常量
final byte byte3 = 5;
//占用2个字节,取值范围-32768~32767
final short short1 = 32766;
//占用4个字节,取值范围-2147483648~2147483647
int int1 = 2147483649L;
//占用8个字节,取值范围在-9223372036854775808~9223372036854775807
long long1 = 2147383649L;
小数类型
//占用4个字节,能表示8位有效数值
float float1 = 1.123456789F;
//占用8个字节,能表示17位有效数值
double double1 = 1.1234567891234567;
字符类型
//占用2个字节,表示一个Unicode字符,英文字母、阿拉伯数值、汉字、标点符号、特殊符号等等
char char1 = ‘a’;
char char2 = ‘王’;
布尔类型
占用字符节数不确定,可以想象成1个字节,取值范围:ture(表示yes)和false(表示no)
boolean boolean1 = true;
类型转换
类型转换:隐式类型转换和显式(强制)类型转换
具体规则:byte→short(char)→int→float→double
前面的类型转后面的类型进行隐式转换
后面的类型转前面的类型必须进行显式(强制)转换
byte n1 = 5;
double n2 = n1; //隐式转换
double n3 = 5.12345;
byte n4 = (byte)n3; //显式(强制)转换
运算符
运算符:赋值运算符、算术运算符、自增和自减运算符、关系运算符、逻辑运算符、位运算符
加减乘除
int a = 1 + 2 * 3 – 6 / 2; //先乘除再加减,运算结果a=4
求商
int b = 6 / 4;
求余数
int c = 6 % 4;
自增运算
a++后,a = 5
自减运算
a--后,a = 4
关系运算
关系运算符:>(大于)<(小于) >=(大于或等于)<=(小于或等于)==(等于)!=(不等于)
关系运算的结果为true或者false
System.out.println(“ 1 < 2 : ” + ( 1 < 2 )); // 1 < 2 : true
System.out.println(“ 1 > 2 : ” + ( 1 > 2 )); // 1 > 2 : false
System.out.println(“ 1 <= 2 : ” + ( 1 <= 2 )); // 1 <= 2 : true
System.out.println(“ 1 >= 2 : ” + ( 1 >= 2 )); // 1 >= 2 : false
System.out.println(“ 1 == 2 : ” + ( 1 == 2 )); // 1 == 2 : false
System.out.println(“ 1 != 2 : ” + ( 1 != 2 )); // 1 != 2 : true
逻辑运算
逻辑运算符:&&(逻辑与) ||(逻辑或) !(逻辑非)
System.out.println(“(6==6)&&(6==7):”+((6==6)&&(6==7))); //(6==6)&&(6==7):false
System.out.println(“(6==6)||(6==7):”+((6==6)||(6==7))); //(6==6)||(6==7):true
System.out.println(“!(6==6):”+! (6==6)); //!(6==6):false
三元运算符
int max = 1 > 2 ? 1 : 2 ; //max = 2
int max = 1 < 2 ? 1 : 2 ; //max = 1
位运算
针对int型,如果是byte、short首先转成int,int型占4字节32位
&位与运算、|位或运算、^位异或运算、~位取反运算、<<左移运算、>>右移运算
System.out.println(“0b10 & 0b11,”+Integer.toBinaryString(0b10 & 0b11)); //0b10 & 0b11 ,10
System.out.println(“0b10 | 0b11,”+Integer.toBinaryString(0b10 | 0b11)); //0b10 | 0b11 , 11
System.out.println(“0b10 ^ 0b11,”+ Integer.toBinaryString(0b10 ^ 0b11)); //0b10 ^ 0b11 , 10
System.out.println(“~ 0b10,”+Integer.toBinaryString(~ 0b10)); //~ 0b10 ,11111111111111111111111111111101
System.out.println(“0b1111 >> 2,”+Integer.toBinaryString(0b1111 >> 2)) ; //0b1111 >> 2 , 11
System.out.println(“0b1111 << 2,”+Integer.toBinaryString(0b1111 << 2)) ; //0b1111<<2 , 111100
//针对一个正整数,a<<n = a乘以2的n次幂; a>>n =a除以2的n次幂(当移除的位都为0时)
System.out.println(“3 << 2 = 3 * 2 * 2,”+(3 << 2)); //3 << 2 = 3 * 2 * 2 , 12
System.out.println(“8 >> 2 = 8 / 2 / 2,”+(8 >> 2)); // 8 >> 2 = 8 / 2 / 2 , 2,
赋值运算符(==)
扩展后的赋值运算符
n1 += 2; // n1 = n1 + 2;
n1 -= 2; // n1 = n1 - 2;
n1 *= 2; // n1 = n1 * 2;
n1 /= 2; // n1 = n1 / 2;
n1 %= 2; // n1 = n1 % 2;