Java常用Api

一,Object

1.Object类的概述

A:Object类概述
所有类的超类
Object类的特点:
* 类层次结构的根类
* 所有类直接或间接的继承Objcet类

* 都能使用Object非私有的方法

2.Object类中的方法

* A:Object类中有哪些方法?

* String toString() :    返回的是对象的字符串的表现形式

* boolean equals(Object obj) :判断两个对象是否相等

* Class<?> getClass() :   获取字节码对象

* int hashCode() :   计算哈希码值

03、Object中的toString方法

>* A:什么是toString方法?
>* B:为什么要重写toString方法?
总结:
* A:toString()方法
返回的是对象的字符串的表现形式
* B:重写toString方法
* a: 为什么要重写toString方法
写一个类,不重写toString方法,我们直接打印对象名,打印的是地址值,地址值格式是 全类名+"@"+十六进制值 
在开发当中,为了方便打印对象中的成员变量的值,我们可以重写toString方法
* b: 案例核心代码(重写Person类中的toString方法)
  public String toString() {
       return getClass().getName() + "@" + Integer.toHexString(hashCode());
   }
>* 案例
定义一个Student类
 属性:姓名,年龄
定义一个测试类
 在测试类中定义一个Student对象,为姓名和年龄分别赋
 值,要求在打印学生对象的时候,输出效果示例:
   name = "张三" , age = 18;
  参考案例代码:
  package cn.itcast.object_01;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}

}

04、Object中的getClass()方法

>* A:getClass()方法的作用是什么?
>* B:获取对象的字节码的有几种方式?
总结:
* A:作用
获取类的字节码对象
* B:获取字节码的方式
a:方式一
*  对象名.getClass()

b:方式二
* 类名.class属性

c:方式三
* Class.forName(String fileName)
package cn.itcast.object_01;
public class ObjcetDemo {
public static void main(String[] args) throws ClassNotFoundException {
Person p = new Person("pp", 23);
// System.out.println(p);
// 获取字节码对象
Class clazz = p.getClass();
System.out.println(clazz);

// 类名.class属性
Class clazz1 = Person.class;
System.out.println(clazz1);

// Class对象里面有静态方法forName
Class clazz2 = Class.forName("cn.itcast.object_01.Person");
System.out.println(clazz2);


}
}




###04、Object中的equals()方法



>* A:回顾==号和equals方法的区别
>* B: equals 方法比较内存地址


总结:
* A:==号和 equals 方法的区别
 * == : 比较两个基本数据类型的数值是否相等,如果是引用数据类型比较的是地址值是否相等
 * equalse : 比较的是两个字符串的内容是否相等

* B:equals方法比较内存地址
* a: Object类中的equals方法
底层用的是 == 来比较的
== 比较的是地址值是否相等,而不是两个对象中的内容是否相等


Person p = new  Person("zhangsan",18);
Person p1 = new  Person("zhangsan",18);





* b:重写equals和不重写equals的区别?


* 重写equals: 我们可以按照自己的规则来比较对象的内容是否相等
* 不重写equals:比较的是地址值是否相等,而不是两个对象中的内容是否相等


案例代碼:
public boolean equals(Object obj) {

if(this == obj){
return true;
}

if(obj == null)
return false;

/*if(this.getClass() != obj.getClass()){
return false;
}*/

if(!(obj instanceof Person)){
return false;
}

// 向下转型
Person o = (Person)obj;
if(!this.name.equals(o.getName())){
return false;
}

if(this.age != o.getAge()){
return false;
}

return true;
}

System类

###01、System类中的方法

>* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length): 数组的拷贝
>* static long currentTimeMillis(): 获取系统当前时间,是以毫秒值返回
>* static void exit(int status) : 退出JVM




###02.System类中的arraycopy()方法



  void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
  * System类方法,复制数组
  * arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  * Object src:源数组
  * int srcPos:原数组开始的索引
  * Object dest:目标数组
  * int destPos:目标数组从什么索引开始接收
  * int length: 要接收多少个元素

    案例演示:
    package cn.itcast.system_01;


import java.lang.reflect.Array;
import java.util.Arrays;


public class SystemArrayCopyDemo {
public static void main(String[] args) {
// void arraycopy(Object src, int srcPos, Object dest, int destPos, int
// length)
// * System类方法,复制数组
// * arraycopy(Object src, int srcPos, Object dest, int destPos, int
// length)
// * Object src:源数组
// * int srcPos:原数组开始的索引
// * Object dest:目标数组
// * int destPos:目标数组从什么索引开始接收
// * int length: 要接收多少个元素

// 原数组
int[] arr = {11,2,4,5,7,22};
// 目标数组
int[] dest = new int[arr.length];

System.arraycopy(arr, 0, dest, 0, arr.length);
System.out.println(Arrays.toString(dest));

}
}






###03.System类currentTimeMillis()方法



* A:System类方法currentTimeMillis():
案例演示:
package cn.itcast.system_01;


public class SystemDemo01 {
public static void main(String[] args) {
// static long currentTimeMillis(): 获取系统当前时间,是以毫秒值返回

long start = System.currentTimeMillis();
for(int i = 0 ; i < 1000000;i++){
System.out.println("");
}
long end = System.currentTimeMillis();

System.err.println(end-start);
}
}





###04.System类exit()方法

*A:System类方法exit()方法:


案例演示:
System.exit(0);

#Date类

###01、Date类的构造方法

* A: Date类的构造方法
* a: 空参构造:创建一个Date对象,当前系统时间
* Date d = new Date();
* b: 带参构造:将"指定的时间" 毫秒值转换成Date对象
* Date d = new Date(long times);


案例代码:
package cn.itcast.date_01;


import java.util.Date;


public class DateDemo {
public static void main(String[] args) {
// * a: 空参构造:创建一个Date对象,默认的时间是1970-1-1
// * Date d = new Date();
// * b: 带参构造:将"指定的时间" 毫秒值转换成Date对象
// * Date d = new Date(long times);

Date d = new Date();
System.out.println(d.toLocaleString());

System.out.println(System.currentTimeMillis());
Date time = new Date(1512712822838L);
System.out.println(time.toLocaleString());
}
}




###02、Date类的get和set方法

* A:Date类的get和set方法
* public long getTime()
* 获取时间的毫秒值
* public void setTime(long times)
* 将毫秒值设置成Date对象


案例代码:
package cn.itcast.date_01;


import java.util.Date;


public class DateDemo2 {
public static void main(String[] args) {


// 创建Date对象
Date d = new Date();
System.out.println(d.getTime());

// 将long类型的毫秒值转换成Date对象
d.setTime(1512713519623L);
System.out.println(d.toLocaleString());
}
}




###03、日期格式化SimpleDateFormat

>* A:SimpleDateFormat概述
>* B:SimpleDateFormat构造方法
>* B:使用SimpleDateFormat日期格式进行String和Date之间的转换
 


总结:
*A:概述


* DateFormat 概述
* 是日期/时间格式化子类的抽象类!抽象类是不能创建对象的,我们要使用,使用的是抽象类的子类


SimpleDateFormat的作用:
* 用于格式和解析日期时间的




* 格式化:
将 Date 转换为成 String
*String format(Date date)  


* 解析:
将String 转换成 Date
Date parse(String source ) 


*B:SimpleDateFormat构造方法
* SimpleDateFormat():按照系统默认的格式,进行格式化   17-12-08 上午
* SimpleDateFormat(String pattern):按照指定的模式创建SimpleDateFormat对象

*C: 日期格式化SimpleDateFormat

*注意:
在解析的时候,解析格式必须要跟创建SimpleDateFormat对象中模式一样,否则会包解析异常



* a: 对日期进行格式化的步骤
* 1: 创建SimpleDateFormat对象,并指定格式
* 2: 调用format方法进行格式化


* 日期模式:
* yyyy    年份
* MM      月份
* dd      天  
* HH      小时   
* mm      分钟
* ss      秒



案例演示:

package cn.itcast.date_01;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class DateDemo3 {
public static void main(String[] args) throws ParseException {

// method_01();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH-mm-ss");
// 格式化
System.out.println(sdf.format(new Date()));
// 解析
Date d = sdf.parse("2017/12/08 14-51-52");
System.out.println(d.toLocaleString());

}


private static void method_01() throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
// 格式化日期
String format = sdf.format(new Date());
System.out.println(format);

// 解析
Date d = sdf.parse("2017年12月08日");
System.out.println(d.toLocaleString());
}
}




>* 案例:求出你来这个世界上多少天?


案例代码:


// 出生日期
String birthday = "1988-10-19";
// 今天的日期
// Date d = new Date();
// 创建SimpleDateFormat对象,并指定模式yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 解析
long birthdayTime = sdf.parse(birthday).getTime();
// 今天的日期毫秒值
long NowTime = new Date().getTime();
System.out.println((NowTime - birthdayTime) / 1000 / 60 / 60 / 24);

#Calendar时间类



>* A:Calendar概述
>* B: 获取Calendar对象
>* C:Calendar的获取功能



总结:
A:Calendar概述


* 日历类,为了方便操作年月日


B:获取Calendar对象


* 格式:
Calendar c = Calendar.getInstance();
C:
*获取功能
* int get(int field):
根据字段获取相应的年月日

*修改功能
* void set(int field, int value): 根据字段修改时间
* void set(int year, int month, int date) :修改具体的年月日
*添加功能
* add(int field, int value):修改时间的偏移量
案例代码:

// 获取日历类对象
Calendar c = Calendar.getInstance();


// 修改方法,年月日
// c.set(2020, 2, 8);
// c.set(Calendar.YEAR, 2020);


// 添加:日期的偏移量
c.add(Calendar.DAY_OF_MONTH, -8);


// 获取年月日
System.out.print(c.get(Calendar.YEAR) + "年");
System.out.print((c.get(Calendar.MONTH) + 1) + "月");
System.out.println(c.get(Calendar.DAY_OF_MONTH) + "日");





>* Calendar中常用的常量:



* int year = cal.get(Calendar.YEAR);//当前年 
* int month = (cal.get(Calendar.MONTH))+1;//当前月 Calendar.MONTH从0开始     
* int day_of_month = cal.get(Calendar.DAY_OF_MONTH);//当前月的第几天:即当前日 
* int hour24 = cal.get(Calendar.HOUR_OF_DAY);//当前时钟:HOUR_OF_DAY-24小时制     
* int hour12 = cal.get(Calendar.HOUR);  //HOUR-12小时制   
* int minute = cal.get(Calendar.MINUTE);  //当前:分钟   
* int second = cal.get(Calendar.SECOND);  //当前秒   
* int day_of_week = cal.get(Calendar.DAY_OF_WEEK)-1; // 星期几  Calendar.DAY_OF_WEEK用数字(1~7)表示(星期日~星期六)    
* int ampm = cal.get(Calendar.AM_PM); //0-上午;1-下午  
* int week_of_year = cal.get(Calendar.WEEK_OF_YEAR); //当前年的第几周      
* int week_of_month = cal.get(Calendar.WEEK_OF_MONTH);   //当前月的星期数  
* int day_of_week_in_month = cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);  //当前月中的第几个星期     

* int day_of_year = cal.get(Calendar.DAY_OF_YEAR); //当前年的第几天

#包装类

###01、基本数据类型对象包装类概述

* A:基本数据类型对象包装类概述
*a.基本类型包装类的产生

基本数据类型,只能做一些基本的运算,但是做不了一些较复杂的运算,java就提供了八种数据类型对应包装数据类型



* B:八种基本类型对应的包装类

char    :Character
int     :Integer
byte    :Byte
short   :Short
long    :Long
float   :Float
double  :Double
boolean :Boolean


###02、Integer类构造方法

* A:Integer类构造方法


*Integer(int value) 
          *  将int类型的数据封装成Integer对象
*Integer(String s) 
          * 将String类型的数据封装成Integer对象
           字符串必须是数字的字符串 例如"123"



案例演示:
  






###03、Integer类:字符串转int

>* String转Integer有几种方法?


总结:
有两种种方式
*A:Integer intValue():
举例:
 Integer i = new Integer("123");
 int intNum = i.intValue();

*B:Integer.parseInt(String s):

举例:
int i = Integer.parseInt("123");

###04、Integer类int转成字符串 

A:Integer类int转成字符串:

B: 直接加 "";
Integer i = new Integer("123");
int intNum = i.intValue();
String s = intNum+"";

C: Integer类的toString()方法
Integer i = new Integer("123");
String s = i.toString();

D:使用Integer静态方法toString(int i)
  String s = Integer.toString(123);



案例代码:
package cn.itcast.integer_01;


public class IntegerDemo {
public static void main(String[] args) {
// 创建Integer对象
Integer i = new Integer(10);
Integer ii = new Integer("20");
System.out.println(i);
System.out.println(ii);

// 将String 转 Int
int value = i.intValue();
System.out.println(value);

int num = Integer.parseInt("30");
System.out.println( num);
// 将int转字符串
// 直接加""
String str = value+"";
// toString();
String strNum = i.toString();
System.out.println(str+"0");
// 静态方法 toString(int value)
String s = Integer.toString(50);
System.out.println(s);
}
}




* A:Integer类其他方法

     a:十进制转二,八,十六进制

 

###06自动装箱和自动拆箱

>* 自动装箱
>* 自动拆箱
* A:自动装箱:
* 把int类型的数据直接赋值给Integer对象


Integer i = 10;

* B:自动拆箱:


*   把Integer对象类型的数据直接赋值给int
Integer ii = new Integer(10);
int i = ii;




#正则表达式
###01正则表达式的概念和作用

* A: 正则表达式的概念和作用
* a: 正则表达式的概述
* 就是一套规则,也是一个字符串

* b: 正则表达式的作用
* 判断字符串是否符合某个规则


###02、正则表达式语法规则

* A: 正则表达式语法规则
* a: 字符
* x  代表的是字符x   
* \\ 代表的是反斜线字符'\'
* \t 代表的是制表符
* \n 代表的是换行符
* \r 代表的是回车符




* b: 字符类
* [abc]    a、b 或 c(简单类)
* [^abc]   任何字符,除了 a、b 或 c(否定)
* [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) 
* [0-9]    0到9的字符都包括
* [a-zA-Z_0-9] 代表的字母或者数字或者下划线(即单词字符)


* c: 预定义字符类


* . 任何字符(与行结束符可能匹配也可能不匹配) 
* \d 数字:[0-9] 
* \D 非数字: [^0-9] 
* \s 空白字符:[ \t\n\x0B\f\r] 
* \S 非空白字符:[^\s] 
* \w 单词字符:[a-zA-Z_0-9] 
* \W 非单词字符:[^\w] 






* d: 数量词


* X?     X,一次或一次也没有
* X*     X,零次或多次
* X+     X,一次或多次
* X{n}   X,恰好 n 次 
* X{n,}  X,至少 n 次 
* X{n,m} X,至少 n 次,但是不超过 m 次




###03、正则表达式练习校验qq号是否合法



需求:

  0不能开头
  必须都是数字
  要求必须是5-15位


  案例代码:
  /*
   0不能开头
必须都是数字
要求必须是5-15位
*/

String qq = "111000";
String regex = "[1-9][0-9]{4,14}";
System.out.println(qq.matches(regex));
 





###04、正则表达式练习判断字符串中间的字符是否是元音


需求:
什么是元音:
aeiou
public static boolean regexMethod_01(String s) {
// String str = "cof";
return s.matches("[a-zA-Z][aeiouAEIOU][a-zA-Z]");
}


###05、正则表达式切割练习


需求:
切割字符串"aa,bb,cc";
切割字符串"-1 99 4 23";
切割字符串"-1   99 4     23";



案例代码:


public static void regexMethod_02() {
/*
* 切割字符串"aa,bb,cc"; 切割字符串"-1 99 4 23"; 切割字符串"-1   99 4     23";
*/


// String s1 = "aa,bb,cc";
// String s1 = "-1 99 4 23";
String s1 = "-1   99 4     23";
// String[] arr = s1.split(",");
// String[] arr = s1.split(" ");
String[] arr = s1.split(" +");
System.out.println(Arrays.toString(arr));


}
 


匹配正确的数字:
匹配规则:
* 匹配正整数:”\\d+”
* 匹配正小数:”\\d+\\.\\d+”  
* 匹配负整数:”-\\d+”
* 匹配负小数:”-\\d+\\.\\d+”
* 匹配保留两位小数的正数:”\\d+\\.\\d{2}”
* 匹配保留1-3位小数的正数:”\\d+\\.\\d{1,3}”
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值