zoukankan      html  css  js  c++  java
  • JAVA入门到精通-第28讲-面试题讲解

    3、下面的哪一组代码会出现编译错误

    a)  import java.awt.*;  //会出现编译错误,打包命令package应在首行

        package Mypackage;

        class Myclass{}

    b)  package MyPackage;

        import java.awt.*;

        class MyClass{}

    c)  /*This is a comment*/

        package MyPackage;

        import java.awt.*;

        class MyClass{}


     选c,finally代码一定会被执行; 
     return -1这个断点不会立即返回,要finally再返回-1;
     
     以finally里面的return为准,否则,以catch最后的return为准;
     
     子类的方法不能缩小父类的访问权限;
      
      floor取比-4最小的整数;
      round四舍五入;
      ceil取大的接近的整数;

     
     
     输出Equal:
     虚拟机的内存:
     栈区;堆区;代码数据区;

     
     
     (1)一旦new,cat引用会放在栈区;
     堆区会创建cat对象放在这里,引用指向堆区;

    (2)如果在主函数里面:int a=1;
         会直接放在栈区里面;

     
    (3)静态数据变量直接存放在代码区里面;
     代码区是指挥中心,数据步骤;堆区和栈区存放数据类型信息; 
     
    abc放在堆区;String pool字符串池;对象池的概念;
    String a="abc"; a和s会通过字符池指向同一块空间;
     这时,s和a的 地址是一样的;
    ==看地址,不是内容;
     如果是拼接,地址是改不过来的;
     
     如果是new,就没有地址池概念,不在对象池里面找
    会栈区开辟K,指向堆区,开辟地址;

      此时a和b比较的是地址,不相等;
      但是equals比较的是内容相同;
      
      如果希望在子类中去调用父类的构造方法,
      要求在子类的 构造函数中去调用;
     super用父类的构造方法去初始化子类的成员变量;
     super必须要放在最前面;
     

    Java基础测试题

    关键字:java

    1、下面的语句哪行在编译时没有警告和编译错误

    a)float f=1.3;//1.3double类型,赋给float需要加1.3f

    b)char c="a";//char类型赋值是不可以用""只能用''

    c)byte b=257;//byte类型赋值不能超过127,否则越界报错

    d)boolean b=null;//boolean类型不能赋空值,只能赋truefalse

    e)int i=10;//正确,无报错

     

    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]);

        }

    }

    a)错误,不能静态引用amethod方法    //正确

    b)错误,main方法不正确

    c)错误,数组必须包含参数

    d)amethod必须声明为static类型

     

    3、下面的哪一组代码会出现编译错误

    a)  import java.awt.*;  //会出现编译错误,打包命令package应在首行

        package Mypackage;

        class Myclass{}

    b)  package MyPackage;

        import java.awt.*;

        class MyClass{}

    c)  /*This is a comment*/

        package MyPackage;

        import java.awt.*;

        class MyClass{}

     

    4byte类型的大小是

    a)-128127 //正确

    b)-28-128

    c)-255256

    d)不同的操作系统java虚拟机分配不同的大小

     

    5、下面的代码在输入下面的命令行后输出什么内容

    命令行:java myprog good morning

    代码:

    public class myprog{

        public static void main(String argv[]){

            System.out.println(argv[2]);//从命令行java myprog后传入两个数

        }

    }

    a)myprog

    b)good

    c)morning

    d)Exception raised:"java.lang.ArrayIndexOutOfBoundsException:2"//正确

     

    6、下面哪个不是java的关键字或者保留字

    a)if

    b)then  //不是java的关键字或者保留字

    c)goto

    d)while

    e)case

    *******************************************************************************

    Java关键字列表(依字母排序共51)

    abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,final,finally,float,for,if,implements,import,instanceof,int,interface,long,native,new,package,private,protected,public,return,short,static,strictfp,super,switch,synchronized,this,throw,throws,transient,try,void,volatile,while

    Java保留字列表(依字母排序共14组:Java保留字是指现有Java版本尚未使用但以后版本可能会作为关键字使用)

    byValue,cast,false,future,generic,inner,operator,outer,rest,true,var,goto,const,null

    *******************************************************************************

     

    7、下面哪些是合法的标志符(多选)

    a)2variable //不能以数字打头

    b)variable2 //正确

    c)_whatavariable//正确

    d)_3_       //正确

    e)$anothervar   //正确

    f)#myvar    //不能存有#

     

    8、试图编译运行下面的代码会发生什么情况

    public class MyClass{

        static int i;//static静态变量可以不给初值,但是final必需要赋值

        public static void main(String argv[]){

            System.out.println(i);

        }

    }

    a)错误,变量i没有初始化

    b)null

    c)1

    d)0 //正确

     

    9、试图编译运行下面的代码会发生什么情况

    public class Q{

        public static void main(String argv[]){

            int anar[]=new int[]{1,2,3};

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

        }

    }

    a)1

    b)Error anar被引用前没有初始化

    c)2             //正确

    d)Error:数组大小没有定义

     

    10、试图编译运行下面的代码会发生什么情况

    public class Q{

        public static void main(String argv[]){

            int anar[]=new int[5];

            System.out.println(anar[0]);

        }

    }

    a)Error:anar is referenced before it is initialized

    b)null

    c)0 //正确,数组没有被赋初值默认为0,不能为null

    d)5

     

    11、试图编译运行下面的代码会发生什么情况

    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]);

            }

        }

    }

    a)50的序列会被输出  

    b)Error:ar在使用前要初始化

    c)Error Mine必须被声明为abstract   //正确

    d)Error数组越界

     

    12、试图编译运行下面的代码会输出什么样的结果

    int i=1;

    switch(i){

        case 0:

            System.out.println("zero");

        break;

        case 1:

            System.out.println("one");

        case 2:

            System.out.println("two");

        default:

            System.out.println("default");

    }

    a)one

    b)one,default

    c)one,two,default   //正确

    d)default

     

    13、试图编译运行下面的代码会输出什么样的结果

    int i=9;

    switch(i){

        default:

            System.out.println("default");

        case 0:

            System.out.println("zero");

            break;

        case 1:

            System.out.println("one");

        case 2:

            System.out.println("two");

    }

    a)default

    b)default,zero      //正确

    c)error default没有定义

    d)无输出

     

    14、下面的哪些组代码没有编译错误(多选)

    a)  int i=0;

        if(i){                  //错误if中没有判断

            System.out.println("Hello");

        }

    b)  boolean b=true;

        boolean b2=true;

        if(b--b2){

            System.out.println("So true");  //正确

        }

    c)  int i=1;

        int j=2;

        if(i==1||j==2)

        System.out.println("OK");       //正确

    d)  int i=1;

        int j=2;

        if(i==1&|j==2)              //错误,&|非法。单个&|则正确

        System.out.println("OK");

     

    15、如果在当前目录下不存在Hello.txt文件,试图编译和运行下面代码会输什么

    import java.io.*;

    public class Mine{

        public static void main(String argv[]){

            Mine m=new Mine();

            System.out.println(m.amethod());

        }

        public int amethod(){

            try{

                FileInputStream dis=new FileInputStream("Hello.txt");

            }catch(FileNotFoundException fne){

                System.out.println("No such file found");

                return -1;//虚拟机会记录,但要运行后finally语句块后才返回

            }catch(IOException ioe){

            }finally{

                System.out.println("Doing finally");

            }

            return 0;

        }

    }

    a)No such file found

    b)No such file found,-1

    c)No such file found,Doing finally,-1   //正确

    d)0

     

    16、在下面的注释处插入哪些部分代码是合法的(多选)

    class Base{

        public void amethod(int i){}

    }

    public class Scope extends Base{

        public static void main(String argv[]){

       

        }

        //在这里定义一个方法

    }

    a)void amethod(int i)throws Exception{}//继承后方法重写,父类用什么访问类型重写也要有相同的类型才可以

    b)void amethod(long i)throws Exception{}//正确,不是方法重写long类型不一样

    c)void amethod(long i){}//正确,不是方法重写

    d)public void amethod(int i)throws Exception{}//继承后可以重写但不能抛异常

     

    17、下面哪行代码输出-4.0

    a)System.out.println(Math.floor(-4.7));//floor向下取个比它小的最近double -5.0

    b)System.out.println(Math.round(-4.7));//ronud四舍五入返回一个数-5.0

    c)System.out.println(Math.ceil(-4.7));//ceil向上取一个比它大的最近double -4.0

    d)System.out.println(Math.min(-4.7));//Math.min(x,y)需要两个数进行比较

     

    18、如果运行下面的代码会输出什么内容

    String s=new String("Bicycle");

    int iBegin=1;

    char iEnd=3;

    System.out.println(s.substring(iBegin,iEnd));//解决办法在Stringsubstring方法

    1)Bic

    2)ic    //正确

    3)icy

    4)error:没有匹配的方法substring(int,char)

     

    19、给出下面的代码在注释部分放置什么样的代码会输出"Equal"

    public class EqTest{

        public static void main(String argv[]){

            EqTest e=new EqTest();

        }

        EqTest(){

            String s="Java";

            String s2="java";

            //place test here{

                System.out.println("Equal");

            }else{

                System.out.println("Not equal");

            }

        }

    }

    a)if(s==s2)

    b)if(s.equals(s2)//equals比较内容是否相同,区分大小写

    c)if(s.equalsIgnoreCase(s2))//正确,equalsIgnoreCase不分大小写进行内容比较

    d)if(s.noCaseMatch(s2))

     

    20、给出下面的代码,怎样调用Base的构造方法会输出"base constructor"

    class Base{

        Base(int i){

            System.out.println("base constructor");

        }

        Base(){

        }

    }

    public class Sup extends Base{

        public static void main(String argv[]){

            Sup s=new Sup();

            //One

        }

        Sup(){

            //Two

        }

        public void derived(){

            //Three

        }

    }

    a)//One后放置Base(10);//无意义

    b)//One后放置super(10);//无法放到One后面,语法错误(super代表直接指向父类)

    c)//Two后放置super(10);//正确,如果希望在子类中去调用父类的构造方法,要求在子类的构造函数中去调用。

    d)//Three后放置super(10);

    -------------------------------------------------------------------------------

    //super()的使用[Demo154.java]

    public class Demo154{

        public static void main(String []args){

            Son son=new Son(11,"aa");

        }

    }

     

    class Base{

        int age;

        String name;

        public Base(int age,String name){

            System.out.println("调用父类Base构造方法");

            this.age=age;

            this.name=name;

        }

    }

     

    class Son extends Base{

        public Son(int age,String name){

            super(age,name);//super()方法必需放在子类构造函数的第一行

            System.out.println("调用子类Son构造方法");

        }

    }  






  • 相关阅读:
    (转)获取枚举属性的值
    C#调用C++类(以COM组件的形式)
    托管DirectX,从MDX到SlimDX的转换(转)
    数字地球影像服务后台数据读取粗糙问题
    DevExpress控件EditValue_Changed事件(延迟问题)
    Visual Studio 2008经常性卡死的其中一种解决办法
    It's not too late to start!
    Gcc编译器 linux
    UNIX系统中的进程 linux
    图算法套汇问题 linux
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10044334.html
Copyright © 2011-2022 走看看