zoukankan      html  css  js  c++  java
  • JAVA核心技术I---JAVA基础知识(回顾)

    一:对象实例化问题:

    public class Rectangle {
      public int width = 3;
      public int height = 4;
    
      public int area() {
            return width * height;
      }
    }
    则如下代码输出结果为:
    Rectangle rectangle;
    rectangle.height = 5;
    System.out.println(rectangle.area());
    A.15
    B.有编译错误,程序不能运行
    C.12
    D.0
    D、rectangle没有被初始化,因此报错。
    Rectangle rectangle=new Rectangle()

    二:类型转换问题

    如下赋值语句中,有语法错误的是?
    
    A.float f1 = 1.2;
    
    B.float f1 = 1.2f
    
    C.float f1 = 1;
    
    D.float f1 = 0xAE;
    注意double类型可以不加后缀,所以小数不加上f后缀,则默认为double类型,若不是强制转换则编译不通过。

    三:switch语句

    对于Java1.7及之后版本,如下不能用于switch的类型是:
    
    A.String
    
    B.int
    
    C.char
    
    D.double
    double和float是不精确的数值,不用于判断,但是String类型可以在1.7后使用

    四:赋值问题

    如下赋值语句,有编译错误的是?
    
    A.byte b = -127;
    
    B.int i = (byte)512;
    
    C.byte b = 129;
    
    D.byte b = -0; 
    byte b = (byte) 129; 需要强制转,且结果是-2.
    byte类型-127~128

    五:编译问题:

    Java有“一次编译,到处运行”的说法,此种说法中编译的结果是:
    
    A.机器码
    
    B.符号表
    
    C.字节码
    
    D.中间代码
    class文件,即为字节码(bytecode)文件。

    六:main函数:

    下列关于main方法的描述中,错误的是?
    
    A.main方法是Java程序的入口
    
    
    B.main方法格式为
    
    public static void main(String[] args) {
        //Your code here
    }
    
    C.B选项中所描述格式中形参args不能更改,如果将args改为arguments则不能编译通过
    
    D.main方法可以被重载
    形参名字可以随意更改,形参类型不可以更改,必须是String[].
    main方法可以被重载。可以在类中写一个同名函数,参数等不一致,是重载,符合要求

    七:构造函数问题(重点)

    Given the following class 
    
    class MyNumber
    
    {
    
       private int num = 5;
    
       public MyNumber(int num) { this.num = num; }
    
       public int getNum() { return num; }
    
       public void setNum(int num) { this.num = num; }
    
    }
    
       What is output after the executation of following code? 
    
       MyNumber obj1 = new MyNumber();
    
       MyNumber obj2 = new MyNumber(10);
    
       obj2 = obj1;
    
       obj2.setNum(20);
    
       System.out.println(obj1.getNum() + “,” + obj2.getNum());
    A.5, 20
    
    B.5, 10
    
    C.20,20
    
    D.编译错误
    MyNumber有一个带形参的构造函数,编译器不会自动添加无参的构造函数。因此在创建obj1的时候,MyNumber obj1 = new MyNumber();,找不到相应的构造函数,报错。

    八:对象赋值问题

    Given the following class:
    
    class Mixer {
    
        Mixer() { }
    
        Mixer(Mixer m) { m1 = m; }
    
        Mixer m1;  //注意m2.m1虽然没有被被赋值,但是由于在类中定义,所有有初值null
    
    public static void main(String[] args) {
    
            Mixer m2 = new Mixer();
    
            Mixer m3 = new Mixer(m2);  m3.go();
    
            Mixer m4 = m3.m1;  m4.go();
    
            Mixer m5 = m2.m1;  m5.go();  //m2中m1未被赋值,为null,调用方法会报错
    
        }
    
    
        void go() { System.out.print("hi "); }
    
    }
    A.Compilation fails
    
    B.hi hi hi
    
    C.hi hi, followed by an exception
    
    D.hi, followed by an exception
  • 相关阅读:
    完全用GNU/Linux工作,摈弃Windows你我共勉
    vi编辑器的学习使用(七)
    vi编辑器的学习使用(三)
    Debian 的安装方法
    vi编辑器的学习使用(九)
    vi编辑器的学习使用(六)
    vi编辑器的学习使用(五)
    非常好的javascript:add event/ remove event
    【leetcode】NQueens
    Delphi VCL 的消息处理机制(1)
  • 原文地址:https://www.cnblogs.com/ssyfj/p/10190893.html
Copyright © 2011-2022 走看看