Java培训笔记十三(考试)

这篇博客主要探讨了Java的类加载原理,包括JVM加载class文件的过程、类加载器的作用,以及Java中逻辑与条件操作的区别。还讨论了在Java中如何跳出多重循环、字符串长度方法、数据类型转换等问题,并提供了关于switch语句和数组长度的说明。此外,还涉及了Java程序的编译执行流程、堆栈的区别以及Java与其他语言的不同之处。
摘要由CSDN通过智能技术生成

----石文海

初级部分试卷 A

一、简答题:每题3

1、描述一下JVM加载class文件的原理机制?

答:Java虚拟机的类加载器将.class文件加载进来,创建运行时系统,然后由校验器进行校验,再由解释器对.class文件逐行解释并执行。

---Jvm在执行一个字节码程序时,首先通过类加载器加载运行一个所需的全部代码(本类和被本类调用或者使用的其他字节码程序),然后通过字节码校验器对字节码文件进行数据类型转换和栈溢出错误检查,最后通过解释器将字节码程序解释成机器码。然后在特定的硬件平台和操作系统平台上运行。

 

àClassLoader
2
char型变量中能不能存贮一个中文汉字?为什么?

答:能。在JAVA中,char型变量是采用unicode编码,unicode字符包含中文汉字。


3
、简述逻辑操作(&,|)与条件操作(&&,||)的区别。

---》前者既可以对数值操作,也可以对boolean值操作;属于非短路运算符。

后者只能操作boolean值;属于短路运算符。

答:前者是非短路运算符,即运算符两端都必须执行;运算时,先将运算符两端转化为二进制后进行运算。

后者是短路运算符,有时只需执行左端即可结束运算。

4、在JAVA中,如何跳出当前的多重嵌套循环?

使用控制语句,控制循环的变量范围或者在循环体内部加上限制条件

àbreak,continue,return.

5、编程题: 用最有效率的方法算出2乘以8等於几?

--》移位运算符。2<<38<<1.

public class Test {

 

    public static void main(String[] args) {

       System.out.println(2*8);

    }

}

6、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?为什么?

答:是引用传递,因为方法参数传递的是对象,而对象属于引用类型。

    java中无论传递的是基本类型数据还是引用数据类型数据,都是传递变量所指向的内存中的真实的数据值。在被调用方法中即使可以改变所传递的对象的值,但无法改变该变量的引用。

 

--JAVA中,只有值传递

 

7swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?

 

答:能作用在bytelong上,因为它们都属于整型,不能作用在String上。

 

---Switch语句采用的数据类型是byteshortintchar。其他数据类型不能使用。

---long不行,精度问题。

 

8、数组有没有length()这个方法? String有没有length()这个方法?

答:数组没有String有。

9short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

答:前者s1short类型,s1 + 1做完运算后默认为int型,int型转化为short型需要加上强制转化运算符,因为s1 = short(s1 + 1);

 

   后者一样的错误,应为s1+=short(1);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值