运算符:
算术运算符
不同的数据类型进行算数运算时那种类型的地址大结果就为什么类型,例char+int结果为int型.int4字节char2字节.
引用数据类型绝对大于基本数据类型,所以最终结果都会变为应用数据类型,"字符串"+0结果为字符串类型:字符串0
+ - * / % ++ --
+:
+两边为基本数据类型时+为算术运算符
+两边只要有一个引用数据类型+就为字符串连接符
System.out.print(""+1+2);结果为12两个加号都为字符串拼接符
System.out.print(1+2+"");结果为3第一个加号是算术运算符,第二个是字符串拼接符
%:取余运算
++自增:
++在前先自增再参加运算
++在后先参加运算再自增
a++或者++a单独使用,效果一样只有将他放在语句中才有区别.
++细节:
++在后
1,存储原有数据
2,原值+1
3,赋值
4,使用存储的原数据进行运算
++在前
1,原值+1
2,赋值
3,参与运算
--自减:
--在前先自减再参加运算
--在后先参加运算再自减
a--或者--a单独使用,效果一样只有将他放在语句中才有区别.
赋值运算符
= += -= *= /= %=
=:把等号右边的值赋给右边的变量
强制类型转换:
大类型赋值给小类型需要强制类型转换,小类型转换为大类型不需要强制类型转换.
int k=10;
byte i = (byte*)k;
逻辑运算符
&& || !
&& 且 同真为真,有假为假
|| 或 有真为真,同假为假
! 非 取反运算
关系运算符 (运算结果为boolean类型)
> >= < <= == !=
==:
==两边为基本数据类型时判断值是否相等
==两边为引用数据类型时判断内存地址是否相同
注:==两边数据类型必须相同
!=:
!=两边为基本数据类型时判断值是否不同
!=两边为引用数据类型时判断内存地址是否不同
三目运算符(三元运算符)
条件表达式?值1:值2;
//三目运算符实现找到三个数最小值
class Demo01{
public static void main(String[] args){
int i = 100;
int j = -10;
int k = 0;
int min;
min=i<j?i:j;
min=min<k?min:k;
//min=(i<j?i:j)<k?(i<j?i:j):k;上面两行可以换为这一行
System.out.println("最小值为:"+min);
}
}
条件表达式为真取值1,条件表达式为假取值2
结果为boolean类型的全为条件表达式
进制转换
二进制转换为八进制
从右到左三个为一组,不足的在左端补0
1100010100 分为 001 100 010 100=1422(八进制)
二进制转十进制
11001=1*2^0+0*2^1+0*2^2+1*2^3+1*2^4=1+8+16=25(十进制)
二进制转十六进制
从右到左四个为一组,不足的在左端补0
1100010100 分为 0011 0001 0100=314(十六进制)
其他进制转换为二进制
除以2依次列出余数,最后再从下往上记录即可
十进制转几进制就除几和变为二进制一样 最后要倒着读
分支语句
Java中语句分类
顺序语句
从上到下依次执行,Java代码本身就是顺序执行
分支语句
作用:判断,选择性的执行或不执行
循环语句
作用:重复执行
Java分支语句分类:
if
基本if结构,if else结构,else if 结构, if嵌套.
class Demo{
public static void main(String[] args){
int age = 20;
if(age>=18){
System.out.println("欢迎上机");
}
}
}
class Demo{
public static void main(String[] args){
int age = 20;
if(age>=18){
System.out.println("欢迎上机");
else{
System.out.println("未成年");
}
}
}
}
else if 判断成绩等第
class Demo{
public static void main(String[] args){
int score = 0;
if(score<0||score>100){
System.out.println("成绩有误");
}else if(score>=85&&score<=100){
System.out.println("A");
}else if(score>=70&&score<=84){
System.out.println("B");
}else if(score>=60&&score<=69){
System.out.println("c");
}else if(score>=0&&score<60){
System.out.println("D");
}
}
}
switch
JDK1.5后switch支持判断字符串是否相同,case要与break配对使用,不配对使用会出现贯穿,switch中代码一直执行直到遇到break结束
case中的值不能重复
public class XiaoChengXu {
public static void main(String[] args) {
//switch
String str = "七夕";
switch (str){
case "春节":
System.out.println("发红包");
break;
case "元旦":
System.out.println("发红包");
break;
case "元宵":
System.out.println("吃元宵");
break;
case "七夕":
System.out.println("鲜花");
break;
default:
System.out.println("暂时没有这个节日");
break;
}
}
}
if与switch区别:
if可以判断区间,也可以判断值是否相同.switch只能判断值是否相同.