程序笔记   发布时间:2022-07-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了日常Java练习题(每天进步一点点系列)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

提示:好多小伙伴反映࿰c;直接看到答案不太好࿰c;那我把答案的颜色设置为透明c;答案位置还是在题目后面࿰c;需要鼠标选中才能看见(操作如下图)࿰c;同时为了手机端的小伙伴(手机端也可以长按选中查看)࿰c;我还会把所有答案放到文章最下面࿰c;希望给每天进步一点点的小伙伴更好的体验。

日常Java练习题(每天进步一点点系列)

每天进步一点点!

1、public interface Iservice {String NAME=“default”;} 默认类型等价表示是哪一项: 正确答案: C 你的答案: C (正确) public String NAME=“default”; public static String NAME=“default”; public static final String NAME=“default”; private String NAME=“default”;

题解: 接口中的变量默认是public static final 的࿰c;方法默认是public abstract 的

2、关于以下程序代码的说明正确的

class HasStatic{
    private static int x = 100;
    public static void @H_859_69@main(String args[ ]){
        HasStatic hs1 = new HasStatic();
        hs1.x++;
        HasStatic hs2 = new HasStatic();
        hs2.x++;
        hs1=new HasStatic();
        hs1.x++;
        HasStatic.x--;
        System.out.println( "x=" +x);
    }
}

正确答案: D 你的答案: D (正确) 5行不能通过编译࿰c;因为引用了私有静态变量 10行不能通过编译࿰c;因为x是私有静态变量 程序通过编译࿰c;输出结果为:x=103 程序通过编译࿰c;输出结果为:x=102

题解: 答案选D 因为x的 修饰符为 static 所以x为类变量࿰c;即对于所有的实例来说࿰c;他们访问的x为同一个x࿰c;类变量存储在方法区࿰c;不属于每个实例的私有࿰c; 刚开始x=100 调用hs1.x++ x为101; 调用hs2.x++ x为102; 调用hs1.x++ x为103 (此时hs1指向了一个新的HasStatic实例࿰c;但是依然访问的是同一个X) 调用HasStatic.x-- x为102 所以结果为D

3、以下 _____ 不是 Object 类的方法 正确答案: D 你的答案: D (正确) clone() finalize() toString() hasNext()

题解: object类的方法: 1.clone方法 保护方法࿰c;实现对象的浅复制࿰c;只有实现了Cloneable接口才可以调用该方法࿰c;否则抛出CloneNotSupportedException异常。 2.getClass方法 final方法࿰c;获得运行时类型。 3.toString方法 该方法用得比较多࿰c;一般子类都有覆盖。 4.finalize方法 该方法用于释放资源。因为无法确定该方法什么时候被调用࿰c;很少使用。 5.equals方法 该方法是非常重要的一个方法。一般equals和==是不一样的࿰c;但是在Object中两者是一样的。子类一般都要重写这个方法。 6.hashCode方法方法用于哈希查找࿰c;重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。 一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode()࿰c;但是hashCode相等不一定就满足equals。不过为了提高效率࿰c;应该尽量使上面两个条件接近等价。 7.wait方法 wait方法就是使当前线程等待该对象的锁࿰c;当前线程必须是该对象的拥有者࿰c;也就是具有该对象的锁。wait()方法一直等待࿰c;直到获得锁或者被中断。wait(long timeout)设定一个超时间隔࿰c;如果在规定时间内没有获得锁就返回。 调用该方法后当前线程进入睡眠状态࿰c;直到以下事件发生。 (1)其他线程调用了该对象的notify方法。 (2)其他线程调用了该对象的notifyAll方法。 (3)其他线程调用了interrupt中断该线程。 (4)时间间隔到了。 此时该线程就可以被调度了࿰c;如果是被中断的话就抛出一个InterruptedException异常。 8.notify方法 该方法唤醒在该对象上等待的某个线程。 9.notifyAll方法 该方法唤醒在该对象上等待的所有线程。

4、try块后必须有catch块。() 正确答案: B 你的答案: B (正确) 正确 错误

题解: try块后面不一定需要跟着catch块࿰c;可以只跟着finally块 try 和 catch 不需要一定共存࿰c;try是尝试对其中代码捕获异常࿰c;catch是捕获异常并且可以处理异常。。你可以 try 来搜寻异常࿰c;不去捕获。也就是不去catch 这是可以的。。至于提示加finally࿰c;finally的意思是࿰c;其中的代码一定会执行࿰c;也就是说࿰c;如果try 其中的代码产生了异常࿰c;如果有catch 则会直接跳转到catch部分࿰c;如果没有catch 会跳转到‘}’后面的代码࿰c;这样࿰c;以上方法就没有一个确定的返回值࿰c;所以要加finally 作为方法出异常以后的返回的结果。

5、已知有下列Test类的说明࿰c;在该类的main方法内࿰c;则下列哪个语句是正确的?() public class Test { private float f = 1.0f; int m = 12; static int n = 1; public static void main (String args[]) { Test t = new Test(); } } 正确答案: A 你的答案: A (正确) t.f; this.n; Test.m Test.f

**题解: A.然变量修饰符为private࿰c;但main函数在此类中所以仍然可以直接用对象名来调用 B.static类变量࿰c;不能用对象名调用࿰c;只能用类名调用 C.非类变量不能用类名调用࿰c;只能先实例化再调用 D.同C **

6String s = new String(“xyz”);创建了几个StringObject? 正确答案: A 你的答案: A(正确) 两个或一个都有可能 两个 一个 三个

题解: 这种题以前的日常练习题中出现过 如果常量池中存在“xyz”就只会创建一个对象࿰c;如果没有就会创建两个

7、下面有关JVM内存࿰c;说法错误的是? 正确答案: C 你的答案: C (正确) 程序计数器是一个比较小的内存区域࿰c;用于指示当前线程所执行的字节码执行到了第几行࿰c;是线程隔离的 虚拟机栈描述的是Java方法执行的内存模型࿰c;用于存储局部变量࿰c;操作数栈࿰c;动态链接࿰c;方法出口等信息࿰c;是线程隔离的 方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据࿰c;是线程隔离的 原则上讲࿰c;所有的对象都在堆区上分配内存࿰c;是线程之间共享的

题解: 方法区在JVM中也是一个非常重要的区域࿰c;它与堆一样࿰c;是被 线程共享 的区域。 在方法区中࿰c;存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。

日常Java练习题(每天进步一点点系列)

8、问这个程序的输出结果。

package Wangyi;
class Base
{
    public void @H_859_69@method()
    {
        System.out.println("base");
    } 
}
class Son extends Base
{
    public void @H_859_69@method()
    {
        System.out.println("Son");
    }
    
    public void @H_859_69@methodB()
    {
        System.out.println("SonB");
    }
}
public class Test01
{
    public static void @H_859_69@main(String[] args)
    {
        Base base = new Son();
        base.@H_859_69@method();
        base.@H_859_69@methodB();
    }
}

正确答案: D 你的答案: D (正确) Base SonB Son SonB Base Son SonB 编译不通过

题解: Base base=new Son(); 是多态的表示形式。父类对象调用了子类创建了Son对象。 base调用的method()方法就是调用了子类重写的method()方法。 而此时base还是属于Base对象࿰c;base调用methodB()时Base对象里没有这个方法c;所以编译不通过。 要想调用的话需要先通过SON son=(SON)base;强制转换࿰c;然后用son.methodB()调用就可以了。

9、java关于异常处理机制的叙述哪些正确 正确答案: B C 你的答案: B C (正确) catch部分捕捉到异常情况时࿰c;才会执行finally部分 当try区段的程序发生异常时࿰c;才会执行catch区段的程序 在try区段不论程序是否发生异常及捕获到异常࿰c;都会执行finally部分 以上都是

题解: 1.try和catch语句 ●将要处理的代码放入try块中࿰c;然后创建相应的catch块的列表。如果生成都异常与catch中提到的相匹配࿰c;那么catch条件中的块语句就被执行。try块后可能有许多catch块࿰c;每个都处理不同的异常。每个catch中的参数都是Exception的子类。 2.finally语句 ●finally语句定义一个总是执行的代码࿰c;而不虑异常是否被捕获。 3.throw引起一个异常 ‍●‍‍调用申明抛出异常 ●‍throw语句强制抛出异常

10、下面哪些赋值语句是正确的() 正确答案: A B D 你的答案: A B D (正确) long test=012 float f=-412 int other =(int)true double d=0x12345678 byte b=128

题解: 选ABD A和B中long和float࿰c;正常定义需要加l和f࿰c;但是long和float属于基本类型࿰c;会进行转化࿰c;所以不会报出异常。AB正确 Boolean类型不能和任何类型进行转换࿰c;会报出类型异常错误。所以C错。 D选项可以这样定义࿰c;D正确。 E选项中࿰c;byte的取值范围是-128—127。报出异常: cAnnot convert from int to byte.所以E选项错误。

答案汇总: 1、正确答案: C 2、正确答案: D 3、正确答案: D 4、正确答案: B 5、正确答案: A 6、正确答案: A 7、正确答案: C 8、正确答案: D 9、正确答案: B C 10、正确答案: A B D

以上部分题解来自牛客评论区࿰c;感谢评论区大佬的解释。

每天进步一点点! 不进则退!

版权声明: 原创博主:牛哄哄的柯南 博主原文链接:https://keafmd.blog.csdn.net/

看完如果对你有帮助࿰c;感谢点击下面的一键三连支持! [哈哈][抱拳]

日常Java练习题(每天进步一点点系列)

加油!

共同努力!

Keafmd

大佬总结

以上是大佬教程为你收集整理的日常Java练习题(每天进步一点点系列)全部内容,希望文章能够帮你解决日常Java练习题(每天进步一点点系列)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。