整理(二)

这篇博客探讨了Java编程中的一些基本概念,包括“= =”与“equal”的区别,静态方法和静态变量的使用,constructor的特性,以及面向对象的特性如封装、继承和多态。还讲解了值传递与引用传递的概念,并分析了ArrayList、LinkedList和HashMap集合类的性能特点。此外,文章强调了访问控制权限在类和对象之间的应用,以及子类如何调用父类的构造方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面代码将输出什么内容:(B)

public class SystemUtil{
    public static boolean isAdmin(String userId){
        return userId.toLowerCase()=="admin"; 
    }
    public static void main(String[] args){
        System.out.println(isAdmin("Admin")); 
    }
}

A true
B false
C 1
D 编译错误

本题考查的是“= =”和“equal”的区别
“= =”:比较的是二者地址
“equal”:比较的是二者的内容

阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有(A)

package NowCoder;
class Test {
    public static void hello() {
        System.out.println("hello");
    }
}
public class MyApplication {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Test test=null;
        test.hello();
    }

A 能编译通过,并正确运行
B 因为使用了未初始化的变量,所以不能编译通过
C 以错误的方式访问了静态方法
D 能编译通过,但因变量为null,不能正常运行

static方法不依赖对象

如下代码的输出结果是什么?D

public class Test {
    public int aMethod(){
        static int i = 0;
        i++;
        return i;
    }
public static void main(String args[]){
    Test test = new Test();
    test.aMethod();
    int j = test.aMethod();
    System.out.println(j);
    }
}

A 0
B 1
C 2
D 编译失败

静态变量又称为类变量,只能定义在类里,不能定义在方法中,
即便是静态方法也不行

下列说法正确的有(C)
A class中的constructor不可省略
B constructor必须与class同名,但方法不能与class同名
C constructor在一个对象被new 时执行
D 一个class只能定义一个constructor

constructor:
与类同名;一个类可有多个;无返回值;伴随new操作一起调用;默认可以有空的

下列描述中,错误的是(C)
A SQL语言又称为结构化查询语言
B java中”static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问
C 面向对象开发中,引用传递意味着传递的并不是实际的对象,而是对象的引用,因此,外部对引用对象所做的改变不会反映到所引用的对象上
D java是强类型语言,javascript是弱类型语言
E 面向对象的三大特性包括:封装,继承,多态

值传递:传递的是原来的值的副本
引用传递:最开始传递的时候,实参和形参指向的是同一个地址,形参的改变会对实参产生影响

下列哪种说法是正确的?(C)
A 实例方法可直接调用超类的实例方法
B 实例方法可直接调用超类的类方法
C 实例方法可直接调用本类的类方法
D 实例方法可直接调用其他类的实例方法

当类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行;对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址,因此类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。
对于A,不可以调用父类的private实例方法。因为private修饰的方法只有本类对象才可以调用
对于B,类方法只有本类才可以调用

以下关于集合类 ArrayList 、 LinkedList 、 HashMap 描述错误的是:(C)
A HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
B ArrayList和LinkedList均实现了List接口
C 添加和删除元素时,ArrayList的表现更佳
D ArrayList的访问速度比LinkedList快

ArrayList底层是数组,所以查询快,增删慢;而LinkedList底层是链表,查询慢,增删快。

以下代码运行输出的是(C)

public class Person{
    private String name = "Person";
    int age=0;
}
public class Child extends Person{
    public String grade;
    public static void main(String[] args){
        Person p = new Child();
        System.out.println(p.name);
    }
}

A 输出:Person
B 没有输出
C 编译出错
D 运行出错

子类无法访问父类的private属性,所以编译出错

以下程序的输出结果为(D)

class Base{
    public Base(String s){
        System.out.print("B");
    }
}
public class Derived extends Base{
    public Derived (String s) {
        System.out.print("D");
    }
    public static void main(String[] args){
        new Derived("C");
    }
}

A BD
B DB
C C
D 编译错误

子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,所以必须在子类中显式调用,即传入变量s:super(s);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值