java api高级,Java常用API-高级

本文深入探讨了Java中的Object类,包括toString()、getClass()和hashCode()方法。此外,讲解了如何重写equals()方法。还介绍了System类的实用方法如arraycopy()、currentTimeMillis()。接着,详细阐述了Date和Calendar类的使用,以及SimpleDateFormat的日期格式化。最后,提到了Integer包装类的功能以及JDK1.5的自动装箱和拆箱特性,并给出了正则表达式的应用示例。

Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。

* String toString()  : 返回该对象的字符串表示

*  return getClass().getName() + "@" + Integer.toHexString(hashCode());

*  getClass():返回一个字节码对象

*  Integer.toHexString():返回指定参数的十六进制字符串形式

*  hashCode():返回该对象的哈希码值(内部地址)

重写equals()方法

1 @Override2 public booleanequals(Object obj) {3 //提高效率

4 if (this ==obj)5 return true;6

7 if (obj == null)8 return false;9 //提高健壮性

10 if (getClass() !=obj.getClass())11 return false;12

13 //向下转型

14 Person other =(Person) obj;15

16 if (age !=other.age)17 return false;18 if (name == null) {19 if (other.name != null)20 return false;21 } else if (!name.equals(other.name))22 return false;23 return true;24 }

* System:包含一些有用的类字段和方法。它不能被实例化

* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

* 复制数组

* 参数1:源数组

* 参数2:源数组的起始索引位置

* 参数3:目标数组

* 参数4:目标数组的起始索引位置

* 参数5:指定接受的元素个数

*  static long currentTimeMillis() :以毫秒值返回当前系统时间

*  这个毫秒的时间是相对时间,相对于1970-1-1 00:00:00:0

1 long start =System.currentTimeMillis();2 for (int i = 0; i < 100000; i++) {3 System.out.println(i);4 }5 long end =System.currentTimeMillis();6 System.out.println(end - start);

static void exit(int status)

终止当前正在运行的 Java 虚拟机

static void gc()

运行垃圾回收器

* Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间

* System.currentTimeMillis():返回的是当前系统时间,1970-1-1至今的毫秒数

*

* 构造方法:

* Date() :创建的是一个表示当前系统时间的Date对象

Date(long date) :根据"指定时间"创建Date对象

1 Date d = new Date();//默认当前系统时间2 //d.setTime(1000 * 60 * 60 * 24 * 2);

3 System.out.println(d.toLocaleString());4 System.out.println(d.getTime());//172800000

5

6

7 d.setTime(172800000L);8 System.out.println(d.toLocaleString());9

10

11 SimpleDateFormat:12 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");13

14 //格式化

15 Date date = newDate();16 String s =sdf.format(date);17 System.out.println(s);//2049年08月26日 13:39:1218

19

20 //解析

21 Date d = sdf.parse("2049年08月26日 13:39:12");22 System.out.println(d.toLocaleString());

Calener类用法:

1 //static Calendar getInstance()

2 Calendar c =Calendar.getInstance();3

4 //void set(int field, int value) :把指定的字段修改成指定的值5 //c.set(Calendar.DAY_OF_MONTH, 20);6

7 //void add(int field, int amount): 在指定的字段上加上指定的值

8 c.add(Calendar.DAY_OF_MONTH, -1);9

10 //int get(int field)//返回给定日历字段的值11 //public static final int YEAR 112 //System.out.println(Calendar.YEAR);13

14 //int year = c.get(1);

15 int year =c.get(Calendar.YEAR);16 int month = c.get(Calendar.MONTH) + 1;17 int day =c.get(Calendar.DAY_OF_MONTH);18

19 System.out.println(year + "年" + month + "月" + day + "日");

* 需求:判断一个数是否符合int类型的范围

* 由于基本数据类型只能做一些简单的操作和运算,所以Java为我们封装了基本数据类型,为每种基本数据类型提供了包装类

* 包装类就是封装了基本数据类型的类,为我们提供了更多复杂的方法和一些变量

1 //Integer(String s)

2 Integer i = new Integer("10");3 System.out.println(i);4

5 //int intValue()

6 int a =i.intValue();7 System.out.println(a + 10);8

9 //static int parseInt(String s)

10 int b = Integer.parseInt("20");11 System.out.println(b + 30);12

13

14 //Integer(int value)

15 Integer i2 = new Integer(40);16 String s =i2.toString();17 System.out.println(s);18

19 //static String toString(int i)

20 String s2 = Integer.toString(50);21 //System.out.println(s2);

* JDK1.5特性:自动装箱和拆箱

1 //自动装箱2 //相当于: Integer i = new Integer(10);3 //Integer i = 10;4

5 //自动拆箱6 //相当于 int a = i.intValue();7 //Integer i = 10;8 //int a = i;

9

10 Integer i = 10;11 Integer i2 = 20;12 Integer i3 = i +i2;13 /*

14 * Integer i3 = new Integer(i.intValue() + i2.intValue());15 *16 */

17 ArrayList list = newArrayList();18 list.add(1);//自动装箱,list.add(new Integer(1));

正则表达式:就是一套规则,可以用于匹配字符串

boolean matches(String regex) :判断当前字符串是否匹配指定的正则表达式,如果匹配则返回true,否则返回false

判断字符串是不是都由数字组成:

1 //必须都是数字

2 for (int i = 0; i < length; i++) {3 //得到参数的每一个字符

4 char c =qq.charAt(i);5 if(c < ‘0‘ || c > ‘9‘) {6 return false;7 }8 }

* 校验qq号码

* 要求必须是5-15位

* 0不能开头

* 必须都是数字

boolean flag = qq.matches("[1-9][0-9]{4,14}");

常用的正则表达式:

字符

x 字符x

\\ 反斜线字符

字符类

[abc] a、b或c(简单类)

[^abc] 任何字符,除了a、b或c(否定)

[a-zA-Z] a 到z或A到Z,两头的字母包括在内(范围

预定义字符类

. 任何字符(与行结束符可能匹配也可能不匹配)

\d 数字:[0-9]

\D 非数字:[^0-9]

\s 空白字符:[ \t\n\x0B\f\r]

\S 非空白字符:[^\s]

\w 单词字符:[a-zA-Z_0-9]

\W 非单词字符:[^\w]

Greedy 数量词

X? X,一次或一次也没有

X* X,零次或多次

X+ X,一次或多次

X{n} X,恰好n次

X{n,} X,至少n次

X{n,m} X,至少n次,但是不超过m次

原文:https://www.cnblogs.com/samuraihuang/p/9785606.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值