基本数据类型
Java有8中基本数据类型:byte short float int long double boolean char
整数类型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
数值类型
byte 1个字节 8位二进制数
short 2个字节 16位二进制数
float 4个字节 32位二进制数
int 4个字节 32位二进制数
long 8个字节 64位二进制数
double 8个字节 64位二进制数
非数值类型
boolean 1/8个字节 1位二进制数
char 2个字节 8位二进制数
数值类型装换
自动类型转换
自动类型转换只能由低向高位转换,反之则不行。浮点型可以对数值进行更加精准的描述,所以任何整型都可以自动转换为浮点型。
自动类型转换值使用于数值类型不包括boolean、char
数值类型自动转换的关系如下:byte->short->int->long->float->double
强制类型转换
double num = 10.6;
int num1 = (int)num;
运算符
赋值运算符
int a = 1;
int b = 2;
System.out.println("交换之前a=" + a + " b=" + b);
int c = a;
a = b;
b = c;
System.out.println("交换之后a=" + a + " b=" + b);
基本算术运算符
+、-、*、/、%、++、--
int a = 10;
int b = 2;
System.out.println("a+b=" + (a + b));//求出变量A和变量B相加之和
System.out.println("a-b=" + (a - b));//求两数之差
System.out.println("a*b=" + (a * b));//求两数之积
System.out.println("a/b=" + (a / b));//求两数之商
System.out.println("a%b=" + (a % b));//求余数
System.out.println("a++=" + (a++));//求出变量A+1,需要注意的是++在后是先用在加1
System.out.println("++a=" + (++a));//求出变量A+1,需要注意的是++在前是先加1再使用
System.out.println("a--=" + (a--));//求出变量A-1,需要注意的是--在后是先用在减1
System.out.println("--a=" + (--a));//求出变量A-1,需要注意的是--在前是先减1再使用
整合小案例
//取当前变量的对应的位数及位数之和
int num = 678;
int hundreds = num/100;
System.out.println("百位数字是:"+hundreds);
int tens = num%100/10;
System.out.println("十位数字是:"+tens);
int ones = num%10;
System.out.println("个位数字是:"+ones);
int sum = hundreds+tens+ones;
System.out.println(num+"各位数字之和是:"+sum);
复合算术运算符
+=、-=、*=、/=、%=
int a=100;
System.out.println(a+=10);
System.out.println(a-=10);
System.out.println(a*=10);
System.out.println(a/=10);
System.out.println(a%=10);
关系运算符
==、!=、>、<、>=、<=
关系只能用作数值类型的比较,判断条件的时候使用
int a=20;
int b=10;
if(a>b){
System.out.println("a>b");
}
if(b<a){
System.out.println("b<a");
}
if(b!=a){
System.out.println("b!=a");
}
逻辑运算符
&、|、&&、||、!
逻辑运算符只能用于 boolean 类型的数据运算,判断boolean数据之间的逻辑关系,包括与、或、非这3种关系。
&与&&的区别
int a=100;
int b=10;
if ((a == b) && (1 / 0 == 0)) {
System.out.println("1");
}else{
System.out.println("执行不报错");
}
执行结果是不报错 因为条件一不成立 后面的一个条件被短路了 直接就进入else中了
int a=100;
int b=10;
if ((a == b) & (1 / 0 == 0)) {
System.out.println("1");
}else{
System.out.println("执行不报错");}
}
直接报错/by zero 由此了解到&运算符判断的是所有的条件。
|与||的区别
int a = 100;
int b = 100;
if ((a == b) || (1 / 0 == 0)) {
System.out.println("1");
} else {
System.out.println("执行不报错");
}
执行结果为1 ||运算符第一个条件达到条件就成立
int a = 100;
int b = 100;
if ((a == b) | (1 / 0 == 0)) {
System.out.println("1");
} else {
System.out.println("执行不报错");
}
直接报错/by zero 由此了解到|运算符也是判断所有的条件。
!的使用
boolean c=true;
if(c){
System.out.println("true");
}else{
System.out.println("false");
}
//输出为true
boolean c=true;
if(!c){
System.out.println("true");
}else{
System.out.println("false");
}
// 输出为false
条件运算符
条件运算符也叫三元运算符,可以完成给变量赋值的操作,根据不同的条件给同⼀个变量赋不同的值,
基本语法:
String name="张三";
System.out.println("张三".equals(name)?"姓名匹配":"姓名不匹配");
位运算符
十进制和二进制的转换。
十进制转二进制:目标数除以二,如果能除尽,则该位计作零,如果除不尽,则该位计作一,再对
商继续除以二,以此类推,直到商为零,然后将每一位的结果进反序组合就是对应的二进制结果,
位预算符包括:&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)
&算符每一位的数值一一对应,若都为1,则该位计作1,否则计作0
/**
*结果输出0 20的二进制是10100
* 8的二进制位 1000
* 00000
*/
System.out.println(20&8);
|算符每一位的数值一一对应,只要有1个为1,该位计作1,否则计作0。
/**
*结果输出28 20的二进制是10100
* 8的二进制位 1000
* 11100
*0*2的零次方+0*2的一次方+1*2的二次方+1*2的三次方+1*2的四次方
*0+0+4+8+16=28
*/
System.out.println(20|8);
^算符每一位的数值一一对应,相同计作0,不同计作1。
/**
*结果输出28 20的二进制是10100
* 8的二进制位 1000
* 11100
*0*2的零次方+0*2的一次方+1*2的二次方+1*2的三次方+1*2的四次方
*0+0+4+8+16=28
*/
System.out.println(20^8);
//<<算符
System.out.println(20<<8); //结果输出5120 结果就是20*258
//>>算符
System.out.println(20>>8); //结果输出0 结果就是20/258
如有整理的不足之处,多多指点!!