一、
byte a=1;
byte b=2;
byte c=a+b; //编译错误,因为short,char,byte运算时是转换为int在计算的。
// 换成 int c=a+b;正确
二、
char x='a';
char x1='b';
char x3=(char)(x+x1);
System.out.println(x3); //输出编码“?” ,char类型输出编码,int类型输出数字。
//换成int,输出数字。int x3=x+x1;
~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
char x=12;
char x1=36;
char x3=(char)(x+x1); //输出编码“0”
System.out.println(x3); //换成int, int x3=(x+x1); 输出数字48.
三、
int a =Integer.MAX_VALUE;
int b=a+1;
System.out.println(b); //会溢出,但不会报错,输出int的最小值。
四、
int x=Integer.MAX_VALUE;
long y=x+1; //x是int形,1是int形
System.out.println(y); //结果溢出
~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~
long y1=(long)x+1; //结果正确
System.out.println(y1);
五、
char a='A';
char b='d'+'A';
char b1='d'+65;
char c='d'+a; //报错,换成int就对了
六、
int x=1;
System.out.println(x++); //输出1。s
x++在后:先取值,在计算。在执行println()方法时先取到x=1,等方法执行结束,在执行x=x+1的操作。
~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~
int x=1;
System.out.println(++x); //输出2
x++在前:先计算,在取值。
~~~~~~~~~~~~~~~分割线~~~~~~~~~~~~~~~~~~
int x=2;
System.out.println(x++%3); //输出2
七、
int a=1;
a=a++; //先取a的值赋值给a++,然后a自增1为2。
//然后再把a++的值赋给a。
//最后a=1。
八、
double a=4.9999999999; //double类型判断和一个数是否相等,用< / >
boolean t=Math.abs(a-5)<0.000000001;
System.out.println(t);
九、
char a='A';
char b='d'+'A';
char b1='d'+65;
char b2='d'+a; //报错,换成int就对了。
十、
Cell c=new CELL(); 堆中:CELL, 栈中;c(地址).....指针指向cell堆
//C=null //地址就没有了,指针也没了。堆里面的就被自动回收
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cell c=new CELL();
Cell cc=c; //把c的地址和指针给CC,所以哪怕C为没地址和指针,Cell也不会被回收
C=null
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
十一、
class Fu{
void show(){}
double show(){
return 0.0;
}
}
class Zi{
int show(){} //编程错误,父类是void和基本类型,那么子类必须和它相等
int show(){ //编程错误,父类是void和基本类型,那么子类必须和它相等
return 0;
} //编程错误,父类是void和基本类型,那么子类必须和它相等
}
******重载看引用,重写看引用类型****
Fu o=new Zi();
//Fu为引用, Zi为对象。
十一、
int x=5;
x+=5.5; //x=(int)(x+5.5);
System.out.println(x);//輸出10
十二、
package api.onlyTest;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class Demo1 {
public static void main(String[] args){
int a=5;
int c=new Integer(5);
Integer c1=new Integer(5);
Integer c2=c1;
Integer c3=new Integer(5);
Integer c6=5;
Integer c4=c3;
System.out.println(a==c); //t
System.out.println(a==c1);//t
System.out.println(c==c1);//t
//在计算a是基本类型,c是引用类型
//在计算a==c时候,会把c拆箱成基本类型
//所以a==c为true
System.out.println(c==c3);//t
System.out.println(c1==c3);//f
//new出来的c1和c3在内存的不同位置,
//双等于比较的是地址,所以c1==c3为false
System.out.println(c2==c3);//f
System.out.println(c4==c2);//f
System.out.println(c6==c3);//f
}
}