每日10道JAVA题答案(20180713)

本文涵盖了Java构造函数、方法重写、作用域、并发集合类等知识点,通过具体题目解析帮助理解Java核心概念及面试常见问题。

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

/**
 * 10道题系列会持续更新,每日的10道题都是我做过的,做错或者觉得需要复习的有价值的
 * 请关注我,每日和我一同进步,有更好的建议或有问题的请在评论区提出或私信我
 */

1.D

构造函数不能被继承,构造方法只能被显式或隐式的调用。


2.C
复习一下子类方法重写父类方法遵循“两同两小一大”的规则


子类覆盖父类要遵循“两同两小一大”


“两同”即方法名相同,形参列表相同


“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等。


  (注:看到有网友有这样的疑问,父类方法返回值是double,子类修改成int为什么不行呢?


这是因为返回值类型更大或者更小,是对于同一类型而言的。也就是说,返回值的类型需要有继承关系才去考虑大小这个概念。类型不同,肯定不是方法重写)


“一大”指的是子类方法的访问权限应比父类方法的访问权限更大或相等。


注意:覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法一个是实例方法,否则编译出错。


所以,根据这个原理,再来分析上面这道题。


A.public void foo(){}
返回值类型与父类不一致,所以不可能是方法的重写。又因为方法名相同,那么只能是方法重载,而方法重载有需要满足三个条件:形参个数、顺序、类型必须有一者不同,A选项都不满足,错
B.public int foo(){return 1;}
与A选项一样
C.public A foo(B b){return b;}
返回值类型与父类相同,但由于参数列表不同,所以是对父类方法的重载
D.public A foo(){return A;}
语法错误




3.A
因为 String 是不可变类型,是存储在常量字符区的, 所以答案是ABCD。 


4.A
java中没有include关键字,导包用import
由于代码中使用了printWriter 类,所以要导入此类Import java.io.PrintWriter;


5.C
JSP 四大作用域: page (作用范围最小)、request、session、application(作用范围最大)。


存储在application对象中的属性可以被同一个WEB应用程序中的所有Servlet和JSP页面访问。(属性作用范围最大)
存储在session对象中的属性可以被属于同一个会话(浏览器打开直到关闭称为一次会话,且在此期间会话不失效)的所有Servlet和JSP页面访问。
存储在request对象中的属性可以被属于同一个请求的所有Servlet和JSP页面访问(在有转发的情况下可以跨页面获取属性值),例如使用PageContext.forward和PageContext.include方法连接起来的多个Servlet和JSP页面。
存储在pageContext对象中的属性仅可以被当前JSP页面的当前响应过程中调用的各个组件访问,例如,正在响应当前请求的JSP页面和它调用的各个自定义标签类。


6.CopyOnWriteArrayList适合使用在读操作远远大于写操作的场景里,比如缓存。
ReadWriteLock 当写操作时,其他线程无法读取或写入数据,而当读操作时,其它线程无法写入数据,但却可以读取数据 。适用于 读取远远大于写入的操作。
ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。


7.C
非静态成员只能被类的实例化对象引用,因此这里在静态方法中访问x会造成编译出错


8.AD
一个类中只允许有一个public static void main,但是允许有两个main方法,因为可以重载
内部类也可以是public class


9.AB
A首先,外部类和内部类是处于同一个级别的,内部类不会因为定义在方法中就随着方法执行完毕而被销毁。那么问题来了,如果外部类的方法中变量不定义为final,那么外部类的方法执行完毕后,这个局部变量肯定被gc了。这时候内部类的某个方法还没执行完,却找不到他引用的外部变量了。
如果定义为final,Java就会将这个变量复制一份作为成员变量置于内部类中,这样的话,final修饰的值始终无法改变,所以这个变量所指向的内存区域就不会变。


10.
A,“任何对象”锁定,太绝对了,你能锁住你没有权限访问的对象吗?
B,前半句话讲的是创建线程的方式,后半句讲的是锁定,驴头不对马嘴。
C,正确。
D,线程调度分为协同式调度和抢占式调度,Java使用的是抢占式调度,也就是每个线程将由操作系统来分配执行时间,线程的切换不由线程本身来决定(协同式调度)。这就是平台独立的原因。
以上,选CD

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StrideBin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值