1数值型
- 整数类型
byte,占内存空间:8位,取值范围:-128~127
short,占内存空间:16位,取值范围:-2^15 ~2^15 -1
int,占内存空间:32位,取值范围:-2^31 ~2^31 -1
long,(长整型后加L或l)占内存空间:64位,取值范围:-2^63 ~2^63 -1
public class Text1 {
public static void main(String[] args) {
byte x1=1;
x1=(byte)(x1-3); //强行赋值
short x2=2;
int x3=32;
long x4=89l;
System.out.println("x1="+x1);
System.out.println("x2="+x2);
System.out.println("x3="+x3);
System.out.println("x4="+x4);
}
}
2.浮点数类型
float(单精度,数值后添加F或f)占内存空间:32,取值范围:-3.403E-45~3.403E38
double(双精度,数值后加d或D)占内存空间:64位,取值范围:-1.798E308~1.798E308
float a1=23.32f;
double a2=32.213344d;
System.out.println("a1="+a1);
System.out.println("a2="+a2);
2. 字符类
1.char型,表示“字符”(2字节),并将字符转化为unicode编码 ;
char z1='a';
char z2='中';
char z3='9';
System.out.println("z1="+z1);
System.out.println("z2="+z2);
System.out.println("z3="+z3);
2.转义字符:
转义字符 | 说明 |
---|---|
\b | 退格符 |
\n | 换行符 |
\r | 回车符– |
\t | 制表符 |
" | 双引号 |
’ | 单引号 |
\ | 反斜杠 |
3.布尔类型:boolean
1.boolean 类型适于逻辑运算,一般用于程序流程控制:
*if条件控制语句;
*while循环控制语句;
*do-while循环控制语句;
*for循环控制语句;
2.boolean类型数据只允许取值true和false,无null。
4.数据类型转换
1.自动类型转换,类型精度排序(从低到高):byte<short<int<long<flat<double
2.有多种类型的数据混合运算时,系统首先自动将所有数2据转换成容量最大的那种数据类型,然后再进行计算。
3.byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
4.当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型
public static void main(String[] args) {
//基本数据运算;类型转换:数据容量小的向大的转换,顺序如下
//byte short int long float double
//byte short char 之间不会相互转换,他们先转换成int,在运算
byte a1=23;
a1=(byte)(a1-23); //强行转型
int a2=32;
short a3=52;
long a4=42l;
float a5=32.21f;
double a6=1.09231d;
System.out.println("a1+a2="+(a1+a2));//转化为int再运算
System.out.println("a1="+a1);
System.out.println("a5+a6="+(a5+a6));//a5转化为double再运算
System.out.println("a4+a6="+(a4+a6));//转化为double再运算
String str1=23.42423f+""; //数字在字符串前面要先运算数字,反之先是字符串
System.out.println(str1);
System.out.println(3+4+"hello");//数字在字符串前面,先运算再连接字符串
System.out.println("hello"+3+4);//字符串在数字前面,以字符串方式连接
System.out.println('a'+1+"hello");
System.out.println("hello"+'a'+1);
}
}
5.数据运算
1.算数运算
- +,-,*,/,%运算
byte z1=32;
int z2=43;
int z5=32;
float z3=3.12f;
double z4=2.432123;
System.out.println(z1*z2);
System.out.println(z5%z2);
System.out.println(z1+z2*z3);
System.out.println(z2/z5); //整数之间相除只取整数部分
System.out.println(z2/z3);//整数和小数相除正常除法运算
System.out.println(z3/z4);//小数和小数相除正常除法运算
System.out.println('*'+'\t'+'*');//char类型数据相加会变成数字相加
System.out.println("*"+'\t'+'*');
System.out.println('*'+'\t');
System.out.println('\t'+"*");
- ++ 自增
- - - 自减
//i++;i-- 自增,自减
int i=0;
int x1=i++; //先赋值再加1
int x2=++i; //先加1再赋值
System.out.println(x1);
System.out.println(x2);
int x3=i--; //先赋值再减1
int x4=--i; //先减1再赋值
System.out.println(x3);
System.out.println(x4);
2.赋值运算
赋值运算符: +=, -=, *=, /=, %=,=
short s=2;
//s=s+2; 类型没有转换,不能运算
s+=2; //在使用扩展赋值运算符时,变量在参与运算时会把结果自动强制转换为当前变量的类型
System.out.println(s);
3.比较运算
- ==,!=,<, > , <=, >=,
4.逻辑运算
&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
<1.“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
<2.“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
<3在不需要逻辑运算两边都参与运算的时候,尽量使用&&和||
<4.异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
int x=2;
System.out.println(x>0&x<2);//java中0<x<2要写成x>0&x<2
System.out.println(x>3&&x>5);
System.out.println(x>0|x<2);
System.out.println(x>3||x>5);
System.out.println(x!=0);
System.out.println(31<<3);
5.位运算
<<(左移), >>(右移) ,>>>(无符号右移) ,&(与) , |(或) ,^(异或) , ~(反码)
7.三元运算
格式:
(条件表达式)? 表达式1:表达式2;
表达式为true,运算后的结果是表达式1;
表达式为false,运算后的结果是表达式2;
int x1=23;
int x2=32;
System.out.println(x1>x2?x1:x2);//比较两位数大小
System.out.println(x>(x1>x2?x1:x2)?x:(x1>x2?x1:x2));//比较三位数大小