常用类
Object类
- 超类、基类、所有类的直接或间接父类,位于继承树的最顶层。
- 任何类,如没有书写extends显示继承某个类,都默认直接继承object类,否则为间接继承。
- object类中所定义的方式,是所有对象都具备的方法。
- object类型可以储存任何对象。
- 作为参数,可接受任何对象。
- 作为返回值,可返回任何对象。
getClass()方法
- public final Class<?> getClass() {}
- 返回引用中存储的实际对象类型
- 应用:通常用于判断两个引用中实际存储对象类型是否一致
hashCode()方法
- public int hashCode(){}
- 返回该对象的哈希码值
- 哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值
- 一般情况下相同对象返回相同哈希码
toString()方法
- public String toString(){}
- 返回该对象的字符串表示(表现形式)
- 可以根据程序需求覆盖该方法,如:展示对象各个属性值
equals()方法
- public boolean equals(Object obj){}
- 默认实现为(this == obj),比较两个对象地址是否相同
- 可进行覆盖,比较两个对象的内容是否相同
finalize()方法
- 当对象被判定为垃圾对象时,由jvm自动调用此方法,用以标记垃圾对象,进入回收队列。
- 垃圾对象:没有有效引用指向此对象时,为垃圾对象。
- 垃圾回收:由Gc销毁垃圾对象,释放数据存储空间。
- 自动回收机制:jvm的内存耗尽,一次性回收所有垃圾对象。
- 手动回收机制:使用System.gc();通知jvm执行垃圾回收。
包装类
基本数据类型所对应的引用数据类型
object类可统一所有数据,包装类的默认值是null
- byte—Byte
- short—Short
- int—Integer
- long—Long
- float—Float
- double—Double
- boolean—Boolean
- char—Character
类型转换与装箱,拆箱
装箱:把基本数据类型转换引用数据类型。
拆箱:把引用数据类型转换成基本数据类型。
jdk1.5之前:
package com.xiao;
public class Demo07 {
public static void main(String[] args) {
int num = 13;
//装箱
Integer integer = new Integer(num);
Integer integer1 = Integer.valueOf(num);
//拆箱
Integer integer2 = new Integer(12);
int num2 = integer2.intValue();
}
}
jdk1.5之后自动装箱、拆箱:
package com.xiao;
public class Demo07 {
public static void main(String[] args) {
// int num = 13;
// //装箱
// Integer integer = new Integer(num);
// Integer integer1 = Integer.valueOf(num);
// //拆箱
// Integer integer2 = new Integer(12);
// int num2 = integer2.intValue();
int age = 30;
//自动装箱
Integer integer= age;
//自动拆箱
int age2 = integer;
}
}
基本类型和字符串之间的转换
package com.xiao;
public class Demo07 {
public static void main(String[] args) {
//1,基本类型转换成字符型
int n1=100;
//使用+号
String s1 = n1+" ";
//使用Integer中的toString()方法
String s2=Integer.toString(n1);
System.out.println(s1);
System.out.println(s2);
//2,字符串转换成基本数据类型
String str = "150";
//使用Integer.parsxxx();
int n2 = Integer.parseInt(str);
System.out.println(n2);
//布尔类型专程基本类型,"true"-->true 不是"true"--->false
String str2 = "true";
boolean b1=Boolean.parseBoolean(str2);
System.out.println(b1);
}
}
integer缓冲区
整数缓冲区:
-
java预选创建了256个常用的整数包装类型对象。-128~127
-
package com.xiao; public class Demo07 { public static void main(String[] args) { Integer integer1 = new Integer(100); Integer integer2 = new Integer(100); System.out.println(integer1 == integer2); Integer integer3=Integer.valueOf(100); Integer integer4=Integer.valueOf(100); System.out.println(integer3==integer4); Integer integer5=Integer.valueOf(200); Integer integer6=Integer.valueOf(200); System.out.println(integer5==integer6); } }
String类
string
- 字符串常量,创建之后就不可以改变。
- 字符串字面值存储在字符池中,可以共享。
- String s = “hello”;产生一个对象,字符串池中存储。
- String s = new String(“hello”);//产生两个对象,堆、池各存储一个。
package com.xiao;
public class Demo07 {
public static void main(String[] args) {
String name = "zhangsan";//zhangsan常量储存在字符串池中
name = "hello";//"hello"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新定义一个
String name2 = "hello";//给name2赋值,是去常量池中找有没有hello,有就赋值,没有就重新创建一个
//演示字符串的另一种创建方式
String str= new String("java是最好的编程语言");
String str2= new String("java是最好的编程语言");
System.out.println(str==str2);
System.out.println(str.equals(str2));
}
}
常用方法
- public in length();返回字符串的长度
- public char charAt(int index):根据下标获取字符
- public boolean contains(String str): 判断当前字符串中是否包含str
package com.xiao;
public class Demo07 {
public static void main(String[] args) {
//length();返回字符串的长度
//charAt(int index);返回某个未知的字符
//contains(String str);判断是否包换某个字符串
String comtent = "java是世界上最好的编程语言";
System.out.println(comtent.length());
System.out.println(comtent.charAt(comtent.length()-1));
System.out.println(comtent.contains("java"));
System.out.println(comtent.contains("1111"));
}
}
- public char[] toCharArray():将字符串转换成数组
- public int indexOf(String str):查找str首次出现的下标,存在,则返回改下标,不存在,则返回-1
- public int lastIndexOf(String str):查找字符串在当前字符串中最后一次出现的下标索引。
package com.xiao;
import java.util.Arrays;
public class Demo07 {
public static void main(String[] args) {
// toCharArray():将字符串转换成数组
//indexOf(String str):查找str首次出现的下标,存在,则返回改下标,不存在,则返回-1
//lastIndexOf(String str):查找字符串在当前字符串中最后一次出现的下标索引。
String content = "java是世界上最好的编程java语言java";
System.out.println(Arrays.toString(content.toCharArray()));
System.out.println(content.indexOf("java"));
System.out.println(content.indexOf("java",4));
System.out.println(content.lastIndexOf("java"));//从最后开始找
}
}
- public String trim():去掉字符串前后的空格。
- public String toUpperCase():将小写转成大写。
- public boolean enWith(String str):判断字符串是否以str结尾。
package com.xiao;
import java.util.Arrays;
import java.util.Locale;
public class Demo07 {
public static void main(String[] args) {
//trim():去掉字符串前后的空格
//toUpperCase():将小写转成大写
//enWith(String str):判断字符串是否以str结尾
String content2 = " hello world";
System.out.println(content2.trim());
System.out.println(content2.toUpperCase());
System.out.println(content2.toLowerCase());
String filename = "hello.java";
System.out.println(filename.endsWith("java"));
System.out.println(filename.startsWith("hello"));
}
}
-
public String replace(char oidChar,char newChar):将旧字符串替换成新字符串
-
public String[] split(String str):根据str做拆分。
-
package com.xiao; import java.util.Arrays; import java.util.Locale; public class Demo07 { public static void main(String[] args) { //replace(char old,char new);用新的字符串替换成旧的字符串 //split();对字符进行拆分 String content = "hello.java"; System.out.println(content.replace("java", "php")); String say = "java is the best programing language,java xiang"; String[] arr = say.split("[ ,]+"); System.out.println(arr.length); for (String string: arr) { System.out.println(string); } } }
-
忽略大小写equalsIgnoreCase
-
compare()比较字符串大小
package com.xiao;
import java.util.Arrays;
import java.util.Locale;
public class Demo07 {
public static void main(String[] args) {
//补充两个方法equals,compare()比较大小
String s1 = "hello";
String s2 = "Hello";
System.out.println(s1.equalsIgnoreCase(s2));
String s3 = "abc";
String s4 = "xyz";
System.out.println(s3.compareTo(s4));//比较字符串大小
String s5 = "abc";
String s6 = "abcxyz";
System.out.println(s5.compareTo(s6));//比长度
}
}
String 案例
package com.xiao;
import java.util.Arrays;
import java.util.Locale;
public class Demo07 {
public static void main(String[] args) {
String string = "this is a text";
//1,将string中的单词单独取出来
String[] arr = string.split(" ");
for (String s : arr
) {
System.out.println(s);
}
//2,将string中的text替换为practice
String str2 = string.replace("text","practice");
System.out.println(str2);
//3,在text前面插入一个easy
String str =string.replace("text","easy text");
System.out.println(str);
//4,将每个单体首字母大写
for (int i = 0; i<arr.length;i++){
char first=arr[i].charAt(0);
//把第一个字符转成大写
char Upper=Character.toUpperCase(first);
String sss = Upper+arr[i].substring(1);
System.out.println(sss);
}
}
}
可变字符串
StringBuffer:可变长字符串,jdk1.0提供,运行效率慢、线程安全
StringBuilder:可变长字符串,jdk5.0提供,运行效率块、线程不安全
package com.xiao;
import java.util.Arrays;
public class Demo06 {
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
//1,append();加入
sb.append("1111");
System.out.println(sb);
sb.append("2222");
System.out.println(sb);
sb.append("3333");
System.out.println(sb);
//2, insert();最前面添加
sb.insert(0,"我在最前面");
System.out.println(sb);
//3, replace()替换
sb.replace(0,5,"hello");
System.out.println(sb);
//4, delete删除
sb.delete(0,4);
System.out.println(sb);
}
}
他俩方法同理
BigDecimal的使用
package com.xiao;
import java.math.BigDecimal;
import java.util.Arrays;
public class Demo06 {
public static void main(String[] args){
BigDecimal b = new BigDecimal("1.7");
BigDecimal b2 = new BigDecimal("0.6");
BigDecimal b3 = b.subtract(b2);//-
System.out.println(b3);
BigDecimal b4 = b.add(b2);//+
System.out.println(b4);
BigDecimal b5 = b.multiply(b2);//*
System.out.println(b5);
BigDecimal b6 = b.divide(b2,2,BigDecimal.ROUND_HALF_UP);//*
System.out.println(b6);
}
}
Date类
-
Date表示特定的瞬间。精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代。
-
时间单位
-
1秒=1000毫秒
-
1毫秒=1000微秒
-
1微秒=1000纳秒
-
package com.xiao; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; public class Demo06 { public static void main(String[] args){ //1,创建Date对象 Date date = new Date(); System.out.println(date); System.out.println(date.toLocaleString()); Date date1 = new Date(date.getTime()-60*60*24*1000); System.out.println(date1.toLocaleString()); //2,方法after before boolean b1= date.after(date1); System.out.println(b1); boolean b2 = date.before(date1); System.out.println(b2); //比较compareTo(); int d = date.compareTo(date1); int d2 = date1.compareTo(date); int d3 = date.compareTo(date); System.out.println(d); System.out.println(d2); System.out.println(d3); //比较是否相等equals(); boolean d1 = date.equals(date1); System.out.println(d1); } }
Calendar
-
calender提供了获取或者设置各种日历字段的方法
-
构造方法
-
protected Talendar():由于修饰符是protected,所以无法直接创建该对象。
-
package com.xiao; import java.math.BigDecimal; import java.util.Arrays; import java.util.Calendar; import java.util.Date; public class Demo06 { public static void main(String[] args){ //1创建Calender对象 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.getTime()); System.out.println(calendar.getTimeInMillis()); //2获得时间信息 //获得年 int year = calendar.get(Calendar.YEAR); //月 +1 int month = calendar.get(Calendar.MONTH); //日 int day = calendar.get(Calendar.DAY_OF_MONTH); //小时 int hour = calendar.get(Calendar.HOUR_OF_DAY);//hour是12小时,这个是24小时制 //分钟 int minuter = calendar.get(Calendar.MINUTE); //秒 int second = calendar.get(Calendar.SECOND); System.out.println(year + " "+(month+1)+" " + day + " " + hour + " " + month + " " + second); //修改时间 Calendar calendar1 = Calendar.getInstance(); calendar1.set(Calendar.DAY_OF_MONTH,5); System.out.println(calendar1.getTime().toLocaleString()); //add修改时间 calendar1.add(Calendar.HOUR,1); System.out.println(calendar1.getTime().toLocaleString()); // 获取当前时间的最大值,最小值 int max = calendar1.getActualMaximum(Calendar.DAY_OF_MONTH); int max2 = calendar1.getActualMinimum(Calendar.DAY_OF_MONTH); System.out.println(max); System.out.println(max2); } }
SimpleDateFormat
-
SimpleDateFormat是一个以语言环境有关的方式来格式化和解析日期具体类。
-
进行格式化(日期->文本)、解析(文本-》日期)
-
常用的时间模式字母
-
package com.xiao; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date; public class Demo06 { public static void main(String[] args) throws ParseException { //1创建simpleDataFormat对象y年m月 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM//dd"); // SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM//dd HH-mm-ss"); //2创建Date类 Date date = new Date(); //格式化date(把日期转成字符串) String str = sdf.format(date); System.out.println(str); //解析(把字符串转成日期) Date date1 = sdf.parse("1990/05/01"); System.out.println(date1); } }
-
-
-
-