枚举
枚举是由一组固定的常量组成的类型,使用关键字 enum
定义
包装类
8种包装类 Byte
、Short
、Integer
、Long
、Float
、Double
、Boolean
、Character
Math
基本数学运算和几何运算的方法,此类中的方法都是静态、常量的,没有子类
Math.random( )
[0.0,1.0)
随机数(double)
Math.abs( )
求绝对值(double float int long)
Math.round
四舍五入计算(double float)
Math.max( , )
Math.min( , )
求两个数中的最大/最小值(double float int long)
(Math.random*(max-min)+min)
String类
String
位于java.lang
包中,该包是被自动导入进所有程序中 . 对象 , 引用数据类型 , 默认为 null
String
为 final
类型不可更改,不能被继承 基本类型与 String
结合都会转换为 String
类型
String赋值方式
1.直接赋值
String str = "";
2.使用 new
关键字赋值
String str = new String ("");
两种赋值方式的区别:
1.直接定义的String ""
储存在常量存储区中的字符串常量池中, new String("")
是存储在堆中
2.常量池中相同的字符串只有一个,但是 new String()
, 每new一个对象就会在堆中新建一个对象
3.String a = “”
在编译阶段就会在内存中创建, String a = new String("")
是在运行时才会在堆中创建对象
4.直接赋值只开辟一块堆内存空间,并且会自动入池,不会产生垃圾,构造方法会开辟两块堆内存空间,其中一块堆内存会变成垃圾被系统回收,在开发的过程中不会采用构造方法进行字符串的实例化
常量池(constant pool) : 在编译期被确定,并被保存在已编译的 .class
文件中的一些数据.它包括了关于类、方法、接口等中的常量,也包括字符串常量.字符串常量池在 jdk1.6 及之前在方法区中,在 jdk1.7 及以后放在了堆中,编译阶段确定的字符串才会被放到字符串常量池中
String.intern()
扩充常量池的方法.当一个String
实例str
调用intern()
方法时,Java查找常量池中是否有相同Unicode的字符串常量,如果有,则返回其的引用,如果没有,则在常量池中增加一个Unicode等于str
的字符串并返回它的引用
length()
返回此字符串的长度,长度等于字符串中Unicode 代码单元的数量
equals()
比较两字符串的Unicode序列是否相当.如果相等返回true
equalsIgnoreCase()
忽略大小写比较两字符串的Unicode序列是否相当
String str1 = "Abc";
String str2 = "abc";
System.out.println(str1.equalsIgnoreCase(str2));
//输出结果为true
toLowerCase()
使用默认语言环境的规则将这里的所有字符转换为小写(把字符串中的大写字母转换为小写字母)
toUpperCase()
使用默认语言环境的规则将这里的所有字符转换为大写(把字符串中的小写字母转换为大写字母)
String str1 = "Abc";
String str2 = "abc";
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
System.out.println(str1.equals(str2));
//输出结果为true
concat()
将指定的字符串连接到此字符串的末尾(拼接字符串 字符串1.concat(字符串2)拼接后的结果:字符串1字符串2)
String str1 = "abc";
String str2 = "123";
String result1 = str1 + str2;
String result2 = str1.concat(str2);
System.out.println(result1+"\n"+result2);
//输出结果都为abc123
indexOf(int ch)
返回此字符串中第一次出现指定字符的索引(判断字符串中是否包含子字符/字符串 .从前到后/从0开始,找到返回对应的下标(下标从0开始)找不到就返回-1.所以判断谁在不在字符串中就判断indexOf()
返回结构是否为-1)
indexOf(int ch, int fromIndex)
返回此字符串中第一次出现指定字符的索引,从指定索引开始搜索(判断字符串中是否包含子字符/字符串 .找最后一个出现的子字符串的下标)
lastIndexOf(int ch)
返回此字符串中最后一次出现指定字符的索引(判断字符串中是否包含子字符/字符串.找最后一个出现的子字符串的下标)
substring(int beginIndex)
(截取下标从下标1截取到字符串末尾)
substring(int beginIndex,int endIndex)
返回作为此字符串的子字符串的字符串.子字符串从指定开始beginIndex
并延伸到 index 处的字符endIndex - 1
.因此子串的长度为endIndex-beginIndex
(下标从下标1截取到下标2的前一个 取不到下标2)
trim()
返回一个字符串,其值为该字符串,删除了所有前导和尾随空格,其中空格定义为代码点小于或等于 'U+0020'
(空格字符)的任何字符(去掉字符串左右多余的空格)
replaceAll()
方法删除所有的空格
split()
围绕给定正则表达式的匹配拆分此字符串(按照指定的分隔符把字符串分隔成数组)
参考文章 : JAVA中String对象详解 JAVA中String对象详解
StrubgBuffer
还可以使用StringBuffer
来存储字符串.StringBuffer
类是比String
类更高效存储字符串的引用数据类型.尤其是在对字符串的连接操作上.在使用是需要声明并且初始化,不需要进行导包处理
Comments | 1 条评论
Can I just say what a comfort to find somebody who truly understands what theyre talking about on the net. You certainly understand how to bring a problem to light and make it important. A lot more people really need to look at this and understand this side of the story. I cant believe youre not more popular because you definitely possess the gift.