初始java String类型

文章目录

  • 初始java String类型
    • 理解 next和nextLine的区别
    • new String(); 括号里面可以放什么呢
      • 放byte类型的数组
      • 放byte类型的数组,索引,长度
      • 放char类型的数组
      • 放char类型的数组,索引,长度
    • String 类型对应同一字符串,是否相等
      • 直接赋值
    • 空的字符串
    • 字节码

初始java String类型

理解 next和nextLine的区别

String sc = new String();
String s1=sc.next();
//当遇到空格或者回车就会结束键盘录入

String s2=sc.nextLine();
//当遇到回车的时候才会结束键盘录入
//遇到空格不会结束键盘的录入

new String(); 括号里面可以放什么呢

放byte类型的数组

byte [] arr = {65,66,67,68,69};
String sc = new Sting(arr);
//arr数组要是byte类型

打印结果

在这里插入图片描述

解释:将数组中的数值看成对应的 A S C L L \color{red}{ASCLL} ASCLL值,字符A对应的的ASCLL值就是65.

放byte类型的数组,索引,长度

byte [] arr = {65,66,67,68,69};
String sc = new String(arr,   1,    3);
//                     数组,索引,长度

打印结果

在这里插入图片描述

解释:字符B对应的索引是1,我们打印3个长度,所以打印的是索引为1,2,3的字符。

放char类型的数组

char [] chars = {'a','b','c','d','e','f'};
String s6 = new String(chars);
System.out.println(s6);

//abcdef

放char类型的数组,索引,长度

char [] chars = {'a','b','c','d','e','f'};
String s7 = new String(chars, 1, 3);
//                     数组,索引,长度
System.out.println(s7);

//bcd

String 类型对应同一字符串,是否相等

直接赋值

String name1="张三";
String name2="张三";
System.out.println(name1==name2);
//true

解释:值创建后不能被更改,但可以被更改,是对象的话,我们一般放在堆内存中,这就意味着地址值是相等的,我们比较的同一块地址内存,所以结果为true

String name3 = new String("张三");
String name4 = new String("张三");
System.out.println(name3==name4);
//false

解释:这里面的张三地址都一样,但是这里是 n e w \color{red}{new} new的对象, 但是这里张三重复了。为了节省内存,new的对象指向了“张三”。这里比较的是 n e w \color{red}{new} new的地址,地址内存不一样。

空的字符串

String s = "";
String s = new String();

字节码

String name5 = "李四";
byte [] arr1 = name5.getBytes();
System.out.println(Arrays.toString(arr1));

//[-26, -99, -114, -27, -101, -101]

可以用字节码反推李四

byte [] arr2 = {-26, -99, -114, -27, -101, -101};
 String s = new String(arr2);
System.out.println(s);
//李四

学的不是技术,更是梦想!!!

你可能感兴趣的:(Java,java,开发语言)