2023.10.23-29本周学习小结(27)

简介: 2023.10.23-29本周学习小结(27)

/*有关字符串类型的一些使用机制

比较常用的字符串使用方式跟平常的差不多,比如

String in="abc";

打印出来的直接会是一个字符串  abc


还有其他几种不常"见"的String类型的使用方式

1.String in=new String();

直接创建一个空白的字符串的数组,输出的结果是一个空值


2.char[] in={'a','b','c'};
String sc=new String(in);

先创建一个字节类型的数组,之后用这个字节类型的数组进行直接的输入


3.String in=new String("abc");

直接在其中输入对应的数组,结果跟数组内部的是完全一样的



进入面试题的示例看看两种不同类的String方式有什么不同


*/
String s1="abc";
String s2="abc";
System.out.println(s1==s2);
//答案是  true
/*

解释说明

在用平常最常用的String类型的方法的时候,一般会直接进入到堆内存当中的Stringtable当中,如果没有,

那就进行创建,有的话直接用

*/


String a1="abc";
String a2=new String("abc");
System.out.println(a1==a2);
//答案是 false
/*

一看到NEW的时候,就要在堆内存当中创建一个新的地址,所以a2直接创建了一个新的地址,之后在Stringtable

当中进行寻找,有的话直接作为一个副本复制过来,两者之间的地址值是不一样的,所以FALSE

*/


String b1="abc";
String b2="bc";
String b3=b2+"a";
System.out.println(b3==b1);
//答案是 false
/*

对于前两个的变量不再过多的说明.没有的话直接在Stringtable当中进行创建

但是对于b3,是一个变量外加上一个字节类型的,所以要在堆内存当中重新的创建一个Stringbuilder

的类型,将两者之间,使用字符串的拼接方式连接在一起,也有考到+的使用方式

之后因为类型不匹配,所以需要把Stringbuild重新的转变成为一个String的类型,这样才能使用,这样

的才是一个最终的地址值


*/


String c1="abc";
String c2="a"+"bc";
System.out.println(c1==c2);
//true
/*

这个答案的结果需要跟上一个题目之间相互区分,也就是对于+的理解(字符串之间的),在JAVA当中,在进行一定的编译的时候,

会有一定的常量优化处理,在这个题目当中就是这样,会在编译的时候,直接把这两个连接在一起,最后的结果发现在Stringtable当中是存在的

,所以两个值完全相等!

*/

OVER


相关文章
|
机器学习/深度学习 人工智能 程序员
5月份读书学习好文记录
5月份读书学习好文记录
40 0
|
Web App开发 分布式计算 前端开发
前端周刊-(2018年09月第2周)
前端周刊-(2018年09月第2周)
76 0
|
前端开发 JavaScript
本周小总结
本周小总结
79 0
|
关系型数据库 MySQL 数据库
新星计划一周体验!教你上榜技巧
新星计划一周体验!教你上榜技巧
117 0
|
小程序
近期写作回顾
这算是经常写作的一个好处吧!它会帮助你记录下所干过的事情。我们的记忆并不长久,尤其是对于那些并不是很重要的事情,不信你试着回忆一下,中旬自己都干了些什么,是不是根本就想不起来了。
73 0
|
JavaScript 算法 Python
本周上市新书
异步社区本周上市新书
1486 0
2018年春季个人阅读计划
  本学期的阅读计划为一本书,书名《需求工程——软件建模与分析》。   总共要发表6篇阅读笔记,半个月发表一篇,如果提前阅读完的话会提前发布。
804 0
下一篇
无影云桌面