Java基础-String和StringBuilder类型(11)
String类概述
字符串是由多个字符组成的一串数据
字符串可以看成是字符数组
构造方法
public String(String original)
public String(char[] value)
public String(char[] value,int offset,int count)
直接赋值也可以是一个对象
注意:字符串是比较特殊的引用类型,直接输出该字符串对象打印的不是地址值而是该对象的值.
两个string不能用==判断是否相等,因为引用数据类型比较的是引用数据类型的地址值是否相等.
String s1 = new String("hello");
String s2 = "hello"; System.out.println("s1:"+s1);
System.out.println("s2:"+s2); System.out.println("s1==s2:"+(s1==s2)); //false String s3 = "hello";
System.out.println("s1==s3:"+(s1==s3)); //false
System.out.println("s2==s3:"+(s2==s3)); //true
代码的内存图如下
字符串的内容是存储在方法区的常量池里面的,是为了方便字符串的重复使用.
当用new String()时,堆中的string对象值为常量池中字符串的地址,string变量存的是堆中对象的地址.
当直接赋值时,strig变量的值为常量池中字符串的地址.
String类的判断功能
boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean startsWith(String str)
boolean endsWith(String str)
String类的获取功能
int length()
char charAt(int index)
int indexOf(String str)
String substring(int start)
String substring(int start,int end) //包括左边的不包括右边的
String类的转换功能
char[] toCharArray()
String toLowerCase()
String toUpperCase()
String类的其他功能
去除字符串两端空格
String trim()
按照指定符号分割字符串
String[] split(String str)
StringBuilder类概述
我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuilder就可以解决这个问题
StringBuilder是一个可变的字符串。字符串缓冲区类。
String和StringBuilder的区别:String的内容是固定的.StringBuilder的内容是可变的.
StringBuilder类的常用方法
添加功能
public StringBuilder append(任意类型)
反转功能
public StringBuilder reverse()
StringBuilder和String相互转换
StringBuilder-->String: stringBuilder.toString();
String-->StringBuilder: new StringBuilder(str);
Java基础-String和StringBuilder类型(11)的更多相关文章
- Java基础 -- String,StringBuilder,StringBuffer三者的区别
结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:St ...
- Java基础 String/StringBuff/StringBuilder 常用操作方法复习/内存分析/三者的效率比较
附:jdk1.8使用IDEA安装.创建.使用JUnit单元测试 笔记总结: /**String 复习 * 1.像C++这样的char arr[]="..." 的方式无法声明Java ...
- 探秘Java中String、StringBuilder以及StringBuffer
探秘Java中String.StringBuilder以及StringBuffer 相信String这个类是Java中使用得最频繁的类之一,并且又是各大公司面试喜欢问 到的地方,今天就来和大家一起学习 ...
- Java中String转换Double类型 Java小数点后留两位
Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...
- java 基础知识二 基本类型与运算符
java 基础知识二 基本类型与运算符 1.标识符 定义:为类.方法.变量起的名称 由大小写字母.数字.下划线(_)和美元符号($)组成,同时不能以数字开头 2.关键字 java语言保留特殊含义或者 ...
- Java基础String的方法
Java基础String的方法 字符串类型写法格式如下: 格式一: String 变量名称; 变量名称=赋值(自定义或传入的变量值); 格式二: String 变量名称=赋值(自定义或传入的变量值); ...
- Java基础教程:枚举类型
Java基础教程:枚举类型 枚举类型 枚举是将一具有类似特性的值归纳在一起的方法.比如,我们可以将周一到周日设计为一个枚举类型.彩虹的七种颜色设计为一个枚举类型. 常量实现枚举 我们通过定义常量的方式 ...
- Java基础 String 裸暴力算法- 五个小练习
之间的博客,承上启下: Java基础 String/StringBuff 常用操作方法复习/内存分析 Java数组直接选择排序.sort()排序 Java基础 String 算法 - 五个练 ...
- Java基础—String构造方法
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象 ...
随机推荐
- 删除github上个人的repositories的操作步骤
- Python入门之面向对象编程(一)面向对象概念及优点
概念 谈到面向对象,很多程序员会抛出三个词:封装.继承和多态:或者说抽象.一切都是对象之类的话,然而这会让初学者更加疑惑.下面我想通过一个小例子来说明一下 面向对象一般是和面向过程做对比的,下面是一个 ...
- 20145336 张子扬 《网络对抗技术》web基础
20145336张子扬<网络对抗>Exp8 Web基础 实践内容 1.简单的web前端页面(HTML.CSS等) 2.简单的web后台数据处理(PHP) 3.Mysql数据库 4.一个简单 ...
- Educational Codeforces Round 21 Problem F (Codeforces 808F) - 最小割 - 二分答案
Digital collectible card games have become very popular recently. So Vova decided to try one of thes ...
- Python3基础 lambda 简单示例
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 到底二级域名和一级域名哪个更利于SEO
到底二级域名和一级域名哪个更利于SEO呢?本文是从百度官方转载详细的介绍:二级域名和一级域名的区别,请各位认真阅读. 二级域名和子域名的区别可以通过以下3点来解读: 一,二级域名的特点 搜索引擎往往将 ...
- UVa 11400 照明系统设计
https://vjudge.net/problem/UVA-11400 题意: 有一个照明系统需要用到n种灯,每种灯的电压为V,电源费用K,每个灯泡费用为C,需要该灯的数量为L.注意到,电压相同的灯 ...
- C# 窗口模拟点击按钮或关闭窗口
public class CloseForm { [DllImport("user32", EntryPoint = "FindWindow")] privat ...
- Python matplot的使用(一)
其实,使用它的直接原因是因为matlab太大了,不方便.另外,就是它是免费的. 在安装这个库的时候,会需要安装一些它所依赖的库,比如six等.从sourceforge上下载,只需按照提示安装完成就行了 ...
- c++ 多继承 公有,私有,保护
昨天学习三种继承方式,有些比喻十分形象,特此分享. 首先说明几个术语: 1.基类 基类比起它的继承类是个更加抽象的概念,所描述的范围更大.所以可以看到有些抽象类,他们设计出来就是作为基类所存在的(有些 ...