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

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

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

}

public void methodTwo()

{

super.methodTwo();

System.out.print(“D”);

}

}

ABDC

AB

ABCD

ABC

向上转型:父类只能调用父类方法或者子类覆写后的方法,而子类中的单独方法则是无法调用的。

只要是被子类重写的方法,不被super调用都是调用子类方法

A

7、面向对象的基本特征是()

封装

继承

重载

多态

三大基本特征

封装、继承、多态

五大基本原则

1.单一职责原则

就一个类而言,应该仅有一个引起它变化的原因。

2.开放-封闭原则

一个软件实体应当对扩展开放,对修改关闭

3.里氏代换原则

子类型(subtype)必须能够替换它们的基(父)类型

4.依赖倒转(置)原则

要依赖于抽象,不要依赖于具体

5.接口隔离原则

使用多个专门的接口比使用单一的总接口总要好

ABD

8、单例模式中,两个基本要点是

构造函数私有

静态工厂方法

以上都不对

唯一实例

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

特点:

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例。

AD

分享

首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:

(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构…实在是太多了)

其次分享一些技术知识,以截图形式分享一部分:

Tomcat架构解析:

算法训练+高分宝典:

Spring Cloud+Docker微服务实战:

最后分享一波面试资料:

切莫死记硬背,小心面试官直接让你出门右拐

1000道互联网Java面试题:

Java高级架构面试知识整理:

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

分享

首先分享一份学习大纲,内容较多,涵盖了互联网行业所有的流行以及核心技术,以截图形式分享:

(亿级流量性能调优实战+一线大厂分布式实战+架构师筑基必备技能+设计思想开源框架解读+性能直线提升架构技术+高效存储让项目性能起飞+分布式扩展到微服务架构…实在是太多了)

其次分享一些技术知识,以截图形式分享一部分:

Tomcat架构解析:

[外链图片转存中…(img-9Mj3OEcc-1714684493414)]

算法训练+高分宝典:

[外链图片转存中…(img-wnSordO0-1714684493414)]

Spring Cloud+Docker微服务实战:

[外链图片转存中…(img-beTY4nnz-1714684493415)]

最后分享一波面试资料:

切莫死记硬背,小心面试官直接让你出门右拐

1000道互联网Java面试题:

[外链图片转存中…(img-m3BbBNEm-1714684493415)]

Java高级架构面试知识整理:

[外链图片转存中…(img-JtnjGFru-1714684493415)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值