3。变量只能是字母,$,_开头,接下来的第二个可以是,数字
4。ch\u0061r=´a´;char\u0063=´b´;charc=´\u0063´;都是合法的
5。1e-5d,合法。e-5d不合法,必须有前面的系数
6。int[]i[]={null{1,2}}正确!inti[]={1,2,3,}正确!","和没有的效果一样
7。局部array,跟变量一样,使用前要初始化
8。main方法可以为final
操作符和分配符(OperatorandAssignment)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1。System。out。printl(1+2+"3");//33System。out。printl("1"+2+3);//123
2。inti=0;i=i++;i=i++;i=i++;结果,i=0!
3。inti[];index=0;i[index]=index=5;结果是,i[0]=5;!!!
4。byteb=10;可以,因为,10可以被自动从int转成byte
5。接下来,byteb=b+10;不可以!!因为,10+b后的int无法被自动从int转成byte,问我,我也不知道为什么!靠!
6。byteb1=4;byteb2=6;b1=b1+b2;错!编译错!b1+b2后,必须强制转成byte,b1x1+b2);
7。XOR一样的为0,不一样为11,1=0;0,0=0;1,0/0,1=1
8。x==Float。NaN编译错,应该是Float。IsNaN
9。x==Double。POSITIVE_INFINITY编译可以
10。-1是1111。。。。1111,<<永远右补零,>>正补零,负补一,>>>恒补零
10。1-1>>多少位都是-1;1<<31变成了最小负数,1000。。。。0000
11。最大正数是01111。。。。1111
12。最小负数是1000。。。。0000(-2147483648)
13。ainstanceofb,b必须是类/接口,不能是实例
--------补充------------------------------
1。byte,short,char都存在var=-var;编译错误,因为,这时候的-var已经自动转成个int类型了
2。int/0会扔出ArithmeticException
double,float/0得INF或者-INF
0/0得NaN
3。inta-b-c;是不符合命名规则的变量名????编译会出错。
4。chara=´\u0001´;对!charb=\u0001;编译错!
5。booleanb1,b2,b3,b4,b5;
b1=b2==b3;
b1=b2<=b3&&b4==b5;
b1=b2==b3==true
都是对的!
b1=b2==b3==b4XXXXXXX编译错!
6。1>>1是0
7。%=<<==>>=>>>都是合法符号
8。--1-10*4这种写法没错,就是(--1)-10*4
9。k=1;++k+k++++k;结果是7,相当于(++2)+(2++)+(+3)
10。标号不能标示声明。
hi:
if{
breakhi;
//breakhi1;不行,不能向后调转
}
//hi1:不行,不能放在声明前
inti;
hi1:
i=1;
11。publicstaticvoidmain(Strings[])throwsException{}可以噢,main可以扔出异常
12。hi:
if(b==true){breakhi;}
break标号,可以用在if里面。别的任何都不行,包括break,continue标号。
13。intx=i*-j;**,没问题的!!!编译没错!intx=i*j++++i++;这个也没问题,
变量修饰符(Modifier)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1。最外面一层的类不能声明成protect和pravite的
2。同一个类的两个实例之间可以访问彼此的私有方法和私有变量,酷
3。protect和无修饰符的具体区别???????关于外包可以访问被子类访问的是哪个?
4。成员变量被修饰成final后,必须声明时候就赋初值或者在构造器里面赋初值,别指望她可以得到default值。
5。抽象方法不能是static的!!!
6。静态方法将随着类的变化而变化,看例子:
classParent{
staticvoidtest(){System。out。println("hi,parent")};
}
classChildextendsParent{
staticvoidtest(){System。out。println("hi,child")};
}
Parentp=newChild();
p。test();//打出来的是hi,parent!
7。静态方法可以通过类的实例调用。
newChild()。test();和Child。test();都OK!
8。transient只能用在类的成员变量上,不能用在方法里。
9。transient变量不能是final和static的
10。native方法可以是private,abstractd的
流程控制
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~