`
daisy8564
  • 浏览: 76722 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java 常见考题

    博客分类:
  • JAVA
阅读更多
1.下列那一行代码编译后不会出现警告或错误。

1) char c="a"; 2) byte b=257; 3) boolean b=null; 4) int i=10; 5)float f=1.3;

除了4,都错
2.下面这段代码编译时会发生什么情况。

public class MyClass {

        public static void main(String arguments[]) {

                amethod(arguments);

                }

        public void amethod(String[] arguments) {

                System.out.println(arguments);

                System.out.println(arguments[1]);

        }

}

1)     error Can't make static reference to void amethod. 2)     error method main not correct 3)     error array must include parameter 4)     amethod must be declared with String 3.byte 的取值范围是:

1)-128 到127; 2)-255 到 256 ;3)-65535 到 65536 ;4)根据不同的java虚拟机而定;

4.下面的命令的输出结果是什么。

java myprog good morning

public class myprog{

public static void main(String argv[])

        {                  System.out.println(argv[2])         }}1)     myprog 2)      good3)      morning 4)     Exception raised: "java.lang.ArrayIndexOutOfBoundsException: 2"5.下面哪些变量不是合法变量。

1) 2variable 2) variable2 3) _whatavariable 4) _3_  5) $anothervar 6) #myvar

6.当下面这段程序编译并运行时会出现什么结果。

public class MyClass{         static int i;         public static void main(String argv[]){                 System.out.println(i);                 } }1)     Error Variable i may not have been initialized 2) null 3) 1 4) 07.       String s1=new String("Hello") String s2=new String("there"); String s3=new String();下面哪条是正确的。1)     s3=s1 + s2; 2) s3=s1-s2; 3) s3=s1 & s2; 4) s3=s1 && s2;8. 下面这段代码编译和运行时会发生什么情况。abstract class MineBase {         abstract void amethod();         static int i; }public class Mine extends MineBase{         public static void main(String argv[]){                         int[] ar=new int[5];                         for(i=0;i < ar.length;i++)                                 System.out.println(ar[i]);                         } }1)     将0到5打印出来 2) Error: ar is used before it is initialized 3) Error Mine must be declared abstract 4) IndexOutOfBoundes Error9. Which two can be used to create a new Thread? (Choose Two)

1) Extend java.lang.Thread and override the run method.

2) Extend java.lang.Runnable and override the start method.

3) Implement java.lang.Thread and implement the run method.

4) Implement java.lang.Runnable and implement the run method.    

5) Implement java.lang.Thread and implement the start method

10.写出下面代码的运行结果。          public class Pass{        static int j=20;        public static void main(String argv[]){               int i=10;                Pass p = new Pass();                 p.amethod(i);                System.out.println(i);                    System.out.println(j);                }        public void amethod(int x){        x=x*2;        j=j*2;        }  }x=10;y=4011.class SuperClass{ public float aaa(){return 3.14f;}   }

public class Test extends SuperClass {

           public float aaa(){ return 5.14f; }

           public double aaa(double double1) {return double1;}

           public void aaa(){}           //error

public float aaa(float float1){return float1;}

}

//重载绝对不能方法名相同,而类型不同。

12.    public  int  bbb(){

                      static int i=0;    // error  

                      i++;

                      return i;

      }

静态变量不能在方法中定义,切记切记

13.public static void main(String arg[]){

           short b=57, a=47;

           double c=(short)b/a*2.0; 

           int d =(short)b/a*2;

}

注意其中的区别。

14. 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

1.成员变量的初始化
实例变量可以在定义处或者在构造方法中被显式初始化。如果在这两处都没有初始化,那么保留自动初始化时的默认值。final型的变量必须被显式初始化。
静态变量可以在定义处或者在静态代码块中被显式初始化。如果在这两处都没有初始化,那么保留自动初始化的默认值。final型的静态变量必须在定义处或者在静态代码块中被显式初始化。
2. 局部变量的初始化
      局部变量必须在使用之前做显式初始化。如果编译器能够确认一个局部变量在使用之前可能没有被初始化,编译器将报错。
      如果局部变量没有被初始化,并且在方法中一直没有被使用,编译和运行都会通过。
可以改正为:String s = null ;

15.public class Test  { 

           public static void main(String[] args) {

                      int i = 0;

                      Test test = new Test();

                      test.f();

           }

           public void f(){

                     i++;                           //error

                      System.out.println(i);  //error

           }

}

error :  The local variable i is never read

16.  abstract class AAA{ int i=0;}

class SuperClass extends AAA{         i=3;  }  //error

public class Test  extends SuperClass {        

public static void main(String[] args) {

                      Test test = new Test();

                      test.f();

}

public void f(){

                     i++;

                      System.out.println(i);

}

}

error :  Syntax error on token "i", VariableDeclaratorId expected after this token

类体内是声明变量和函数的地方,你突然冒出一个 i=3; 自然是不行的.可以在方法中运用。

17.      public class Test  {      

           public static void main(String[] args) {

                      Test test = new Test();

                      if(test.f(2)){                 //error

                                  System.out.println("111");

                      }else{

                                  System.out.println("222");

                      }                               

           }

           public int f(int i){return i++;       }         

}

error: Type mismatch: cannot convert from int to boolean

在JAVA中,if()用的是一个布尔表达式,而不是数字值,这一点与C/C++不同。布尔类型和数字类型不能相互转换。
在switch(expr1)语句中,expr1必须与int类型是赋值兼容的;byte,short或类型可被自动升级;不允许使用float或long表达式。
在case(expr2)语句中,expr2必须是与int类型赋值兼容的常量表达式。当变量或表达式的值不能与任何case值相匹配时,将执行default后的程序代码。如果没有break语句作为某一个case代码段的结束句,则程序继续执行下一个case的代码块,而不检查下一个case表达式的值。
18    public class Test  {          

           byte[] arry1,arry2[];

           byte[][] arry3;

           byte arry4[][];  

           public void f(){ 

                      arry1=arry2;   //error

                      arry2=arry3;

                      arry2=arry4;

           }         

}

error : Type mismatch: cannot convert from byte[][] to byte[]

19. abstract class AAA{  int i=0; }

public class Test extends AAA {      

           public static void main(String arg[]){

        int[] ar=new int[5];

        for(i=0;i < ar.length;i++)  //error

             System.out.println(ar[i]);

        }

}

error: Cannot make a static reference to the non-static field i

改正为abstract class AAA{ static int i=0; }即可

20.public int bbb(){               

              int i;                                              //error

              i++;

              return i;

}

error: The local variable i may not have been initialized

当变量被定义于函数之内,java会运用编译期间错误消息来告诉你没有被初始化。

成员变量的初始化:

21.class 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:如果类已经有了一个构造函数,不管它是有参函数还是无参函数,编译器都不会再为它构造一个构造函数。

  在这过程中,编译器会去调用其父类的无参构造函数,如果其父类没有默认(无参)的构造函数,则构造过程出错,编译不能通过。



22.class CtorBase {

              int i;

              CtorBase(int k) { this.i = k; }          

}

public class Complex extends CtorBase {

              Complex(int k) {

                               super(k);

              }

              public static void main(String args[]) {

                            Complex a = new Complex(10);

                            System.out.println("a.i="+a.i);       

}

}

结果:a.i=10



23.class CtorBase {

              int i;

              CtorBase(int k) { this.i = k; }          

        CtorBase() { }

}

public class Complex extends CtorBase {

              Complex(int k) {  }            

              public static void main(String args[]) {

                            Complex a = new Complex(10);

                            System.out.println("a.i="+a.i);

              }

}

结果:a.i=0


24。

public class Test{
static int cnt=0;
static int sum=0;
int number;
public static void main (String args []){
  A a = new A();
  B b = new B();
  Test test1 = new Test(11);
  Test test2 = new Test(22);
  test2 = new Test(33);
     System.out.println("cnt="+cnt);  
     System.out.println("sum="+sum);
     a.show();
     b.show();    
}
Test(int n){
  number=n;
  cnt++;
  sum+=number;
}
}

class A {
  int   a=2;
  void show(){
   System.out.println("a1="+ a);
  
  }
}
class B extends A{
  int a=3;
  void show(){
   System.out.println("a2="+ super.a);
   super.show();
   System.out.println("a3="+ a);  
  }
}

结果:

cnt=3
sum=66
a1=2
a2=2
a1=2
a3=3


25.

class ValHold{
public int i = 10;
}

public class Demo{

public void amethod(){
  ValHold v = new ValHold();
  another(v);
  System.out.println(v.i);
}

public void another(ValHold v){
  v.i = 20;
  ValHold vh = new ValHold();
  v =vh;
  System.out.println(v.i);
}

public static void main(String[] argv){
  Demo o = new Demo();
  o.amethod();
}
}

结果:

10
20

  当一个引用变量作为参数传递给一个方法时, 在这个方法内可以改变变量的值,即改变引用指向的对象,(本题中将vh赋给v)但是方法的调用结束后,改变量恢复原来的值,即变量仍然指向原来的对象. (即another(v)调用结束之后,v又回复到第一次ValHold v = new ValHold();时指向的地址空间.) 但是如果在方法内改变了引用指向的对象的数据(属性),那么当方法的调用结束后,尽管引用仍然指向原来的对象,这个对象的某个属性已经被改变了(v的i值在执行v.i=20的时候就已经被改变了,所以调用another结束后,v.i已经变成了20)


26.

public class Test {
        public static void main(String [] args){
                Base b = new Subclass();
                System.out.println(b.x);
                System.out.println(b.method());
        }
}
class Base{
        int x = 2;
        int method(){
           return x;
        }
}
class Subclass extends Base{
        int x = 3;
        int method(){
           return x;
        }
}
结果:2 3
   声明变量b后,你能访问的对象部分只是Base的部分; Subclass的特殊部分是隐藏的.这是因为编译器应意识到,e 是一个Base,而不是一个Subclass.但重写的方法除外。abstract和final相互排斥,前者专用于继承,后者禁止继承;抽象类中的抽象方法不能为static静态方法不能被override,只是被隐藏(hidden)了。
27。
public class Test{
        public static String setFileType(String fname){
                int p=fname.indexOf('.');
                if(p>0) fname=fname.substring(0,p);
                fname+=".TXT";
                return fname;
        }
        public static void main(String args[]){
                String theFile="Program.java";
                String s = setFileType(theFile);
                System.out.println("Created "+theFile);
                System.out.println("Created "+s);
        }
}
String在java成安全的String, 对于String的任一个操作都是先重新生成一个String的拷贝, 然后对这个拷贝进行操作。 所以String在参数传递的时候可以看作是值传递。 即如果你需要修改一个String并返回修改后的String, 你得要再去接一下返回值。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/senmon2004/archive/2006/03/28/641707.aspx
分享到:
评论

相关推荐

    常见的java基础考题

    常见的垃圾回收机制有分代复制、标记-清除和标记-压缩等。分代复制将内存划分为新生代和老年代,新生代的对象生存时间较短,适合频繁复制;老年代的对象生存时间较长,复制成本高,更适合标记-压缩或标记-清除。 ...

    java,面试考题 ,常见考题,

    Java是一种广泛使用的面向对象的编程语言,其语法严谨,跨平台性强。在Java面试中,常常会遇到一些基础和进阶的问题,旨在测试应聘者的语言理解能力、编程实践以及问题解决能力。以下是一些基于提供的题目所涉及的...

    北大自考Java上机考题

    2. 集合框架:ArrayList、LinkedList、HashSet、HashMap等是Java集合框架中常见的数据结构,用于存储和管理对象。考生需要熟悉它们的特性和使用场景。 3. 异常处理:Java中的异常处理机制通过try-catch-finally语句...

    滨海学院java期末考题

    【滨海学院Java期末考题详解】 Java编程语言作为全球广泛使用的高级编程语言,以其平台无关性、面向对象的特性以及强大的安全性能深受开发者喜爱。在滨海学院的Java期末考题中,学生将面临一系列旨在检验他们对Java...

    java面试经典考题2018

    ### Java面试经典考题2018 - 面向对象四大特性及其它知识点解析 #### 1. 面向对象的四大特征 面向对象编程(OOP)是现代软件开发中最常用的设计范式之一,它主要围绕着四大核心概念进行: 1. **抽象**:抽象是指将...

    JAVA面试考题大全

    这份名为"JAVA面试考题大全"的资源,根据描述,是基于个人多次面试经验及综合资料整理而成的,据说其命中率超过90%,对于即将参加Java工程师面试的求职者来说,无疑是一份宝贵的参考资料。以下将针对Java面试中常见...

    java面试考题大全

    Java面试考题大全是针对Java开发者进行面试准备的重要参考资料,涵盖了广泛的Java基础知识和技术要点。这份资料包含基础题122道和代码题19道,旨在全面检验候选人的理论理解、编程技能以及问题解决能力。以下是一些...

    2015年9月 北大自考 JAVA 上机考题 AB劵

    【标题与描述解析】 ...以上知识点是基于JAVA编程的常见考察点,结合北京大学自考的教育水平,这些都可能是上机考题中涉及的内容。考生需要对这些知识点有深入理解和实践经验,才能在上机考试中取得好成绩。

    java考题java考题.doc

    14. 两种常见的软件生命周期模型有瀑布模型(Waterfall Model)和敏捷开发模型(Agile Development)。瀑布模型按照顺序进行需求分析、设计、编码、测试和维护;敏捷模型强调迭代和灵活响应变化。 15. 设计线程程序...

    java应聘人员考题

    Java应聘人员考题通常会涵盖广泛的Java编程概念和技术,包括但不限于基础语法、面向对象编程、集合框架、异常处理、多线程、IO流、网络编程、数据库操作、设计模式以及JVM原理等。以下是这些主题的详细解释: 1. **...

    java面试考题(2015年)

    - **应用服务器**:常见的J2EE应用服务器有Tomcat(轻量级)、JBoss/WildFly(EAP)、WebLogic、WebSphere等。它们提供了运行J2EE应用程序所需的环境,如Servlet容器、EJB容器等。 7. **数据库设计与SQL**: - **...

    java考试考题详解

    ### Java考试核心知识点详解 ...综上所述,这些知识点涵盖了Java语言的基础知识和常见应用,对于初学者来说非常实用。通过深入理解和掌握这些内容,可以帮助大家更好地应对Java相关的考试和实践操作。

    北大java上机历年考题

    这个压缩包文件"北大java上机历年考题"包含了北京大学历年Java上机考试的题目,全部以TXT文本格式整理,方便学习者进行练习和自我检测。 首先,我们需要了解Java语言的基础知识。Java是一种面向对象的编程语言,由...

    Java面试考题锦集之Java基础

    这篇文章记录在准备Java后端面试复习过程中网上常见的考题,同时也会标明题目出现频率,方便大家参考。有缺少、错误的部分欢迎大家补充纠正。–持续更新 文章目录数据类型Java中的八大类型及其包装类型(占用字节数)...

    java面试考题

    Java面试考题涵盖了多个核心Java概念,包括Linux基础知识、Java虚拟机(JVM)、JDK、JRE的关系、数据类型、面向对象编程等。以下是对这些知识点的详细解释: 1. **Linux基础知识**: - Linux是一个开源的操作系统...

    为公司编写了一份JAVA考题。

    标题中的“为公司编写了一份JAVA考题”表明这是一份针对Java编程的考核材料,可能是为了测试员工或求职者的Java编程能力。这类考题通常包括基础语法、面向对象编程、集合框架、多线程、异常处理、IO流、网络编程、...

    Java课程复习及经典考题

    Java课程复习及经典考题是针对Java编程语言的学习者,特别是即将进行期末考试的学生们准备的一份宝贵资源。这份资料旨在帮助大家巩固所学知识,理解并掌握Java的核心概念,以便在考试中取得理想的成绩。以下是对Java...

    JAVA程序员面试考题精选

    【JAVA程序员面试考题精选】是一份集合了Java程序员面试常见问题与答案的资源,针对的是正在准备Java面试的开发者。这份资料分为两大部分:第一部分涵盖了1到87道面试题,第二部分包含了88至122道题目,旨在帮助求职...

Global site tag (gtag.js) - Google Analytics