思特奇——java笔试题
-
全是选择题,且都是从网上的一些题库中找的,各种类型的题都有,以下挑选两道比较有具代表性的
-
“在调用方法时,若要使方法改变实参的值可以()
A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对
答案:B
解析:1. 首先说一下实参和形参的概念。在调用函数时,会给参数赋一个临时名称用于函数内部,这个名称(参数名)叫做形参,而实际传入方法的参数,叫实参。例如, m1(int a,int b);//方法m1,a,b均为int类型的形参 Person.m1(c);//调用方法m1时,传入的参数为实参c, 2. 由于实参是在方法外部声明,和使用的,而形参则是作用在方法内部 3. 在面向对象编程中,传入方法的实参又可分为,基本数据类型,以及引用数据类型 4. 对于基本数据类型,参数传递过程中,是值传递,但是也仅仅是值传递,将实参的值复制给形参之后,形参与实参再无关系,在方法内部修改形参值,也对方法外部的形参无影响 5. 对于引用数据类型(对象),同样是值传递,但是此时传递的却是一个地址值,因此,它们指向同一个对象,对形参的修改直接作用该地址的其他引用上 6. 此外,还有特殊的不变类,如String这种,同样的值传递,形参与实参相同,但在方法内对形参修改时,会new一个新的对象给形参,这样一来,对形参的修改也不会影响到实参 7. 参考回答:https://zhidao.baidu.com/question/1959395493986765260.html
-
以下JAVA代码创建了多少个对象?
String s1="bc"; String s2="bc";
答案:一个
解析:1. 首先String对象的创建都是放在常量池中的,为了节约内存,每次需要创建新的String对象时,它会在常量池内查询是否已经存在相同内容的对象,如果已有,则不会开辟新空间再次创建,新的对象也会指向该内存空间,此时,相当于只有一个实例。 2. 若是 String s1=new String("bc"); String s1=new String("bc"); 此时确是创建了两个对象,因为只要出现new都代表在内存中另开辟一块区域用于存储 3. 还需注意,String是不可变的,任何对String的操作都是另外返回一个新的String,而不是在String上进行修改。(可参考上面那道题) 4. 参考回答:https://zhidao.baidu.com/question/515048185.html
-
https://blog.youkuaiyun.com/qq_42449963/article/details/106294949