关于java常用类的学习笔记

java常用类(可以用jdk api 1.8飞书发的)

一、Object类
1、什么是Object类?
Object类是类层次的根,Java中所有的类都继承自这个类
public class A 和public class A extends Object 一样 。
2、Object类的特点
①、是Java中唯一没有父类的类
②、其他所有的类都继承了Object类中的方法,地位很重要。

什么是API?
设计Java语言时定义的规范。列如 包里有什么类怎么用 ,该类里有什么方法怎么用的。

==操作符和equals
==操作符:判断两个对象的地址是不是相等
1、基本数据类型的比较

int a = 5;if(a==6){...}//用==时,符号两边的类型必须一致

2、引用类型的比较(是否指向同一个对象)

Person p1 = new Person(); Person p2 = new Person();
if(p1 == p2){...}

equals方法
格式:
对象1.equals(对象2)

public boolean equals(Object obj){
    if(obj == null){    //先判断是否null
        return false;
    }
    if(!(this instanceof A)){//判断传递的this(当前对象)是否是A类的对象
        return false;
    }
    if(this.name.equals("hello")){
        return true;
    }
}

A特点:
(1)是object类中的方法,由于所有的类都继承了object,也就继承了equals方法
(2)只能比较引用数据类型
(3)重写前也是地址的比较,对于那些重写了equals的类来说,比较的是类型及内容,而不是地址。
在这里插入图片描述
(1)str1 == str2嘛?意思是地址指向的是同一块地方吗?很明显不一样。
(2)str1 == str3嘛?意思是地址指向的是同一块地方吗?很明显不一样。
(3)str2 == str3嘛?意思是地址指向的是同一块地方吗?很明显内容一样,所以为true。
(4)str1.equals(str2)嘛?意思是地址指向的内容一样嘛?一样。
(5)str1.equals(str3)嘛?意思是地址指向的内容一样嘛?一样。
(6)str2.equals(str3)嘛?意思是地址指向的内容一样嘛?一样。~

toString方法
在object类中定义,返回值是String类型
返回的的是类名以及该对象的引用地址。
String类就重写了toString方法,返回的是字符串的值。

Date now = new Date();
System.out.println("now="+now);
//相当于
System.out.println("now="+now.toString());

二、String类
在java中字符串是常量,它们的值在创建之后不能更改
String类的引用可以指向不同的字符串,这是因为字符串对象虽然是不能修改的,但是它们的地址可以共享。
在这里插入图片描述

String类中的常用方法(一定要看方法返回值类型)

1、字符串的比较 == equals方法
String str1 = “abc”;首先会在常量区中查找adc,如果找到,就把abc字符串引用地址赋给str1.如果没有找到,就把abc放在常量区,然后在内存中开辟一个str1空间,存放引用地址。
字符串的使用推荐使用
String str = “”;
2、字节数组toCharArray

String myString="abcd";
char myChar[]=myString.toCharArray();
System.out.println("myChar[1]="+myChar[1]);
//myChar[1]=b;

3、替换字符串 replace()

String s = "abc";
String s1 = s.replace("b","123");
System.out.println("s");
System.out.println("s1");
//abc
//a123c

4、判断字符串中是否包含指定字符串 contains()

String str1 = "abcedef";
boolean flag=str1.contains("a");
System.out.println("flag");
//true

5、比较字符大小 (ASCII码字典 ) compareTo()
用于相同数据类型的比较

String str1 = "ab";
String str2 = "abc";
String str2 = "abcde";
String str2 = "abcdefg";
int a = str1.compareTo(str2);   //-1   返回他们之间的差值,
int a1 = str1.compareTo(str3);//-3
int a2 = str3.compareTo(str1) // 3

6、indexOf lastindexOf 字符串第一次或最后一次出现的位置 下标(从0)

String str = "我爱学习,学习使,我快乐";
int f = str.indexOf(',');
int f2 = str.lastIndexOf(',');
System.out,println(f1+" "+f2);
// 4    8

7、指定索引位置截取字符串substring()

String str  = "我爱学习,学习使,我快乐";
String str1 = str.substring(4);
System.out,pritln(str1);
//,学习使,我快乐   (左边包括右边不包括  )
String str2 = str.substring(str.indexOf(',')+1,str.lastIndexOf(','));
System.out,println(str2);
//学习使

8、根据指定字符转化成数组 split();正则表达式

String str ="我-非常-喜欢-吃苹果";
String[] array = str.split("-+");
System.out,println(array.length);
for(){
    String temp = array[i];
    System.out.println(temp);
}//遍历数组

剩下的不举例,与上述啊类似用法

-----------StringBuffer类---------------

一、什么是StringBuffer?
StringBuffer类就是字符缓冲区,用于存储可变字符序列的容器。
特点:
①、可以对字符串进行改变
②、长度可以改变
构造:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)

二、StringBuilder类,可变字符序列
二者区别
StringBuffer:线程安全,效率低(排队使用,一个一个来)
StringBuilde:线程不安全,效率高(同时使用)

三、StringBuffer类演示

append(date) 添加

StringBuffer str = new StringBuffer();
//输出 select * from tb_user where id = 'abc' and name = 'zhang'
str.append(" select * from tb_user ");
str.append(" where id = '")//先写两个空格,在空格中间写,限于select语局这种拼接
str.append("123'")
//...下面省略

--------------封装类/包装类--------------

针对八种基本定义相应的引用类型
基本数据类型-----封装类
boolean ------------Boolean
int --------------------Integer
char------------------Character
其他与boolean类似首字母大写

面向对象编程思想
解决了基本数据类型不能用对象是用的问题
传输过程中对象传输,容器皆为对象
包装类的常用方法

1、实现int和Integerr类之间的转换`

int n = 10;
Integer in = new Integer(100);
//将int类型转换成Integer类型
Integer in1 = new Integer(n);
//将Integer类型转换成int类型
int m =12 + in.intValue(); //自动拆箱
int y = 12 + in;// 手动拆箱

2、parselnt(String s)
返回由字符串转换得到的整数。
3、toString(int i)
将int类型转换为对应的String类型

int i = 100;
String s = Integer.toString(i);
//则字符串的值为“100”;

--------------Date&DateFormat类------------

一、Date 日期类

①、java.util包下的date

//导入java.util包
import java.util.Date
Date d = new Date();

//打印完整时期到毫秒 列如 Fri Aug 14 10:10:15 GMT+08:00 2020
System.out.println(d);

//打印毫秒数
System.out.println(d.getTime);

//SimpleDateFormat:格式化时间,
SimpleDateFormat str = new SimpleDateFormat(" yyyy MM dd HH:mm:ss");
String datestr = str.format(d);
System.out.println(datestr);
//格式后打印的为 2020 08 14 10:18:49
/*常见的打印格式有
*1、yyyy-MM-dd HH:mm:ss
*2、yyyy/MM/dd
*3、HH:mm:ss
*/
//-----------------------------------------
//字符串转化为date类"2020 08 14 10:19:20"  strDate

SimpleDateFormat str1 = new SimpleDateFormat(" yyyy MM dd HH:mm:ss");
//Date datestr1 = str1.parsse(strDate);

②、java.sql包下的date

java.sql.Date sqlDate = new java.sql.Date(15975845L);//15975845L传的值long类型
//sql包下的date 是util包下date的子类 只有年月日,没有时分秒。
Date d2 = new Date(15975845L);
System.out.println(d2);
//2020 08 14

二、、java.util 包下的Calenda(日历类)

//getInstance方法实现获取实例
Calenderc c = Calender.getInstance;
c.set(2020, 8, 15);//设置年月日实例信息
c.get(c.TEAR);//调用年。月,日的调用类似

新特性 日期

java 8 新特性日期
旧的:Date非线程安全的。API设计的比较乱
java 8:
java .time(包)

//实例化用localDate
localDate date = localDate.now()//返回当前时间
System.out.println(date);
//2020-08-14
//获取年月日
System.out.println(date.getYear());//年  2020
System.out.println(date.getMonth());//月 August
System.out.println(date.getMonthValue());//月份数字 8
System.out.println(date.getDayOfMonth);//日 14
System.out.println(date.getDayOfWeek);//周几 Friday

//明年
localDate date1 = date.plusYear(1);
System.out.println(date1.getYear);  //2021
//去年
localDate date2 = date.plusYear(-1)//2019
//月,日类似 .plusMonth()......

//日期的比较
//date 2020   date1 2021
boolean ifafter = date1.isAfter(date);//date1(2021)在date(2020)后返回true
boolean ifbefore = date1.isBefore(date);//false

//LocalDateTime类
//LocalDateTime可以设置年月日时分秒

//DateTimeFormatter  LocalDateTime转化字符串
DateTimeFormatter stf = DateTimeFormatter.ofPatteern("yyyy-MM-dd HH:mm:ss");
String dateTimeStr = stf.format(datetime);
System.out.println(dateTimeStr);

//字符串转化成LocalDateTime  LocalDate(年月日) LocalTime(时分秒)
LocalDateTime.parse(dateTimeStr,stf);//(字符串,格式化类型)
//上面返回的
LocalDate.parse(dateTimeStr,stf);
LocalTime.parse(dateTimeStr,stf);

//日期时间差计算类 java.time.Durantion
LocalDateTime today = LocalDateTime.now();
System.out,println(today);
//2020-12-12 12:12:12
LocalDateTime datenew = LocalDateTime.of(2020,12,12,12,12,12);
Durantion dur = Durantion.between(today ,datenew);//日期差
System.out,println(dur.toDays());//相差的天数
System.out,println(dur.toHours());//相差小时
//分秒类似
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值