Java基础学习Day09--字符串
今天把昨天遗留的问题解决了
今天学习了字符串相关的内容
一、简介:
字符串(String)是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象来处理。
程序中需要用到的字符串可以分为两大类:
(1)String类:创建之后不会再做修改和变动的字符串常量;
(2)StringBuffer类:创建之后允许再做更改和变化的字符串变量。
串的两种最基本的存储方式是顺序存储方式和链接存储方式。
二、String类字符串
字符串变量必须赋值后才可以使用,这称为字符串对象初始化。
#字符串的创建和赋值的方式有三种
(1)String 字符串变量名;
字符串变量名="字符串常量";
String username="";
username="Tom"
(2)String 字符串变量名="字符串常量";
String SayHello="Hello world";
(3)String studentName=new String("周杰杰")
三、String字符串的存储原理
(1)String表示字符串类型,属于引用数据类型。
(2)在java中随便使用双引号括起来的都是String对象。
例如:“abc”, “def”, “hello world”,这是3个字符串对象。
(3)java中规定,双引号括起来的字符串,是不可改变的,final修饰的,自出生到销毁都是不可改变的。
(4)在JDK当中,双引号括起来的字符串,如:“abc”, "xyz"都是直接存储在“方法区”的“字符串常量池”当中的。
(5)为什么SUN公司把字符串存在一个“字符串常量池”当中呢?
因为字符串在实际开发中使用太过频繁,为了提高执行效率,所以把字符串放到方法区的字符串常量池当中。
样例:
public class Test01 {
public static void main(String[] args) {
//下面两行代码创建了3个字符串对象,都在常量池当中
String s1 = "abcdef"; //在字符串常量池当中有一个"abcdef"对象
String s2 = "abcdef" + "xy"; //因为已经有了"abcdef"对象,不需要再创建,而是创建"xy"对象,再拼接计算,创建"abcdefxy"对象
String s3 = new String("xy");
//这句代码使用了new关键字。代码中的"xy"是从哪里来的?