Java小题精炼训练营(篇九)(2)

文章介绍了Java语言的基础知识,包括类库的组织结构(如java.lang、java.util等),演示了匿名内部类、多态和equals方法覆盖的概念,以及内存管理和引用的实例。最后讨论了异常处理和面向对象继承的特性。
摘要由CSDN通过智能技术生成

D

2、基本的Java语言函数存储在以下哪个java包中?()

java.lang

java.io

java.net

java.util

java.lang   提供java基础类,例如:Object\Math\String\StringBuffer\System\Tread等,这是我们最常用的包包,但是我们并不常见到她,因为我们不需要将她手动导入;

java.util     提供包括集合框架、事件模型、日期时间、等等的使用工具类;

java.io       提供通过文件系统、数据流和序列化提供系统的输入输入;

java.net     提供实时网络应用和开发的类;

java.sql     提供使用java语言访问并处理存储在数据源中的数据API;

java.awt  和  java.swing  提供了GUI开发与设计的类,awt提供了创建界面和绘制图形图像的所有类,swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同;

java.text    提供了与自然语言无关的方式来处理文本日期、数字和消息的类和接口。

A

3、给出以下代码

public class TestObj{

public static void main(String[] args){

Object o=new Object(){

public boolean equals(Object obj){

return true;

}

};

System.out.println(o.equals(“Fred”));

}

}

运行时抛出异常

true

Fred

第三行编译错误

public class TestObj {

public static void main(String

[] args){

    Object o=new Object(){
    	//重写了equals(),不管参数是什么,都是返回true
        public boolean equals(Object obj){
            return true;
        }
    };
    System.out.println(o.equals("Fred"));
}

}

本题涉及匿名内部类、多态和覆盖三个知识点。 语句

Object o=new Object(){

        public boolean equals(Object obj){
            return true;
        }
    };

创建了一个匿名内部类,并将所创建的匿名对象赋给 Object (多态:子类对象赋给超类引用)。同时,该匿名内部类重写了 Object 类的 equals 方法。

在执行语句

o.equals(“Fred”)

时,根据多态及覆盖原则,会调用匿名内部类重写后的 equals 方法。

B

4、根据下面的程序代码,哪些选项的值返回true?

public class Square {

long width;

public Square(long l) {

width = l;

}

public static void main(String arg[]) {

Square a, b, c;

a = new Square(42L);

b = new Square(42L);

c = b;

long s = 42L;

}

}

a == b

s == a

b == c

a.equals(s)

这题考的是引用和内存。

//声明了3个Square类型的变量a, b, c

//在stack中分配3个内存,名字为a, b, c

Square a, b, c;

//在heap中分配了一块新内存,里边包含自己的成员变量width值为48L,然后stack中的a指向这块内存

a = new Square(42L);

//在heap中分配了一块新内存,其中包含自己的成员变量width值为48L,然后stack中的b指向这块内存

b = new Square(42L);

//stack中的c也指向b所指向的内存

c = b;

//在stack中分配了一块内存,值为42

long s = 42L;

A: a == b

由图可以看出a和b指向的不是同一个引用,故A错

B:s == a

一个Square类型不能与一个long型比较,编译就错误,故B错

c:b == c

由图可以看出b和c指向的是同一个引用,故C正确

d:a equal s

程序会把s封装成一个Long类型,由于Square没有重写Object的equals方法, 所以调用的是Object类的equals方法,源码如下

public boolean equals(Object obj) {

 return (this == obj);

}

其实就是判断两个引用是否相等,故D也错误。

C

5、请问以下代码运行结果是:

try catch

try finally catch

try finally

try catch finally

throws:写在方法声明之后,表示方法可能抛出异常,调用者需要处理这个异常。

throw:写在方法体中,表示方法一定会抛出一个异常,要么try…catch处理,要么throws抛出。

本题正是有了throw,所以才会顺序执行,否则不执行catch块中的语句。

finally块中的代码,不论在try中是否抛出异常,都会执行。但是一旦在try中跑出异常,fianlly块后的代码不再执行

D

6、以下代码运行输出的是

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

}

}

输出:Person

没有输出

编译出错

运行出错

首先不能两个public类,其次child类中无法访问父类的私有变量

1.一个java文件里,public 的类只能出现一个,只能出现一个,只能出现一个,否则,不管你用哪一个类名命名文件名编译器都会报错

2.关于多态。子类继承了父类的所有成员,包括private权限的成员变量,但是继承的子类具有私有变量的拥有权但是没有使用权。

3.private的成员变量,根据权限修饰符的访问控制范围,只有在类内部才能被访问,就算是他的子类,也不能访问。

C

7、假定Base b = new Derived(); 调用执行b.methodOne()后,输出结果是什么?

public class Base

{

public void methodOne()

{

System.out.print(“A”);

methodTwo();

}

public void methodTwo()

{

System.out.print(“B”);

}

}

public class Derived extends Base

{

public void methodOne()

{

super.methodOne();

System.out.print(“C”);

}

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

在这里插入图片描述

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

methodTwo();

}

public void methodTwo()

{

System.out.print(“B”);

}

}

public class Derived extends Base

{

public void methodOne()

{

super.methodOne();

System.out.print(“C”);

}

结语

小编也是很有感触,如果一直都是在中小公司,没有接触过大型的互联网架构设计的话,只靠自己看书去提升可能一辈子都很难达到高级架构师的技术和认知高度。向厉害的人去学习是最有效减少时间摸索、精力浪费的方式。

我们选择的这个行业就一直要持续的学习,又很吃青春饭。

虽然大家可能经常见到说程序员年薪几十万,但这样的人毕竟不是大部份,要么是有名校光环,要么是在阿里华为这样的大企业。年龄一大,更有可能被裁。

送给每一位想学习Java小伙伴,用来提升自己。

[外链图片转存中…(img-hEaqFhaY-1714361559237)]

本文到这里就结束了,喜欢的朋友可以帮忙点赞和评论一下,感谢支持!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值