美文网首页
MyOwnWorld

MyOwnWorld

作者: seconp | 来源:发表于2020-06-17 19:20 被阅读0次

为什么需要先创建对象再使用对象?

因为只有new过后才能将类加载进堆中,堆中会对成员变量自动赋值,不赋值不能使用成员变量,使用的话会报错。

java.lang包下的内容不需要导包。

String这个类很特殊,打印这个对象不会打印它的地址而是打印它的值。

关于String:

直接使用双引号会直接创建对象,但是这样还是和String str = new String()不同。字符串不可变,一旦创建,不能被改变。

虽然String的值不可变,但是它可以被共享。

有参构造String str = new String(char arr[])的作用,将字符数组转化为字符串。

以双引号创建的数组,只要字符序列相同(顺序和大小相同),两个对象就会指向常量池中的同一个位置。

在java中字符串之间使用 + 拼接的时候,系统底层会自动创建一个stringBuilder对象,然后调用append方法完成拼接。拼接后调用toString方法将对象转化为String类型。

注意字符串的比较要使用equals,不要使用 ==。

java中的常量优化机制能够提高字符串拼接的效率。String str = "a" + "b" + "c" 等价于 String str ="abc"

java中的常量优化机制 string中“+”的机制 stringBuilder的创建机制,通过和上面一幅图的比较可以知道为什么stringBuilder拼接字符更快

string和stringBuilder的相互转化:

string-->stringBuilder:可以提高拼接字符串的效果,也可以免费试用reverse方法

stringBuilder-->string:可以使用string的很多方法。

string不可变;stringBuilder是可变的

scanner中的next:

nextLine和nextSth有冲突。nextLine 遇到换行结束。

next和nextSth无冲突。 next 遇到空格或者tap结束。

相关文章

  • MyOwnWorld

    为什么需要先创建对象再使用对象? 因为只有new过后才能将类加载进堆中,堆中会对成员变量自动赋值,不赋值不能使用成...

  • MyOwnWorld

    类中的成员变量和局部变量。 成员变量 is different from 局部变量,可以从以下几个方面来甄别。 在...

  • MyOwnWorld003

    数组的创建只有两种方式: 要么是静态初始化:数组类型[] 数组名 = {元素1,元素2}; 要么是动态初始化:...

网友评论

      本文标题:MyOwnWorld

      本文链接:https://www.haomeiwen.com/subject/swnjxktx.html