Java基础—String总结
特点
String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
String实际上是使用字符数组来存储的数据的。从源码可以清晰看到定义的字符数组。
String在java/lang包下面,java默认导入lang包,所以使用String类时不用导入。
创建方式
创建字符串有下面两种方式:
- String ok1=new String(“ok”);
- String ok2=“ok”;
equals和“==”
在比较两个字符串的时候,equals()是看数值是否相等,而==是看是否属于同一个对象。
看几个例子:
String a = "abc";
String b = "abc";
System.out.print(a == b); //true
a和b都指向字符串常量池中的对象,所以为true。
String a = "Hello";
String b = new String("Hello");
System.out.println(a == b); //false
System.out.println(a.equals(b)); //true
a指向字符串常量池中的对象,b指向堆中的字符串对象,所以==结果为false,equals结果为true。
即使字符串内容相同,字符串常量池中的字符串与通过new String(..)等方式创建的字符串对象之间没有直接的关系,但是,可以通过字符串的intern()方法找到此种关联。
intern()方法返回字符串对象在字符串常量池中的对象引用,若字符串常量池中尚未有此字符串,则创建一新的字符串常量放置于池中。
String a = "Hello";
System.out.println(a == a.intern()); //true String b = new String("corn");
String c = b.intern(); System.out.println(b == c); //false String d = "corn"; System.out.println(c == d); //true
常用方法
int length(); // 返回String长度,亦即value[]数组长度;
char charAt(int index); // 返回指定位置字符;
int indexOf(int ch, int fromIndex); //从fromIndex位置开始,查找ch字符在字符串中首次出现的位置。fromIndex默认为0,ch直接传入字符即可。如'C',区分大小写,未查找到返回-1;
char[] toCharArray() ; // 将字符串转换成一个新的字符数组
boolean contains(String str); //是否包含某个字符串,实际上 contains内部实现也是调用的indexOf,然后将其结果与-1相比较。
boolean startsWith(String str); // 判断字符串是否以str开头
boolean endsWith(String str); //判断字符串是否以str结尾
String replace(CharSequence target, CharSequence replacement) ; // 替换
String substring(int beginIndex, int endIndex); //字符串截取,不传第二个参数则表示直接截取到字符串末尾
String[] split(String regex); // 字符串分割
String/StringBuilder/StringBuffer区别
1.三者在执行速度方面的比较:StringBuilder < StringBuffer < String
String:字符串常量
StringBuffer:字符串变量
StringBuilder:字符串变量
2.StringBuilder:线程非安全的,StringBuffer:线程安全的
对于三者使用的总结:
- 如果要操作少量的数据用 = String
- 单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
- 多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
JAVA字符串格式化-String.format()的使用
参考:
Java的String详解
Java基础—String总结的更多相关文章
- Java基础String的方法
Java基础String的方法 字符串类型写法格式如下: 格式一: String 变量名称; 变量名称=赋值(自定义或传入的变量值); 格式二: String 变量名称=赋值(自定义或传入的变量值); ...
- Java基础 String 裸暴力算法- 五个小练习
之间的博客,承上启下: Java基础 String/StringBuff 常用操作方法复习/内存分析 Java数组直接选择排序.sort()排序 Java基础 String 算法 - 五个练 ...
- Java基础—String构造方法
Java基础--String构造方法 public String(): 创建一个空表字符串对象,不包含任何内容 public String(char[]chs): 根据字符数组的内容,来创建字符串对象 ...
- Java基础——String
前言 从去年八月末开始工作一年了,有了大半年的java开发经验,自认为比在大学时期编码能力强了很多,但是基础方面概念模糊的地方感觉越来越多了 (:´д`)ゞ 所以,我准备把这些问题以及工作中遇到的问题 ...
- java基础-String不可变的好处
一.java内部String类的实现: java 8: public final class String implements java.io.Serializable, Comparable< ...
- Java基础 -- String,StringBuilder,StringBuffer三者的区别
结论 1-String,StringBuilder,StringBuffer 之间的区别主要是在两个方面,即运行速度和线程安全这两方面: 首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:St ...
- java基础——String的常用方法
java中String的常用方法 1.length() 字符串的长度 例:char chars[]={'a','b'.'c'}; String s=new String(chars); i nt le ...
- java基础 String
标准格式:数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...};省略格式:数据类型[] 数组名称 = {元素1,元素2,...}; Scanner类实现的功能,可以实现键盘输入 ...
- Java基础 String/StringBuff/StringBuilder 常用操作方法复习/内存分析/三者的效率比较
附:jdk1.8使用IDEA安装.创建.使用JUnit单元测试 笔记总结: /**String 复习 * 1.像C++这样的char arr[]="..." 的方式无法声明Java ...
随机推荐
- JQuery实现ajax跨域
AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请求数据,就会出现错误.如果能控制数据驻留的远程服务器 ...
- Atitit.java swing打印功能 api attilax总结
Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...
- python 转化文件编码 utf8
使用visual studio最大的一个问题就是文件编码问题,当文件中有中文时,visual studio 会默认为区域编码,也就是gb2312,如果想跨平台或者不用vs编译的话,就会因为编码问题导致 ...
- iOS wkWebView点击链接无反应
在使用wkWebView的时候发现用webView加载youku.com,里面的视频链接点击是可以跳转的,但是呢,加载v.qq.com的时候发现链接点击又没有效果,折腾了很久最后找到解决方案 实现WK ...
- UVa10099_The Tourist Guide(最短路/floyd)(小白书图论专题)
解题报告 题意: 有一个旅游团如今去出游玩,如今有n个城市,m条路.因为每一条路上面规定了最多可以通过的人数,如今想问这个旅游团人数已知的情况下最少须要运送几趟 思路: 求出发点到终点全部路其中最小值 ...
- php基本语法之逻辑运算符
百度经验 | 百度知道 | 百度首页 | 登录 | 注册 新闻 网页 贴吧 知道 经验 音乐 图片 视频 地图 百科 文库 帮助 首页 分类 杂志 任务 签到 回享计划 商城 知道 百度经验 > ...
- web.xml文件:
在web.xml配置文件是一个的J2EE配置文件,决定如何处理HTTP请求servlet容器的元素.它不是严格意义上的Struts2的配置文件,但它是一个文件,需要配置Struts2的工作. 正如前面 ...
- onload 和 onunload 事件
onload 和 onunload 事件会在用户进入或离开页面时被触发. onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本. onload 和 onunl ...
- Prime pair connection (Project Euler 134)
题目大意: 对于连续的质数$p1$, $p2$, 满足$5 <= p1 <= 1000000$ 求出最小的整数$S$, 它以 $p1$结尾并且能够被$p2$整除. 求$S$的和. 思路: ...
- sqoop 从oracle导数据到hive中,date型数据时分秒截断问题
oracle数据库中Date类型倒入到hive中出现时分秒截断问题解决方案 1.问题描述: 用sqoop将oracle数据表倒入到hive中,oracle中Date型数据会出现时分秒截断问题,只保留了 ...