java每日10题

1.以下语句输出的结果是
在这里插入图片描述
2.下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
     try{
       int i = 100 / 0;
       System.out.print(i);
      }catch(Exception e){
       System.out.print(1);
       throw new RuntimeException();
      }finally{
       System.out.print(2);
      }
      System.out.print(3);
     }
 }

3.运用下列哪个命令能够获取JVM的内存映像
A.jinfo
B.jmap
C.jhat
D.jstat
4.下面代码运行结果是?

public class Test
{
	static boolean foo(char c)
	{
		System.out.print(c);
		return true;
	}
	public static void main( String[] argv )
	{
		int i = 0;
		for ( foo('A'); foo('B') && (i < 2); foo('C'))
		{
			i++ ;
			foo('D');
		}
	}
}

A.ABDCBDCB
B.ABCDABCD
C.Compilation fails.
D.An exception is thrown at runtime.
5.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

public class HelloB extends HelloA 
{
 public HelloB()
 {
 }
 {
     System.out.println("I’m B class");
 }
 static
 {
     System.out.println("static B");
 }
 public static void main(String[] args)
 {
     new HelloB();
 }
}
class HelloA
{
 public HelloA()
 {
 }
 {
     System.out.println("I’m A class");
 }
 static
 {
     System.out.println("static A");
 }
}

A.static A
I’m A class
static B
I’m B class

B.I’m A class
I’m B class
static A
static B

C.static A
static B
I’m A class
I’m B class

D.I’m A class
static A
I’m B class
static B
6.设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue();
下述说法正确的是()
A.a是整数类型变量,b是整数类对象。
B.a是整数类对象,b是整数类型变量。
C.a和b都是整数类对象并且它们的值相等。
D.a和b都是整数类型变量并且它们的值相等。
7.以下哪一个正则表达式不能与字符串“https://www.tensorflow.org/”(不含引号)匹配?()
A.[a-z]+://[a-z.]+/
B.https[😕/]www[.]tensorflow[.]org[/]
C.[https]+://www.tensorflow.org/
D.[a-zA-Z.😕]+
8.java关于异常处理机制的叙述哪些正确
A.catch部分捕捉到异常情况时,才会执行finally部分
B.当try区段的程序发生异常时,才会执行catch区段的程序
C.在try区段不论程序是否发生异常及捕获到异常,都会执行finally部分
D.以上都是
9.下面有关java类加载器,说法正确的是?
A.引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的
B.扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。
C.系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类
D.tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用
10.下面哪些描述是正确的:( )

public class Test {
    public static class A {
        private B ref;
        public void setB(B b) {
            ref = b;
        }
    }
    public static Class B {
        private A ref;
        public void setA(A a) {
            ref = a;
        }
    }
    public static void main(String args[]) {start();.
    }
    public static void start() { A a = new A();
        B b = new B();
        a.setB(b);
        b = null; //
        a = null;}
}

	


A.b = null执行后b可以被垃圾回收
B.a = null执行后b可以被垃圾回收
C.a = null执行后a可以被垃圾回收
D.a,b必须在整个程序结束后才能被垃圾回收
E.类A和类B在设计上有循环引用,会导致内存泄露
F.a, b 必须在start方法执行完毕才能被垃圾回收
(1)223
本人痴迷编程题,蓦然回首选择题在向我招手:
还是那句话,
b=i++ i先把值给b再加1
b=++i i先加1再把值给b
(2)12
首先执行try,遇到算术异常,抛出,执行catch,打印1,然后抛出RuntimeException,缓存异常,执行finally,打印2,然后抛出RuntimeException。
如果catch中没有抛出RuntimeException,则执行结果为123。
(3)1、jps:查看本机java进程信息。
2、jstack:打印线程的栈信息,制作线程dump文件。
3、jmap:打印内存映射,制作堆dump文件
4、jstat:性能监控工具
5、jhat:内存分析工具
6、jconsole:简易的可视化控制台
7、jvisualvm:功能强大的控制台
(4)
for(条件1;条件2;条件3) {
//语句
}
执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2…
如果条件2为true,则一直执行。如果条件2位false,则for循环结束
(5)C
1.静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3;明白他们是干嘛的就理解了。
1.静态代码块:是在类的加载过程的第三步初始化的时候进行的,主要目的是给类变量赋予初始值。
2.构造代码块:是独立的,必须依附载体才能运行,Java会把构造代码块放到每种构造方法的前面,用于实例化一些共有的实例变量,减少代码量。
3.构造方法:用于实例化变量。
1是类级别的,2、3是实例级别的,自然1要优先23.
在就明白一点:对子类得主动使用会导致对其父类得主动使用,所以尽管实例化的是子类,但也会导致父类的初始化和实例化,且优于子类执行。
(6)
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D
(7)B

public class Test {

    public static void main(String[] args) {
        String content = "https://www.tensorflow.org/";

        String patternA = "[a-z]+://[a-z.]+/";
        String patternB = "https[://]www[.]tensorflow[.]org[/]";
        String patternC = "[htps]+://www.tensorflow.org/";
        String patternD = "[a-zA-Z.:/]+";

        System.out.println(Pattern.matches(patternA, content)); // true
        System.out.println(Pattern.matches(patternB, content)); // false
        System.out.println(Pattern.matches(patternC, content)); // true
        System.out.println(Pattern.matches(patternD, content)); // true
    }
}

B. [😕/] 表示匹配 😕/ 中的任何一个字符,也就是匹配 : 或 /
C. [htps] 表示匹配 htps 中的任何一个字符,[htps]+ 表示一次或多次匹配前面的字符或子表达式,所以 [htps]+ 可以匹配 https
(8)BC
1.try和catch语句
●将要处理的代码放入try块中,然后创建相应的catch块的列表。如果生成都异常与catch中提到的相匹配,那么catch条件中的块语句就被执行。try块后可能有许多catch块,每个都处理不同的异常。每个catch中的参数都是Exception的子类。
2.finally语句
●finally语句定义一个总是执行的代码,而不考虑异常是否被捕获。
3.throw引起一个异常
‍●‍‍调用申明抛出异常
●‍throw语句强制抛出异常
(9)ABCD
jvm classLoader architecture :
a、Bootstrap ClassLoader/启动类加载器
主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作.
B、Extension ClassLoader/扩展类加载器
主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作
C、System ClassLoader/系统类加载器
主要负责java -classpath/-Djava.class.path所指的目录下的类与jar包装入工作.
B、 User Custom ClassLoader/用户自定义类加载器(java.lang.ClassLoader的子类)
在程序运行期间, 通过java.lang.ClassLoader的子类动态加载class文件, 体现java动态实时类装入特性.
(10)答案BC。
内存如下:
a -> “a(b)”
b -> “b”
a引用指向一块空间,这块空间里面包含着b对象
b引用指向一块空间,这块空间是b对象
A选项,b = null执行后b可以被垃圾回收。这里"b可以被垃圾回收"中的b指的是引用b指向的内存。这块内存即使不被引用b指向,还是被引用a指向着,不会被回收。
B选项,a = null执行后b可以被垃圾回收。从代码中可以看到,a = null是在b = null后执行的,该行执行后,引用a和b都没有指向对象,对象会被回收。
C选项,同理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Nicholas_giao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值