数据类型转换
自动类型转换
存储容量小的数据类型的数据可以直接转换成存储容量大的数据类型的数据
整数和整数之间的转换
byte-->short-->int-->long-->float-->double
字符和整数之间的转换
char-->int-->long-->float-->double
如:char c = 'c';
int i = c ;
System.out.println(i);
强制类型转换
存储容量大的数据类型转换成存储容量小的数据类型,不能直接转换
注意:强制类型转换可能会造成数据精度的损失,所以在你不确定这个数是否会大于某种数据类型的最大值时,不建议强制转换
如:long l1 = 100 ;
int i1 =(int) l1 ;
System.out.println(i1);
运算符
一种特殊的符号,用于表示数据的运算,赋值,比较等
运算符分类
算数运算符 + - * / ++ --等
赋值运算符 = += -= *= /=
比较运算符 > < == >= <=等
逻辑运算符 && || !
三目运算符 表达式?表达式:表达式
/ 除号
两数相除(相乘)时结果需要用存储范围大的那一个数的数据类型
当整数除以整数时,所得的结果是整数
当整数除以小数 或者小数除以整数时 所得的结果是小数
% 取模
两数相除取余数
++ 自增
int i= 10 ;
int j = i++ ; //相当于 j=i ; i = i+1 ; 先赋值后自增
int i1 = 10 ;
int j1 = ++i1 ; //相当于 i1=i1+1 ; j1 = i1 ; 先自增后赋值
赋值运算符
= 是Java语言当中优先级最低的运算符
而且是唯一一个从右往左进行运算的运算符
表达式
由数字,运算符,括号等组成的可以得到数据的有意义的组合
1
1+1
int a = 10 ;
a++ ;
注意:所有的运算符必须在英文状态下输入
比较运算 运算的结果都是boolean类型 true false
整数和浮点型 数据类型均可以进行大小的比较,也可以比较是否相等
boolean类型的数据不能比较大小,但是可以比较是否相等
字符类型可以比较大小,也可以比较是否相等
所有的数据在计算机中存储的都是二进制
编码表:ASCII码(美国人的)
GB2312(简体中文)
GBK (有简体中文也有繁体中文)
Unicode (包含了世界上所有已知的文字的编码)Java 就是采用的这个编码表
字符型数据比较的其实是其在编码表中对应的编码值
/**
比较运算符练习
> < >= <= == !=
比较运算 运算的结果都是boolean类型 true false
整数和浮点型 数据类型均可以进行大小的比较,也可以比较是否相等
boolean类型的数据不能比较大小,但是可以比较是否相等
字符类型可以比较大小,也可以比较是否相等
所有的数据在计算机中存储的都是二进制
编码表:ASCII码(美国人的)
GB2312(简体中文)
GBK (有简体中文也有繁体中文)
Unicode (包含了世界上所有已知的文字的编码)Java 就是采用的这个编码表
字符型数据比较的其实是其在编码表中对应的编码值
*/
public class BiJiao
{
public static void main(String[] args)
{
//大于>
float i = 10 ;
double j = 20 ;
boolean b = i > j ;//估计这行代码运行结束 b=false
System.out.println("b="+b);
//小于 <
b = i < j ; //估计这行代码运行结束 b=true
System.out.println("b="+b);
//大于等于 >=
b = i >= j ;
System.out.println("b="+b);
//小于等于 <=
b = i <= j ;
System.out.println("b="+b);
//等于==
b = i == j ;
System.out.println("b="+b);
//不等于 !=
b = i != j ;
System.out.println("b="+b);
//boolean类型的比较
System.out.println("boolean类型比较");
boolean b1 = true ;
boolean b2 = false ;
b = b1 != b2 ;
System.out.println("b="+b);
//字符类型的比较
System.out.println("字符类型比较");
char a = '你';
int a1 = a ;
char c = '我';
int c1 = c ;
b = a > c ;
System.out.println("b="+b+"你="+a1+"我="+c1);
}
}
/**
赋值运算符练习
= int i = 10 ;
+= i+= 10 ; //相当于 i = i+10 ;
-= i -= 10 ; //相当于 i = i - 10 ;
*= i *= 10 ; //相当于 i = i * 10 ;
/= i /= 10 ; //相当于 i = i /10 ;
%= i %= 10 ; //相当于 i = i% 10 ;
*/
public class FuZhi
{
public static void main(String[] args)
{
//=赋值
int i = 10 ;
//+=
i += 10 ;//预计执行完这一句之后 i=20 ;
System.out.println("i="+i);
//-=
i -= 10 ;
System.out.println("i="+i);
//*=
i *= 10 ;//语句执行完这一句代码之后 i=100
System.out.println("i="+i);
// /=
i /= 10 ; //预计执行完这一句代码之后 i = 10 ;
System.out.println("i="+i);
// %=
i %= 10 ; //预计执行完这句代码之后i = 0 ;
System.out.println("i="+i);
}
}
/**
逻辑运算符练习
& && | || ! ^ 运算的结果都是Boolean类型
逻辑运算符两边均是Boolean表达式
& && 当两边的表达式均为true时结果才为true,只要有一边的结果为false ,那么结果就为false
| 当两边的表达式的结果均为false时才为false,只要有一边的结果为true ,那么结果就是true
&&(短路与) 当左边的表达式为false时,右边的表达式统统不执行
& 无论左边的表示的结果是什么,右边的表达式都依次执行
||(短路或) 当左边的表达式结果为true时,右边的表达式统统不执行
| 无论左边的表示的结果是什么,右边的表达式都依次执行
! 取反 boolean b = true ; !b ; System.out.println(b);
*/
public class LuoJi
{
public static void main(String[] args)
{
//& 与
int i = 10 ;
int b = 20 ;
int c = 15 ;
//如果 i > b 并且 b > c 就能够推断出 i > c
//先判断 i >b 是不是成立,再 b > c是不是成立
boolean b1 = i > b;
boolean b2 = b > c ;
//再判断b1和b2是不是同时成立
boolean b3 = b1 & b2 ;
System.out.println("b3="+b3);
//| 或 判断 i > b 或者 b > c
b3 = b1 | b2 ;
System.out.println("b3="+b3);
//&& 短路&&
int k = 10 ;
int j = 20 ;
boolean bb = k > j && k++ >j ;
System.out.println("bb-->"+bb);
System.out.println("k-->"+k);
// || 短路或
bb = j > k || j++ < k ;//估计运行完改行代码
System.out.println("bb-->"+bb);
System.out.println("j-->"+j);
System.out.println("----------------------------");
boolean sb = true ;
sb = !sb ;
System.out.println(sb);
}
}
/**
三目运算
(boolean表达式)? (如果boolean表达式为true 这执行这里的表达式代码):(如果boolean表达式为false这执行这里的表达式代码)
*/
public class SanMu
{
public static void main(String[] args)
{
/**
有两个数 i = 20 ; j = 30 ,求最大值?
判断i 是不是大于 j 如果大于j则k=i 否则 k=j
*/
int i = 20 ;
int j = 30 ;
int k = (i >j)?i:j;
System.out.println("k="+k);
/*
有三个数
int a = 10 ;
int b = 20 ;
int c = 15 ;
判断如果 a>b 且 b >c 输出 a>c 否则 a<=c
*/
int a = 30 ;
int b = 20 ;
int c = 15 ;
boolean b1 = a > b ;
boolean b2 = b > c ;
String m =(b1 && b2)?("a>c"):("a<=c");
System.out.println(m);
}
}