- i++
- 中间缓存变量机制,为每个自增操作分配一个临时变量temp
j=j++(先运算再自增)等价于int temp=j ; j=j+1; j=temp
j=++j(先自增再运算)等价于j=j+1; int temp=j ; j=temp
- 类型转换
- 简单类型数据间转换
低级变量 —> 高级变量 自动类型转换,例如float i=4.0f ; double j=i;
高级变量 —> 低级变量 强制类型转换,例如int i=99; char j=(char)i;
2.包装类过度类型转换
float f=10.9f;
Float f1=new Float(f);
Double d1=f1.doubleValue();
3.字符串与其他类型转换
toString()方法;
例:short s=1;s=s+1与short s=1; s+=1;区别
s=s+1先执行s+1,低级到高级,自动类型转换成int,int类型不能直接赋值给short类型。
s+=1的操作符+=作用 s=(s的类型)(s+1)
- 运算符
1.三目运算符
右结合性a?b:c?d:e 等价a?b:(c?d:e)
b=true?false:true==true?:false:true; ==>b=true?false:((true==true)?:false:true);
== 优先于?:
2.
int a=5; (a<5)?10.9 : 9表达式的值为9.0
因为出现10.9,自动类型转换为9.0
char x='x'; int i=10
false ? i : x 值为120
false ? 10: x值为x,(知识点: java编程规范规定当后两个表达式中,一个是常量类型,另一个是类型T,当常量表达式可以被T表示,输出类型是T)