zoukankan      html  css  js  c++  java
  • 计算机专业技能-Java专项练习

    1、以下关于Integer与int的区别错误的是()
    A. int是java提供的8种原始数据类型之一
    B. Integer是java为int提供的封装类
    C. int的默认值为0
    D. Integer的默认值为1

    解 答
    int 是Java八大基本数据类型之一(byte,char,short,int,long,float,double,boolean);
    Integer 是 int的 包装类;
    int是Java基本数据类型,默认值为0,
    Integer 是Java包装类,默认值为null; int是基本数据类型,直接存储数值。
    Integer 表示的是对象,用一个引用指向这个对象,
    2、在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )
    A. 字节码
    B. 可执行代码
    C. 机器代码
    D. 以上都不对

    解 答
    • 编译器将Java源代码编译成字节码class文件
    • 类加载到JVM里面后,执行引擎把字节码转为可执行代码
    • 执行的过程,再把可执行代码转为机器码,由底层的操作系统完成执行

    3、关于依赖注入,下列选项中说法错误的是()
    A. 依赖注入能够独立开发各组件,然后根据组件间关系进行组装
    B. 依赖注入使组件之间相互依赖,相互制约
    C. 依赖注入提供使用接口编程
    D. 依赖注入指对象在使用时动态注入

    解 答

    依赖注入和控制反转是同一概念:依赖注入和控制反转是对同一件事情的不同描述,从某个方面讲,就是它们描述的角度不同。

    依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。


    4、下列选项中符合Java命名规则的标识符是()
    A. 2japro
    B. &Class
    C. const
    D. _123

    解 答
    • Java 标识符有如下命名规则: 
      • 由26个英文字母大小写,数字:0-9 符号:_ $ 组成
      • 标识符应以字母、_ 、$开头。
      • 标识符不能是关键字。
    • Java中严格区分大小写
    • 除去java中关键字,java中标识符是:字下美人数-----字母,下划线,美元符号,人民币,数字(数字不能放首位)

    5、下列属于容器的组件有()
    A. JButton
    B. JPanel
    C. Thread
    D. JTextArea

    解 答
    容器java.awt.Container是Component的子类,一个容器可以容纳多个组件,并使它们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布置界面。所有的容器都可以通过add()方法向容器中添加组件。
    有三种类型的容器:Window、Panel、ScrollPane,常用的有Panel, Frame,和Apple。

    JPanel是Java图形用户界面(GUI)工具包中的面板容器类,包含在javax.swing包中,是一种轻量级容器,可以加入到JFrame窗体中。 JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等,功能是对对窗体上的这些控件进行组合,相当于C++和C#中的Panel类。

    6、
    根据以下代码段,下列说法中正确的是(    )。
    public class Parent {
        private void m1(){}
        void m2(){}

        protected void m3(){}

        public static void m4(){}

    }

    A. 子类中一定能够继承和覆盖Parent类的m1方法
    B. 子类中一定能够继承和覆盖Parent类的m2方法
    C. 子类中一定能够继承和覆盖Parent类的m3方法
    D. 子类中一定能够继承和覆盖Parent类的m4方法

    解 答
    Java继承关键字:

    A. private只在本类中可见
    B. 缺省修饰符(default)只在本类中可见
    C. protected可以在本类及其子类中可见
    D. static静态方法是属于类本身的,在编译阶段就已经确定函数名和地址,并已经分配了内存,所以不存在运行时期多态的判断,他只是一个静态绑定,所以无法重写。

    7、given the following code,what will be the output?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    class Value{
        public int i=15;
    }
    public class Test{
        public static void main(String argv[]){
            Test t=new Test( );
            t.first( );
        }
     
    public void first( ){
        int i=5;
        Value v=new Value( );
        v.i=25;
        second(v,i);
        System.out.println(v.i);
    }
     
    public void second(Value v,int i){
        i = 0;
        v.i = 20;
        Value val = new Value( );
        v = val;
        System.out.println(v.i+" "+i);
       }
    }

    A. 15 0 20
    B. 15 0 15
    C. 20 0 20
    D. 0 15 20

    解 答
    将以上代码中的second()函数改为如下代码,会看得更清晰:
    public void second(Value tmp,inti){
        i = 0;
        tmp.i = 20;
        Value val = newValue( );
        tmp = val;
        System.out.println(tmp.i+" "+i);
    }

        这个tmp其实相当于是一个指向原来first()中的V这个对象的指针,也就是对v对象的引用而已。但是引用是会改变所指的地址的值的。
    所以在second中当tmp.i= 20的时候,就把原来first中的v的i值改为20了。接下来,又把tmp指向了新建的一个对象,所以在second中的tmp
    现在指的是新的对象val,i值为15.
        当执行完毕second后,在first中在此输出v.i的时候,应为前面second中已经把该位置的i的值改为了20,所以输出的是20.
    至于疑惑v指向了val,其实只是名字的问题,在second中的v实践也是另外的一个变量,名字相同了而已,这个估计也是纠结的重点。

    8、非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.
    A. 正确
    B. 错误

    解 答

    方法头指:修饰符+返回类型 +方法名(形参列表)。
    实际上这道题考查的是两同两小一大原则:(实现类中的方法并不一定与父类完全一致,遵循两同两小一大原则即可)
    • 方法名相同,参数类型相同,
    • 子类返回类型小于等于父类方法返回类型,
    • 子类抛出异常小于等于父类方法抛出异常,
    • 子类访问权限大于等于父类方法访问权
    注:1.实现接口方法的约束和子类覆盖父类方法的约束基本上是一样的,但接口有一点特殊的地方是接口的方法默认是public abstract,所以在实现接口方法的时候,也必须使用public
    2. “子类抛出异常小于等于父类方法抛出异常”——不管父类抛出何种异常,子类可以不抛出任何异常。同样的,如果接口方法定义抛出某种异常,在实现这个接口方法的时候,可以抛出小于等于接口方法异常的异常,也可以不抛出任何异常。

    9、以下代码执行的结果显示是多少()?


    A. 505000
    B. 0
    C. 运行时错误
    D. 5050

    解 答

    "count = count++ "原理是 temp = count count = count+1  count = temp   因此count始终是0,当然这仅限于java ,这与c是不一样的。
    (count=count)++ 等效于这个,好理解了吗各位,++又没加到count身上



    10、已知 boolean result  = false,则下面哪个选项是合法的:
    A. result=1
    B. result=true;
    C. if(result!=0) {//so something…}
    D. if(result) {//do something…}

    解 答
    1、boolean类型只有两个直接量值:true和false. 
    2、除成员变量会有默认初始值外,其他变量必须在第一次使用之前初始化
    boolean类型的默认值是false;
    其余的7种基本类型默认值:
    byte是 (byte)0;
    short是 (short)0;
    int是 0;
    long是 0L;
    float 是0.0f;
    double 是0.0d;
    char是 u0000.
    3. 和C/C++中的不同,Java中的Boolean类型只能是true和false,且只能与Boolean类型进行比较,不能赋0、1之类的值,也不能和0、1进行比较





  • 相关阅读:
    树莓派交叉编译环境搭建
    手机购买怎样识别假货——一点心得体会分享!
    Ubuntu 网站服务器环境搭建
    转载:Raspberry Pi 树莓派入门
    Python中的条件选择和循环语句
    关于VMare中安装Ubuntu的一些说明
    如何去掉系统快捷方式的箭头和更改登录界面背景图片
    重装系统后,硬盘分区丢失的解决办法
    Python中的字符串
    Python的基础语法
  • 原文地址:https://www.cnblogs.com/seeyoumiter/p/14013580.html
Copyright © 2011-2022 走看看