判断输出结果
public void testString(){ String str1 = "尚硅谷"; String str2 = "尚硅谷"; String str3 = new String("尚硅谷"); System.out.println(str1 == str2);//true System.out.println(str1 == str3);//false System.out.println(str1.equals(str3));//true str1 = "尚硅谷atguigu.com"; String str4 = "atguigu.com"; String str5 = "尚硅谷" + "atguigu.com"; System.out.println(str1 == str5);//true
String str6 = (str2 + str4).intern(); System.out.println(str1 == str6);//false ---->true } |
String s = new String("xyz");创建了几个String Object
答:两个,一个字符对象,一个字符对象引用对象
Math.round(11.5)等于多少? Math.round(-11.5)等于多少
答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor
是否可以继承String类
答:String类是final类故不可以继承
String与StringBuffer的区别
答:String的长度是不可变的,StringBuffer的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法
如何将String类型转化Number类型?举例说明String str = “123”;
答任意一个都对: Integer num1 = new Integer(str); 或 int num2 = Integer.parseInt(str); 或 Integer num3 = Integer.valueOf(str); |
下列程序运行的结果:
【面试题】
public class StringTest {
String str = new String("good");
char[] ch = { 't', 'e', 's', 't' };
public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'b';
}
public static void main(String[] args) {
StringTest ex = new StringTest();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");//good and
System.out.println(ex.ch);//best
}
}
答:good and best
输出下面程序的结果:
public static void main(String[] args) {
String a = "123";
String b = "123";
String c = new String("123");
String d = new String("123");
System.out.println(a.equals(b));//true
System.out.println(a == b);//true
System.out.println(c.equals(d));//true
System.out.println(c==d);//false
System.out.println(a.equals(c));//true
System.out.println(a==c);//false
}
答:true
true
true
false
true
false
每日一练
1. 什么是方法的重载?
“两同一不同”:同一个类、相同方法名;参数列表不同。
如何调用确定的方法:方法名à参数列表
2. 说明Java方法中的参数传递机制的具体体现?
基本数据类型:数据值
引用数据类型:地址值 (含变量的数据类型)
Person p1 = new Person(); eat();age
User u1 = p1;//编译错误 (逆向思维、反证法)
u1.eat() u1.age
3. 成员变量和局部变量在声明的位置上、是否有默认初始化值上、是否能有权限修饰符修饰上、内存分配的位置上有何不同?
答:成员变量:有默认初始化值,有权限修饰符,储存在堆内存的对象中
局部变量:必须先声明初始化值才能使用,没有权限修饰符,储存在栈内存的方法中
4. 谈谈return关键字的使用
① 结束方法 ② 针对于有返回值的方法,return + 返回数据
5. 提供如下代码的内存解析
1. 内存结构:栈(局部变量)、堆(new出来的结构:对象(非static成员变量)、数组)
2. 变量:成员变量 vs 局部变量(方法内、方法形参、构造器内、构造器形参、代码块内)