Java学习路线-4:String字符串(1)

简介: Java学习路线-4:String字符串

第10 章 : String类特点分析

42 String类简介

双引号定义

+连接字符串

字符创串不是基本数据类型

其中定义了一个数组,每一个字符都保存到数组中


JDK 1.9支持的字符串形式增多了

JDK 1.9 之后字符串数组使用byte类型

JDK 1.8 字符串数组使用char类型


字符串数组是字符的包装

字符串不可变


// 直接赋值
String name = "字符串" ;
// 构造方法实例化
String company = new String("实例化字符串") ;

43 字符串比较

int型变量使用 == 判断相等

String 类型使用 equals(String str)

String name1 = "字符串" ;
String name2 = "字符串" ;
String name3 = new String("字符串") ;
System.out.println(name1 == name2) ; // true
System.out.println(name1 == name3) ; // false
System.out.println(name1.equals(name2)); // true
System.out.println(name1.equals(name3)); // true

区别

== 比较数值, 如果用于对象比较,则比较内存地址

equals 比较字符串内容

44 字符串常量

双引号描述的是String类的一个匿名对象

字符串直接赋值,是将一个匿名字符串对象引用赋值


字符串比较的时候,字符串常量写前面


String name = null ;
System.out.println("字符串".equals(name));
// false
System.out.println(name.equals("字符串"));
// NullPointerException

45 String类对象两种实例化方式比较

字符串池

直接赋值字符串,会在字符串数据池自动保存,实例重用,提高操作性能

构造方法实例化,会开辟新的堆内存空间

手工入池

Strint("").intern()

String name1 = new String("字符串") ;
String name2 = "字符串" ;
System.out.println(name1== name2) ; // false
String name1 = new String("字符串").intern() ;
String name2 = "字符串" ;
System.out.println(name1== name2) ; // true

46 String对象常量池

对象池主要目的是实现数据的共享处理

静态常量池:类.class加载时自动分配

String name1 = "字符串";
String name2 = "字" + "符" + "串" ;
System.out.println(name1== name2) ; // true

运行时常量池:类.class加载后的常量池


String name1 = "字符串";
String str = "符" ;
String name2 = "字" + str + "串" ;
System.out.println(name1== name2) ; // false

程序加载时并不确定str 是什么内容,可以被修改

47 字符串修改分析

字符串内容不可修改

String类是一个字符数组,长度不可以被改变

字符串拼接,并不是修改修改了字符串,而是修改了字符串的指向

String类不要进行频繁修改,会产生垃圾


String str = "字"; // -> 字
str += "符" ;      // -> 符  字符
str += "串" ;      // -> 串  字符串
System.out.println(str) ; // 字符串
相关文章
|
15天前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
119 3
|
22天前
|
SQL Java 数据库
2025 年 Java 从零基础小白到编程高手的详细学习路线攻略
2025年Java学习路线涵盖基础语法、面向对象、数据库、JavaWeb、Spring全家桶、分布式、云原生与高并发技术,结合实战项目与源码分析,助力零基础学员系统掌握Java开发技能,从入门到精通,全面提升竞争力,顺利进阶编程高手。
264 0
|
16天前
|
SQL JSON Java
告别字符串拼接:用Java文本块优雅处理多行字符串
告别字符串拼接:用Java文本块优雅处理多行字符串
234 108
|
23天前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
208 100
|
23天前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
257 99
|
26天前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
26天前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
2月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
218 92
|
25天前
|
SQL 算法 Java
零基础到精通的史上最强 Java 学习路线图推荐
史上最全Java学习路线图,涵盖基础语法、面向对象、数据结构与算法、多线程、JVM、Spring框架、数据库及项目实战,助你从零基础到精通Java开发,附完整代码与工具推荐。
97 3
零基础到精通的史上最强 Java 学习路线图推荐

热门文章

最新文章