Java常用类

1.工具
API文档:应用程序编程接口,指一些预先定义好的类
1)左上角—包
2)左下角—包中的类和接口
3)右侧-----类的详细信息
|-----构造方法 Constructor
|-----属性 Field
|-----方法 Method
|-------------返回值类型
|-------------方法名
|-------------参数列表
|-------------概要信息
2.Object-----所有类的父类
1)如果一个类没有指定父类,那么这个类的父类的Object类;
如果一个类指定了父类,那么这个类的间接父类是Object类;
2)a==b

|—a,b为基本数据类型:判断两个变量是否相等
|—a,b为引用数据类型:判断两个引用是否指向同一个对象—地址

 //== 用法
  int a = 10;
  int b = 10;
  System.out.println(a == b);
  
  Person p1 = new Person();
  Person p2 = new Person();
  //p2 = p1;
  System.out.println(p1 == p2);
  
  Person p1 = new Person();
  Person p2 = new Person();
  p2 = p1;
  System.out.println(p1 == p2);
结果:
true
false
true

3)equals()
|----Object类中的equals()和引用数据类型中==的作用是相同的

Object o1 = new Object();
Object o2 = new Object();
o1 = o2;
System.out.println(o1.equals(o2));

Object o1 = new Object();
Object o2 = new Object();
//o1 = o2;
System.out.println(o1.equals(o2));
结果:
true
false

|----String类中的equals()用来判断两个字符串的内容是否相同,和父类Object中的equals方法作用不一样,
原因是:String类中重写了父类Object中的equals方法。

|----自定义的类型(开发人员自己设计的类)如果需要判断对象的内容(属性的值)是否相同,
那么就要重写equals()方法(可以通过开发工具生成)

 Person p3 = new Person();
  p3.setName("Tom");
  p3.setGender("男");
  p3.setAge(10);
  Person p4 = new Person();
  p4.setName("Tom");
  p4.setGender("男");
  p4.setAge(10);
  System.out.println(p3 == p4);
  System.out.println(p3.equals(p4));
结果:
false
true

4)toString()方法
|----返回对象的字符串表示形式-----全类名@哈希值
|----通过System.out.println(对象名)的操作,会默认调用toString方法
等效于System.out.println(对象名.toString())
|----如果希望打印自定义类型当中的属性,需要重写toString()方法

 System.out.println(o1.toString());//返回对象的字符串表示形式
 System.out.println(o1);
 System.out.println(p3.toString());
 System.out.println(p3);
结果:
java.lang.Object@15db9742
java.lang.Object@15db9742
Person [name=Tom, age=10, gender=]
Person [name=Tom, age=10, gender=]

3.包装类----基本数据类型的包装类
1)解决的问题—解决了基本数据类型不能被当成类使用的问题;
2)----
|—byte Byte
|—short Short
|—int Integer
|—long Long
|—float Float
|—double Double
|—char Character
|—boolean Boolean
3)基本数据类型和包装类之间的转换
|----基本数据类型—>包装类----装箱
|—手动装箱 Integet i = new Integet(10);
|—自动装箱 Integer i = 10;

 //装箱
  int x = 1000;
  Integer i = x; //自动装箱
  System.out.println(i);
  
  int y = i;//自动拆箱
  System.out.println(y);
  
  //字符串类型--->基本数据类型
  String str = "100";
  int a = Integer.parseInt(str);
  System.out.println(a);
  
  String str1 = "100.9";
  double d = Double.parseDouble(str1);
  System.out.println(d);
结果:
1000
1000
100
100.9

|----包装类—>基本数据类型----拆箱
|—手动拆箱 Integet i = new Integet(10); int a = i.intValue();
|—自动拆箱 int a = i;

4)基本数据类型和字符串转换
|—基本数据类型—>String int a = 100; String str = a + “”; | int a = 100; String str = String.valueOf(a);
|—String—>基本数据类型 String str = “100”; int a = Integer.parseInt(str);

4.字符串相关的类 ------String StringBuffer StringBuilder
String----char[]
char—2Byte—int 0101001
byte—1Byte
1)如何创建字符串

//创建字符串的方式
String str = "hello world"; //常用
String str1 = new String("hello world");
char[] arr = {'h', 'e', 'l', 'l', 'o'};
String str2 = new String(arr);

System.out.println(str);
System.out.println(str1);
System.out.println(str2);
结果:
hello world
hello world
heLLo

2)判断功能
|----equals() 判断两个字符串的内容是否相同

//判断字符串的内容是否相同----"值是否相同"
  System.out.println(str.equals(str1));
  System.out.println(str.equals(str2));
结果:
true
false

|----equalsIgnoreCase() 判断是否相等忽略大小写

  System.out.println(str2.equalsIgnoreCase("HELLO"));

|----contains() 判断是否包含

  System.out.println(str.contains("hello"));
  System.out.println(str.contains("12313"));

|----startsWith()判断字符串是否以特定字符串开始

  System.out.println(str.startsWith("hello"));
  System.out.println(str.startsWith("ello", 1));
  System.out.println(str.startsWith("ello", 2));

|----endsWith()判断字符串是否以特定字符串结束

  System.out.println(str.endsWith("world"));

|----isEmpty()判断字符串是否为空

  System.out.println(str.isEmpty());
  System.out.println("".isEmpty());

3)获取功能
|----length()获取字符串的长度

  System.out.println(str.length());

|----charAt()获取特定位置的字符

  System.out.println(str.charAt(0));
  System.out.println(str.charAt(1));

4)正则表达式-----不是Java特有的 被判断的字符串 正则表达式的字符串
|----包含特定规则的字符串
|----^ 匹配字符串的开始
|----$ 匹配字符串的结尾
|----[] 表示一个字符
|----{n} 长度为n
|----{n,} 长度至少为n
|----{n, m} 长度最少为n,最大为m
|----+ 前面内容重复1次或多次
|----* 重复0次或多次
|----? 重复1次或没有


  String str1 = "a";
  
  //正则表达式----判断字符串中是否只有一个字符,并且这个字符是英文字母a-zA-Z
  String reg1 = "^[a-zA-Z]$";
  System.out.println(str1.matches(reg1));
  
  String str2 = "a";
  //正则表达式----判断字符串中是否两个字符,并且这个字符是英文字母a-zA-Z
  String reg2 = "^[a-zA-Z][a-zA-Z]$";
  System.out.println(str2.matches(reg2));
  
  String str3 = "abcdefghi0";
  //正则表达式----判断字符串中是否十个字符,并且这个字符是英文字母a-zA-Z
  String reg3 = "^[a-zA-Z]{10}$";
  System.out.println(str3.matches(reg3));
  
  String str4 = "abcde11fghi0";
  //正则表达式----判断字符串中是否10~20个字符,并且这个字符串只能包含英文字母a-zA-Z和数字
  String reg4 = "^[a-zA-Z0-9]{10,20}$";
  System.out.println(str4.matches(reg4));
  
  String str5 = "0abcde11fghi0";
  //正则表达式----判断字符串中是否10~20个字符,并且这个字符串只能包含英文字母a-zA-Z和数字,只能以字母开头
  String reg5 = "^[a-zA-Z][a-zA-Z0-9]{9,19}$";
  System.out.println(str5.matches(reg5));
  
  //+ 1次或多次
  String reg6 = "^[0-9]+$";
  System.out.println("111".matches(reg6));
  //* 0次或多次
  String reg7 = "^[0-9]*$";
  System.out.println("1231a".matches(reg7));
  System.out.println("1231".matches(reg7));
  //? 1次或没有
  String reg8 = "^[0-9]?$";
  System.out.println("912312".matches(reg8));
 

5)字符串在内存当中的存储
编译过程中会对字符串进行优化:编译过程中能够计算出字符串的结果
static 字符串长度不可改变

6)StringBuffer StringBuilder
String类型进行字符串拼接消耗内存的问题
append()
toString()
StringBuffer—在多线程环境下使用
StringBuilder----在单线程环境下使用

   //StringBuffer
  StringBuffer sbf = new StringBuffer("aaa");
  //使用StringBuffer进行拼接
  sbf.append("aaa");
  sbf.append("aaa");
  sbf.append("aaa");
  sbf.append("aaa");
  sbf.append("aaa");
  //StringBuffer--->String
  str5 = sbf.toString();
  System.out.println(str5);

5.时间日期相关类
1970年1月1日00:00:00
1)Date

//Date
  Date date = new Date();//当前时间
  System.out.println(date);
  Date date1 = new Date(1000);//毫秒数
  System.out.println(date1);
  //返回毫秒数
  System.out.println(date.getTime());
结果:
Tue Feb 18 10:43:12 CST 2020
Thu Jan 01 08:00:01 CST 1970
1581993792875

2)SimpleDateFormat—格式化日期
|----format():格式化
|----parse():解析


  //2020-01-13 09:56:10
  //如何以特定的格式打印时间 SimpleDateFormat
  SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  
  //格式化日期  date-->特定格式的字符串
  String dataStr = smt.format(date);
  System.out.println(dataStr);
结果:
2020-02-18 10:43:12
Fri Aug 08 08:08:08 CST 2008

3)Calendar—日历
|----get
|----set

//创建Calendar
  Calendar cal = Calendar.getInstance();
  System.out.println(cal.get(Calendar.YEAR));
  System.out.println(cal.get(Calendar.MONTH));//是从0开始的
  System.out.println(cal.get(Calendar.DAY_OF_MONTH));
  System.out.println(cal.get(Calendar.DAY_OF_WEEK));//从周天开始
/*
   * 如何确定某个月的第一天是周几--->通过Calendar能够知道今天是周几--->创建一个表示x年x月1号的Canlendar
   * */
  Calendar cal1 = Calendar.getInstance();
  cal1.set(Calendar.YEAR, 2020);
  cal1.set(Calendar.MONTH, 0);
  cal1.set(Calendar.DAY_OF_MONTH, 1);
  System.out.println(cal1.get(Calendar.DAY_OF_WEEK));
结果:
2020
1
18
3
4

6.数学相关类
Math
Math.PI(Math.PI = π)
Math.E(Math.E = e ≈ 2.718)
随机数
random()

// 随机数
  double num = Math.random(); // >=0.0 < 1.0
  System.out.println(num);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值