(3)面试题:
==和equals()的区别?
==:
比较基本类型:比较的是基本类型的值是否相同。
比较引用类型:比较的是引用类型的地址值是否相同。
equals():
比较引用类型,默认比较的是引用类型的地址值是否相同。
如果类重写了该方法,那就得按照重写后的规则进行比较。
5、Scanner注意问题
1、Scanner中方法
next() -- 查找并返回来自此扫描器的下一个完整标记。
nextLine() -- 此扫描器执行当前行,并返回跳过的输入信息。
next() 和 nextLine() 区别:
next()会将空格键、Tab键或Enter键等视为分隔符或结束符,不能得到带空格的字符串。
Scanner scanner = new Scanner(System.in);
String string = scanner.next()
while(true){
System.out.println(string);
string = scanner.next();
}
nextLine()仅将Enter键作为结束符,返回Enter键前的所有字符,可以得到带空格。
2、String类——构造方法(掌握)
1、字符串概念 由多个字符组成的一串数据。
2、构造方法 创建字符串对象的几种方式 String s = new String(); | 通过字节数组创建字符串对象 | String s = new String(byte[] bys); | 通过字节数组创建字符串对象常用 | String s = new String(byte[] bys,int index, int length) | 通过字节数组一部分创建字符串对象 | String s = new String(char[] chs) | 通过字符数组创建字符串对象常用 | String s = new String(char[] chs, int index, int length); | 通过字符数组一部分创建字符串对象 | String s = new String(String); | 通过给构造方法传入字符串创建字符字符串对象 | String s = “helloworld” | 直接给字符串对象赋值常用 |
3、字符串的特点及面试题
1、特点及注意事项
字符串一旦被赋值,就不能改变。 注意:字符串的值不能改变,引用是可以改变的。
2、面试题
a:String s = new String("hello")和String s = "hello"的区别。
答:new String(“hello”)在内存中创建了1个或两个对象,为什么..
“hello”在内存中创建了0个或一个对象,为什么… b:请写出结果:
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
String s3 = new String("hello");
String s4 = "hello";
System.out.println(s3==s4);
System.out.println(s3.equals(s4));
String s5 = "hello";
String s6 = "hello";
System.out.println(s5==s6);
System.out.println(s5.equals(s6)); c : ""和null的区别 最本质的区别是否在内存中开辟内存空间,"'会开辟内存空间,而null不会,在开发的时候要养成良好的习惯用null
4、String类——成员方法(掌握-通过Eclipse&API会用即可)
1、判断功能 boolean equals(Object obj) | 判断字符串的内容是否相同,区分大小写 | boolean equalsIgnoreCase(String str) | 判断字符串的内容是否相同,忽略大小写 | boolean contains(String str) | 判断字符串对象是否包含给定的字符串 | boolean startsWith(String str) | 判断字符串对象是否是以给定的字符串开始 | boolean endsWith(String str) | 判断字符串对象是否是以给定的字符串结束 | boolean isEmpty() | 判断字符串对象是否为空,注意是数据 |
3、转换功能 byte[] getBytes() | 把字符串转换成字节数组 | char[] toCharArray() | 把字符串转换成字符数组 | static String copyValueOf(char[] chs) | 把字符数组转换成字符串 底层调用new String(char[] chs) | static String valueOf(char[] chs) | 把字符数组转换成字符串 底层调用new String(char[] chs) | static String valueOf(任意类型 变量名) | 把任意类型转换成字符串 | String toLowerCase() | 把字符变成小写原字符串不变 | String toUpperCase() | 把字符编程大写原字符串不变 | String concat(String str) | 字符串链接原字符串不变 |
|