1. 如果两个字符串采用直接赋值的方式进行初始化(没有使用new关键字),此时,使用 == 对两个字符串进行比较,得到的是true
String str1 = "Girl";
String str2 = "Girl";
System.out.println(str1 == str2);//true
String str3 = new String("Girl");
String str4 = new String("Girl");
System.out.println(str3 == str4);//false
System.out.println(str3 == str2);//false
2. 练习题
public void test1() {
Object obj = true ? new Integer(1) : new Double(2.0);
System.out.println(obj);
}
public void test2() {
Object obj2;
if(true) {
obj2 = new Integer(1);
}else {
obj2= new Double(2.0);
}
System.out.println(obj2);
}
结果:test1中输出1.0,test2中输出1,因为三元运算符在编译时就要对true或false两种结果创建的对象进行统一,所以Integer类型被自动提升为了Double类型
3.获取当前按月份
Calendar calendar = Calendar.getInstance();
int month = calendar.get(Calendar.MONTH) + 1;//1月 = 0;
本文探讨了Java中字符串初始化及比较的区别,特别是在未使用new关键字时字符串的比较行为。同时,通过实例展示了不同类型对象之间的自动类型提升过程,并介绍了如何在Java中获取当前日期的月份。
1541

被折叠的 条评论
为什么被折叠?



