String 字符串 篇
来源:互联网 发布:人工智能统治人类 电影 编辑:程序博客网 时间:2024/06/16 15:36
一 String作为Java中最常用的引用类型,String是个封装类,不属于八大类型(byte,short,int,long,double,float,char,boolean).String默认值是null。注:string 在java底层是以数组的形式 char[] c1 = {'h','e','l','l','o'};
二String 常用方法
1.length();字符长度
2.charAt();单个字符截取
3.subString();多个字符截取4.trim();去除空格,首尾空格去除 中间不去除
5.compareTo();两个字符比较,进行ASCII差值,返回ASCII
6.isEmpty();判断字符是否为空
7.indexOf();字符第一次出现的位置
8.lastIndexOf();字符最后一次出现的位置
9.toLowerCase();字符中含大写字母转化成小写字母
10.toUpperCase();字符中含小写字母转化成大写字母
11.startWith();判断是否以给定开始 的字符输出,例如:startWith("a")
12.endWith();判断是否以给定开始 的字符输出
13.equals()和==
equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
例:String s1="Hello";
String s2=new String(s1);
s1.eauals(s2); //true
s1==s2;//false
三.字符类型和数值型数据之间转化
1.字符型转换成数值型数据:parse***( String)
double(float|long|int|short|byted)=Double(Float|Long|Integer|Short|Byte).parseDouble(Float|Long|Integer|Short|Byte)(String字符);
eg:String str="1.22";
double d=Double.parseDouble(String);
2.数值型抓换成字符型数据:valueOf()
String.valueOf( byte|short|int |long|float);
四.String 在底层如何保存
(1)字符串池:
是内存中的一部分(堆内存),专门存放字符串字面量
字符串字面量:指的是字符串中的具体内容
1)字符串池中存储的字符串有什么特点?
具体的字符串
字符串池中的字符串不允许重复.
2)字符串池中存字符串如何存?
"先检查,没有的话开辟空间存储,有指向"
详细描述:
字符串存到字符串池之前,会先检查字符串池中
有没有这样一个字符串(值),
如果有,不会再开辟空间存这个字符串,会将池中的字 符串的引用赋给
要当前字符串,注:此时,两个指向同一个字符串
如果没有,再开辟空间存储当前字符串
(2) 什么样的字符串可以放在字符串池中?
a. 直接将一个双引号中的字符串赋值给String变量
String s1 = "hello"
b. 多个由双引号组成的且中间使用 + 号连接的
String s1 = "hello";
String s2 = "h"+"e"+"llo";//jvm自动优化
自动优化:先将多个使用加连接的字符串合并在一起,
然后作为整体再池中检查有没有...
(2) 堆内存:
java中,对象类型的数据都会存储到堆内存;
(数组,集合,系统源码类,自己定义类)
即: 使用 new创建的对象数据,数组,集合
1. 什么样的字符串存储在堆内存?
使用 new 关键字定义的字符串;
String s1 = new String( "hello" );
注:此时创建了两个对象
1个是在字符串池中创建的hello字符串
1个是在堆内存中创建的s1对象(对象中的内容hello)
2. 堆内存中如何存储字符串数据?
String s1 = new String( "hello" );
step1. 先去字符池中找有没有值为hello的字符串
没有就开辟区域存储hello;
有的话,不会再开辟;
step2, 栈内存和堆内存中开辟空间存储
先在栈内存开辟空间存储变量 s1
接着在堆内存开辟空间存储 s1对象
当执行 String s1 = new String( "hello" )时
将 栈内存的变量 s1 指向 堆内存中的s1对象
- String 字符串 篇
- 字符串string
- string字符串
- String字符串
- String字符串
- String字符串
- 字符串String
- 字符串String
- 字符串String
- String 字符串
- 字符串String
- String字符串
- 字符串string
- String字符串
- string字符串
- String字符串
- 字符串 String
- 字符串(String)
- 组件编写2-----执行方法生成组件
- 【转载】8天入门wpf—— 第二天 xaml详解
- 修改TabLayout底部导航条Indicator的长短
- 基础的C语言程序
- 给超链接加onclick事件
- String 字符串 篇
- 跳表的定义和原理
- MySQL更改字段名
- 信息安全——加密解密技术
- 【转载】8天入门wpf—— 第三天 样式
- POJ 3168 排序+扫描
- 行人检测笔记1——How Far are We from Solving Pedestrian Detection?
- Linux内核中断嵌套
- 基于购买与回收双向数据的推荐系统学习总结(1)