常用类
object
object类是Java中所有类的共同父类
Object类的方法
1.toString()
- 默认情况下,toString()返回的是“对象的运行时类型 @ 对象的hashCode值的十六进制形式"
- 如果我们直接System.out.println(对象),默认会自动调用这个对象的toString(),打印的是地址值
- 可以根据需要在用户自定义类型中重写toString()方法,如String 类重写了toString()方法,返回字符串的值。
s1="hello";
System.out.println(s1);//相当于System.out.println(s1.toString());
2.equals()
-
equals()只能比较引用类型,其作用与“==”相同,比较是否指向同一个对象。
-
equals()如果没有被重写过默认也和==一样是比较地址值,只有在一些重写过equals()方法的类中才是比较内容值.
hashCode()
-
返回每个对象的hash值。
-
若将来希望根据成员变量值计算哈希值,需要进行重写,如果重写equals,那么通常会一起重写hashCode()方法
clone()
- 只有类实现了cloneable接口的对象,才可以进行克隆,浅拷贝
String
概述:
字符串是由若干个字符构成的字符序列,每一个字符位置是固定的,一旦被创建,就不能被修改,处于常量池中。
在java中,提供了一个类来表示字符串:String。Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例【对象】。
因为String对象是不可变的,它们可以被共享。
String类中的构造方法:
public static void main(String[] args) {
//public String(byte[] bytes) 将字节数组转成一个字符串
byte[] bytes = {97,65,48,98,99};
String s2 = new String(bytes);
System.out.println("s2: "+s2);//s2: aA0bc
System.out.println("-----------------------");
//public String(byte[] bytes,int index,int length)截取字节数组一部分转成字符串
String s3 = new String(bytes, 1, 3);
System.out.println("s3: "+s3);//s3: A0b
System.out.println("-----------------------");
//public String(char[] value) 将字符数组转成一个字符串
char[] chars = {'我','爱','刘','亦','菲'};
String s4 = new String(chars);
System.out.println("s4: "+s4);//s4: 我爱刘亦菲
System.out.println("-----------------------");
//public String(char[] value,int offset,int count)截取字符数组一部分转成字符串
String s5 = new String(chars,2,3);
System.out.println("s5: "+s5);//s5: 刘亦菲
System.out.println("-----------------------");
//public String(String original)
String s6 = new String("hello");
System.out.println("s6: "+s6);//s6: hello
System.out.println("-----------------------");
String s = new String("hello");
String s7 = "hello";
System.out.println(s==s7);//false
}
字符串String类中的判断功能:
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
//boolean equals(Object obj) 比较两个字符串内容是否相同,区分大小写
System.out.println(s1.equals(s2));//false
//boolean equalsIgnoreCase(String str) 忽略大小写比较两个字符串内
String s3 = "HelLo";
System.out.println(s1.equalsIgnoreCase(s3));//true
//boolean contains(String str) 判断一个字符串中是否包含另一个字符串
String s4 = "今天的天气有点凉,不太适hello合出去郊游";
System.out.println(s4.contains(s1));//true
//boolean startsWith(String str) 判断某一个字符串是否以某个字符串开头
System.out.println(s4.startsWith("今天我"));//false
// boolean endsWith(String str) 判断某一个字符串是否以某个字符串结尾
System.out.println(s4.endsWith("不去郊游"));//false
// boolean isEmpty() 判断一个字符串是否是空字符串
String s5 = "hello";
System.out.println(s5.isEmpty());//false
}
字符串String类中的获取功能:
public static void main(String[] args) {
String s1 = "hello";
//int length() 获取字符串中的字符个数
System.out.println(s1.length());//5
//char charAt(int index) 根据索引获取对应位置上的字符
System.out.println(s1.charAt(1));//e
//int indexOf(int ch) 根据字符对应ASCII码数值获取对应字符的位置索引
System.out.println(s1.indexOf(101));//1
//int indexOf(String str) 获取大字符串中小字符串的第一个字符的位置,r若不包含返回-1
String bigStr = "dwqsredhelloqjion";
String smallStr = "world";
System.out.println(bigStr.indexOf(smallStr));//-1
//int indexOf(int ch,int fromIndex) 从指定索引开始查找对应的字符
String s2= "dwqrewqrffqewrfdwqqrfwqfwq";
System.out.println(s2.indexOf(101,5));//11
//String substring(int start) 从指定索引开始截取字符串到某尾
String s3 = "数加科技欢迎大家的到来";
String s4 = s3.substring(4);
System.out.println("s3: "+s3);//s3: 数加科技欢迎大家的到来
System.out.println("s4: "+s4);//s4: 欢迎大家的到来
//String substring(int start,int end) 指定开始索引和结束索引截取字符串的一部分
String s5 = s3.substring(4, 8);
System.out.println("s5: "+s5);//s5: 欢迎大家
}
字符串String类中的替换功能:
public static void main(String[] args) {
String s1 = "今天是20205年1月4日,hello今年是蛇年hellodsaqwwdq";
//String replace(char old,char new) 使用新字符替换所有的旧字符
String s2 = s1.replace('h', '_');
System.out.println("s1: "+s1);//s1: 今天是20205年1月4日,hello今年是蛇年hellodsaqwwdq
System.out.println("s2: "+s2);//s2: 今天是20205年1月4日,_ello今年是蛇年_ellodsaqwwdq
System.out.println("--------------------");
//String replace(String old,String new) 使用新的字符串替换旧字符串
String s3 = s1.replace("hello", "flinkspark");
System.out.println("s1: "+s1);//s1: 今天是20205年1月4日,hello今年是蛇年hellodsaqwwdq
System.out.println("s3: "+s3);//s3: 今天是20205年1月4日,flinkspark今年是蛇年flinksparkdsaqwwdq
System.out.println("--------------------");
String s4 = " hello world ";
System.out.println(s4.trim());//hello world
System.out.println("--------------------");
String s5 = "hello";
String s6 = "world";
String s7 = "hel";
System.out.println(s5.compareTo(s6)); // -15
System.out.println(s5.compareTo(s7)); // 2
// "hello","apple","world","flink","hadoop"
}
StringBuffer
因为String对象是不可变对象,虽然可以共享常量对象,但是对于频繁字符串的修改和拼接操作,效率极低,空间消耗也比较高。因此,java提供了可变字符序列StringBuffer类型。
StringBuffer:
线程安全,可变的字符序列。 字符串缓冲区就像一个String ,但可以修改。
在任何时间点,它包含一些特定的字符序列,但可以通过某些方法调用来更改序列的长度和内容。
构造方法:
public StringBuffer()
public StringBuffer(int capacity)
public StringBuffer(String str)
StringBuffer基本功能
public static void main(String[] args) {
StringBuffer sb1 = new StringBuffer();
System.out.println("sb1: " + sb1); //sb1:
// 获取StringBuffer容量大小
System.out.println(sb1.capacity());//16
// 获取实际的字符个数
System.out.println(sb1.length());//0
System.out.println("----------------");
//public StringBuffer(int capacity) 指定容量大小
StringBuffer sb2 = new StringBuffer(100);
// 获取StringBuffer容量大小
System.out.println(sb2.capacity());//100
// 获取实际的字符个数
System.out.println(sb2.length());//0
System.out.println("----------------");
//public StringBuffer(String str) 创建StringBuffer对象的时候,放入一个初始字符串
StringBuffer sb3 = new StringBuffer("hello");
System.out.println(sb3.capacity()); // 21
// 获取实际的字符个数
System.out.println(sb3.length());//5
System.out.println("----------------");
}
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
//public StringBuffer append(String str) 末尾处追加
sb.append(10);
sb.append(12.34);
sb.append(true);
sb.append("hello");
sb.append('w');
System.out.println("sb: "+sb);//sb: 1012.34truehellow
//1012.34truehellow
//public StringBuffer insert(int offset,String str) 指定索引插入元素
sb.insert(5,"java");
System.out.println("sb: "+sb);//sb: 1012.java34truehellow
//1012.java34truehellow
//public StringBuffer deleteCharAt(int index) 根据索引删除元素
sb.deleteCharAt(7);
System.out.println("sb: "+sb);//sb: 1012.jaa34truehellow
//1012.jaa34truehellow
//public StringBuffer delete(int start,int end) 指定开始和结束索引删除一部分字符
sb.delete(7,11);
System.out.println("sb: "+sb);//sb: 1012.jaruehellow
//1012.jaruehellow
//public StringBuffer replace(int start,int end,String str) 替换StringBuffer一部分字符序列
sb.replace(7,10,"flink");
System.out.println("sb: "+sb);//sb: 1012.jaflinkhellow
//public StringBuffer reverse() 将StringBuffer中的字符序列反转
StringBuffer sb2 = new StringBuffer("hello");
sb2.reverse();
System.out.println("sb2: "+sb2);//sb2: olleh
//public String substring(int start)
StringBuffer sb3 = new StringBuffer("世界很大,我想去看看!");
String s1 = sb3.substring(5);
System.out.println("sb3: "+sb3);//sb3: 世界很大,我想去看看!
System.out.println("s1: "+s1);//s1: 我想去看看!
String s2 = sb3.substring(5,8);
System.out.println("sb3: "+sb3);//sb3: 世界很大,我想去看看!
System.out.println("s1: "+s2);//s1: 我想去
}
Arrays
Arrays是jdk针对数组做操作的一个工具类
成员方法:
public static String toString(int[] a) 以指定格式查看任意类型元素的数组
public static void sort(int[] a) 快速排序一个数组,从小到大
public static int binarySearch(int[] a,int key) 二分查找,返回所查找元素的索引,前提该序列要有序
public static void main(String[] args) {
int[] arr = {123,5432,67,2,64,8443};
System.out.println("排序前:"+Arrays.toString(arr));
//排序前:[123, 5432, 67, 2, 64, 8443]
Arrays.sort(arr);
System.out.println("排序后:"+Arrays.toString(arr));
//排序后:[2, 64, 67, 123, 5432, 8443]
System.out.println(Arrays.binarySearch(arr,99)); // -4
}
标签:Java,String,记录,int,StringBuffer,System,学习,println,out
From: https://blog.csdn.net/qqeqraw/article/details/145181526