超级经典java笔试题总结 (2).doc_第1页
超级经典java笔试题总结 (2).doc_第2页
超级经典java笔试题总结 (2).doc_第3页
超级经典java笔试题总结 (2).doc_第4页
超级经典java笔试题总结 (2).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

相比总结一。后面加了一些,都是我笔试过来认为最重要的1 class Something final int i; public void doSomething() System.out.println(i = + i); 和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为final int i = 0;。2此处,Something类的文件名叫OtherThing.javaclass Something private static void main(String something_to_do) System.out.println(Do something .); 这个好像很明显。答案: 正确。从来没有人说过Java的Class名字必须和其文件名相同。但public class的名字必须和文件名相同。3、java myprog good morning public class myprog public static void main(String argv) System.out.println(argv2) 4) Exception raised: java.lang.ArrayIndexOutOfBoundsException: 2 47. String s1=new String(Hello) String s2=new String(there); String s3=new String(); 下面哪条是正确的。 1是对的输出:hellothere1) s3=s1 + s2; 2) s3=s1-s2; 3) s3=s1 & s2; 4) s3=s1 & s2; 512. public int bbb() static int i=0; / error i+; return i; 常量,静态变量不能在方法中定义,切记切记 614. public class Test public static void main(String args) String s ; Test test = new Test(); test.f(s); /error public void f(String s) s=1223; System.out.println(s); error: The local variable s may not have been initialized 即使初始化了输出为: 12237class CtorBase CtorBase(int k) System.out.println(Base Created); public class Complex extends CtorBase Complex(int k) System.out.println(Complex Created); /error public static void main(String args) Complex a = new Complex(10); error: Implicit super constructor CtorBase() is undefined. Must explicitly invoke another constructor Rule1:编译器总是确保类至少有一个构造函数;如果类没有构造函数,编译器会为它构造一个无参的构造函数。Rule2:如果类已经有了一个构造函数,不管它是有参函数还是无参函数,编译器都不会再为它构造一个构造函数。 在这过程中,编译器会去调用其父类的无参构造函数,如果其父类没有默认(无参)的构造函数,则构造过程出错,编译不能通过。 8下面哪个声明是合法的1) int abc-xy; 2)int 8xe; 3)int abc xyz; 4) int x = 0;float f = 2.3;4是合法的,其它的都是不合法的。9public class javaTest public static void main(String args) float a = 14.7;float b = 3f;float c = 4.1f;System.out.println(a+ +b+ +c); 编译出错:float a = 14.7;14.7是double不能把它转换成float;10public class javaTest public static void main(String args) final int i = 1;i = 1;/System.out.println(i); 编译出错:无法为常量指定值。11public class javaTest public static void main(String args) byte a = 1;byte b = 2;byte c = a + b; /errorbyte d = 1+2;byte e = 2+a; /errorint i = 2L+3; /error 编译错误:a+b (2+a)为int ,要不能转化为byte精度损失。 但byte d = 1+2;因为 1 2 是整数,不是整数变量。注:整数变量的运算结果至少是int类型。 如果有一个整数变量是long类型,那么运算结果是long类型。 浮点数运算的类型是最大的浮点数类型。12public class javaTest public static void main(String args) int n = 3;int m = 4;System.out.println(compare result is +(nm)&(+n)m);System.out.println(n)输出为compare result is false3n为3而不是4.因为nm为false ,因此整个表达式为false,程序不再计算(+n)m.13class A int i = 1;void func()System.out.println(fun in a);public class B1 extends A int i = 2;void func()System.out.println(fun in b);public static void main(String args)B1 b = new B1();A a = new A();b.func();a.func();System.out.println(b.i= +b.i);System.out.println(a.i= +a.i);A x = new B1();x.func();System.out.println(x.i= +x.i);记住:“域是什么”在编译时确定的,“方法是什么”是在运行时确定的。编程程序只进行“字面”上的检查所以编译时,它认为x.i是父类A的域,因为x的类型是A。14class A int i = 1;public class B1 extends A int i = 2;void func()System.out.println(fun in b);public static void main(String args)A x = new B1();x.func();System.out.println(x.i= +x.i);这个程序编译时会出错是,x.func()因为编译时检查类A中没有此方法。所以编译错误。15package mypack.lib2;public class TestExtend int x;public static void main(String args)int i,j,k,l=0;k = l+;j=+k;i = j+;System.out.println(i+ +j+ +k);输出为I ,j k 分别为1 2 1。总结i+,+i.I+是先不加前赋值给左边的,+i是先加完再赋值给左边的,运行完i+的值还是会加的。I=i+;这个i的值没有加。16int x = 0,y = 1,z;if(x)z = 0;不能编译成功,因为if只能赋值为boolean.17public class TestExtend int x;public static void main(String args)boolean a = false;if(a=true)System.out.println(helloe);else System.out.println(GOOLDA);输出为helloe。a=true是赋值,不是a=true这是判断。注意区别17public class TestExtend int x;public static void main(String args)boolean flag = true;switch(flag)case true:System.out.println(true);编译错误Switch 里的不能为boolean类型。18public class TestExtend public static void main(String args)int m = 0,j;while(m+访问控制:Public : 对于public描述符,你只需要记住一条,你在哪都可以访问。Private: private描述符表示该成员只能在该类的内部使用,我们需要重点理解的是“在该类的内部”,意思是只要是在定义该成员的类的内部(类的内部是一个空间范围名词,只要是在之间的代码都算作是在类的内部).Protected 无访问控制:至于protected描述符和package-private,则只要是在该类所在包内部,也可以随便使用。注:比package-private作用范围更强一点,protected描述符修饰的字段还能够被其他包中它的子类所访问,一定要注意在“类的内部被访问”和“被类使用”的区别,被其他包中它的子类使用,表明该成员只能被子类使用,而不是在该子类中使用,而一旦继承,父类也不能访问自己的protected成员.方法:在重置方法时,子类的方法不能比超类的方法存取范围小。2Final 修饰的变量一定要初始化,当然可以在构造方法初始化,但不能在方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论