常见的对象和类 关于面试过程中对于String中的面试题

对于String的面试题
    String str1="abc";
    String str2="abc";
    System.out.println(str1==str2);//结果为true ==这个符号可以比较常量和引用的
    如果是常量比较的是值。如果是引用比较的是地址
    System.out.println(str1.equals(str2));结果为true equal比较的是是否是相同的字符序列
上述条件不变的话
String str1=new String ("abc");
String str2="abc";
System.out.println(str1==str2);false//原因是str1是堆中的引用,str2是常量池中的引用是不相等的
System.out.println(str1.equals(str2));true 比较的相同字符序列

String s="a"+"b"+"c";
String b=abc;
System.out.println(a==b); true 是因为java中有常量优化机制 比如说 a=3+6 其中3+6已经被系统默认为是9

System.out.println(a.equals(b));true
 String s1="ab";
String s2="abc";
String s3=s1+c;
System.out.println(s2==s3);//false 首先是对于+的理解串联起来 通过StringBuffer的append方法进行合并 ,然后通过 toString()方法转换成字符串 
System.out.println(s2.equals(s3)); true 

1.

对于下列代码的理解 创建了几个对象
String str= new String("abc");

首先进入方法区 创建一个也就是在栈区创建str对象,然后在常量池中查找有没有adc这个值,然后new 在堆区创建一个副本,所以说创建了两个对象
常见的类和对象
Scanner 对象 常用的方法
Scanner sc =new Scanner(System.in);
int i=sc.NextInt();// 键盘录入一个整形的数字 会有一个判断类型的过程
String j=sc.NextLine();// 键盘录入一个字符串
system.out.println(i +j);
//hasNextxxx 是用来判断键盘录入的类型是否和已经给的类型一致

2.String

String 这个类
字符串的值可以看做是字符串的一个对象
字符串是一个常量,一旦创建就不能被更改了
public static void main (String [] args){

String str="abc";//abc'可以看做是一个字符串的对象
str ="def"; //赋值之后ABC就变成了垃圾,会被回收掉,但是abc这个常量的值是不会被改变的
System.out.println(str);//打印出来的是str的值说明了String这个类重写了toString()方法、
}

猜你喜欢

转载自blog.csdn.net/qq_41826183/article/details/87934691