黑马程序员技术交流社区

标题: JAVA 基础班Day12 Day13面试题 [打印本页]

作者: jacobsnow    时间: 2016-4-28 22:01
标题: JAVA 基础班Day12 Day13面试题

Day 12
12.05_常见对象(String类的常见面试题)
package com.itheima.string;
public class Demo3_String{        
public static void main(String[] args) {
//demo1();
//demo2();
//demo3();
//demo4();
demo5();
}

private static void demo5() {
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3 == s2);
  
System.out.println(s3.equals(s2));
  
  
//true
  

}

private static void demo4() {
//byte b = 3 +4;                 //在编译时就变成7,把7赋值给b,常量优化机制
String s1 = "a" + "b" + "c";//java中有常量优化机制,在编译时期就能确定s2的值为"abc",所以编译时期,在常量池中创建"abc"
String s2 = "abc";//执行到这里时常量池中已经有了"abc",所以就不再创建,所以s1和s2指向的是常量池中同一个字符串常量"abc"
  
System.out.println(s1 == s2);
  
  
//true,java中有常量优化机制        
  
  
System.out.println(s1.equals(s2));
  
  
//true
  

}

  
private static void demo3() {
  
  
//==比较的是地址值
  

String s1 = newString("abc");                        //录的是堆内存对象的地址值               
String s2 ="abc";                                                //记录的是常量池中的地址值
  
System.out.println(s1 == s2);         
  
  
//false
  
  
System.out.println(s1.equals(s2));
  
  
//true
  

}

private static void demo2() {
//创建几个对象
//创建两个对象,一个在常量池中,一个在堆内存中
String s1 = newString("abc");               
System.out.println(s1);
}

  
private static void demo1() {
  
  
//常量池中没有这个字符串对象,就创建一个,如果有直接用即可
  

String s1 = "abc";
String s2 = "abc";
  
System.out.println(s1 == s2);
  
  
//==号比较的是地址值,true        
  
  
System.out.println(s1.equals(s2));
  
  
//比较的是字符串的内容:true
  

}

}

  Day 13  

13.10_常见对象(StringBuffer和StringBuilder的区别)
面试题
String,StringBuffer,StringBuilder的区别
*StringBuffer是jdk1.0版本的,是线程安全的,效率低
*StringBuilder是jdk1.5版本的,是线程不安全的,效率高

String和StringBuffer,StringBuilder的区别
*String是一个不可变的字符序列
*StringBuffer,StringBuilder是可变的字符序列

13.23_常见对象(Integer的面试题)
* A:Integer的面试题
看程序写结果

Integeri1 = new Integer(97);
Integeri2 = new Integer(97);
  
System.out.println(i1  == i2);
  
  
//false
  
  
System.out.println(i1.equals(i2));
  
  
//true
  

System.out.println("-----------");

Integeri3 = new Integer(197);
Integer i4 = new Integer(197);
  
System.out.println(i3  == i4);
  
  
//false
  
  
System.out.println(i3.equals(i4));
  
  
//true
  

System.out.println("-----------");

Integer i5 = 127;
Integer i6 = 127;
  
System.out.println(i5  == i6);
  
  
//ture
  
  
System.out.println(i5.equals(i6));
  
  
//true
  

System.out.println("-----------");

Integer i7 = 128;
Integer i8 = 128;
  
System.out.println(i7  == i8);
  
  
//false
  
  
System.out.println(i7.equals(i8));
  
  
//true
  


解释:




向毛主席保证,好好学习……



作者: Wanibal    时间: 2016-4-28 22:32
质量呢,原创呢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2