java api高级_java学习笔记(15-高级api)

1.toString方法

f346f02bb1c53011158e6ee104f092db.png

代码:

package com.daigua15;

public class ObjectDemo {

public static void main(String[] args) {

Student s = new Student("呆瓜", "男", 18);

System.out.println(s);

}

}

class Student {

private String name;

private String gender;

private int age;

public Student(String name, String gender, int age) {

super();

this.name = name;

this.gender = gender;

this.age = age;

}

@Override

public String toString() {

return "Student [name=" + name + ", gender=" + gender + ", age=" + age + "]";

}

}

tips:

右键->source->Generate toString()

1f6c474a910db44e93481525fb186031.png

2.equals方法

8847e243016ea8b5fd4c1b74e8e1e01f.png

代码:

package com.daigua15;

public class ObjectDemo2 {

public static void main(String[] args) {

Person p1 = new Person("呆瓜", 19);

Person p2 = new Person("呆瓜", 18);

System.out.println(p1);

System.out.println(p2);

System.out.println(p1.equals(p2));

}

}

class Person {

String name;

int age;

public Person(String name, int age) {

super();

this.name = name;

this.age = age;

}

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + age;

result = prime * result + ((name == null) ? 0 : name.hashCode());

return result;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Person other = (Person) obj;

if (age != other.age)

return false;

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

return true;

}

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + ", hashCode()=" + hashCode() + ", getClass()=" + getClass()

+ ", toString()=" + super.toString() + "]";

}

}

tips:同上,可以右键source找到对应选项

3.System类

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

从src源数组的srcPos索引开始,复制length个元素,从destPost位置开始将这些元素放至到dest数组中

static long currentTimeMillis()

返回以毫秒为单位的当前时间

static void exit(int status)

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

static void gc()

运行垃圾回收器

package com.daigua15;

/*

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

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

* static long currentTimeMillis()

* static void exit(int status)

static void gc()

*

*/

public class ObjectDemo3 {

public static void main(String[] args) {

// method();

method2();

// method3();

// static void gc()

// Demo d = new Demo();

// new Demo();

// System.gc();

}

private static void method3() {

// static void exit(int status) :终止虚拟机

for (int i = 0; i < 100000; i++) {

System.out.println(i);

if (i == 100) {

System.exit(0);

}

}

}

private static void method2() {

/*

* static long currentTimeMillis() :以毫秒值返回当前系统时间 这个毫秒的时间是相对时间,相对于1970-1-1

* 00:00:00 : 0 1970-1-1 00:00:01 : 1000 1970-1-1 00:01:00: 1000 * 60 1970-1-1

* 01:00:00: 1000 * 60 * 60 1000毫秒 = 1秒

*

*/

System.out.println(System.currentTimeMillis());

long start = System.currentTimeMillis();

for (int i = 0; i < 100000; i++) {

System.out.print("");

}

long end = System.currentTimeMillis();

long delta = end - start;

System.out.println(end);

System.out.println("耗时:"+ delta + "毫秒");

}

private static void method() {

/*

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

* length) 复制数组 参数1:源数组 参数2:源数组的起始索引位置 参数3:目标数组 参数4:目标数组的起始索引位置 参数5:指定接受的元素个数

*/

int[] src = { 1, 2, 3, 4, 5 };

int[] dest = new int[50];

System.arraycopy(src, 2, dest, 4, 3);

for (int i = 0; i < dest.length; i++) {

System.out.print(dest[i]);

}

}

}

class Demo {

@Override

protected void finalize() throws Throwable {

System.out.println("我被回收了");

}

}

4.Date类

4.1 构造方法

package com.daigua15;

import java.util.Date;

public class DateDemo {

public static void main(String[] args) {

// 构造传递的是毫秒时间戳

Date d = new Date(1000*24*60*60);

System.out.println(d);

System.out.println(d.toLocaleString());

}

}

4.2 setTime和getTime

package com.daigua15;

import java.util.Date;

public class DateDemo2 {

public static void main(String[] args) {

Date d = new Date();

System.out.println(d.getTime());

d.setTime(172800000L);

System.out.println(d.toLocaleString());

System.out.println(d.getTime());

}

}

5. SimpleDateFormat类

package com.daigua15;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

/*

* SimpleDateFormat:

* 格式化:

* Date --- String

* 2049-8-26 2049年8月26日

* String format(Date date)

* 解析:

* String --- Date

* "2049-8-26"

* Date parse(String source)

*

* 构造方法:

* SimpleDateFormat() :使用默认的模式进行对象的构建

* SimpleDateFormat(String pattern) :使用的指定的模式进行对象的构建

*

* 注意:Exception in thread "main" java.text.ParseException: Unparseable date: "49年9月26日 下午1:29"

* 解析的字符串,模式必须和构建对象的模式一样

*

*/

public class SimpleDateFormatDemo {

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

method();

method2();

// 使用指定的模式进行对象的构建

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

// 格式化

Date date = new Date();

String s = sdf.format(date);

System.out.println(s);// 2049年08月26日 13:39:12

// 解析

Date d = sdf.parse("2049年08月26日 13:39:12");

System.out.println(d.toLocaleString());

}

private static void method2() throws ParseException {

// 使用指定的模式进行对象的构建

// 1999年9月1日

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");

// 格式化

Date date = new Date();

String s = sdf.format(date);

System.out.println(s);// 2049年08月26日

// 解析

Date d = sdf.parse("2049年08月26日");

System.out.println(d.toLocaleString());

}

private static void method() throws ParseException {

// 使用默认模式进行对象的构建

SimpleDateFormat sdf = new SimpleDateFormat();

// 创建日期对象

Date date = new Date();

// 格式化 把日期对象转换成字符串

String s = sdf.format(date);

System.out.println(s);// 49-8-26 下午1:29

// 解析 把字符串转换成日期对象

// Date d = sdf.parse(s);

Date d = sdf.parse("192-1-8 下午6:09");

System.out.println(d.toLocaleString());

}

}

6.Calendar类

package com.daigua15;

import java.util.Calendar;

/*

* Calendar:日历,提供了一些操作年月日时的方法

*

* 获取

* 修改

* 添加

*

*

*/

public class CalendarDemo {

public static void main(String[] args) {

// static Calendar getInstance()

Calendar c = Calendar.getInstance();

// void set(int field, int value) :把指定的字段修改成指定的值

// c.set(Calendar.DAY_OF_MONTH, 20);

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

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

// int get(int field) // 返回给定日历字段的值

// public static final int YEAR 1

// System.out.println(Calendar.YEAR);

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

int year = c.get(Calendar.YEAR);

int month = c.get(Calendar.MONTH) + 1;

int day = c.get(Calendar.DAY_OF_MONTH);

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

}

}

7.包装类

090df2d7b4679049d7564ddaa7b3eaec.png

7.1 基本使用

package com.daigua15;

/*

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

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

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

*

* byte Byte

* short Short

* char Character

* int Integer

* long Long

* float Float

* double Double

* boolean Boolean

*

* Integer:

* String --- int

* 方式1:int intValue()

* 方式2: static int parseInt(String s)

* int --- String

* 方式1: + ""

* 方式2:String toString()

*

* 构造方法:

* Integer(int value)

* Integer(String s)

*/

public class IntegerDemo {

public static void main(String[] args) {

/*

* int n = 10; if(n >= Math.pow(-2, 31) && n <= Math.pow(2, 31) -1) {

* System.out.println("符合"); } else { System.out.println("不符合"); }

*/

Integer i = new Integer("10");

System.out.println(i);

int a = i.intValue();

System.out.println(a + 10);

int b = Integer.parseInt("20");

System.out.println(b + 30);

Integer i2 = new Integer(40);

String s = i2.toString();

System.out.println(s);

String s2 = Integer.toString(50);

System.out.println(s2);

}

}

7.2 自动装箱与拆箱

import java.util.ArrayList;

/*

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

*

*/

public class IntegerDemo2 {

public static void main(String[] args) {

//Integer i = new Integer(10);

//自动装箱

//相当于: Integer i = new Integer(10);

//Integer i = 10;

//自动拆箱

//相当于 int a = i.intValue();

//Integer i = 10;

//int a = i;

Integer i = 10;

Integer i2 = 20;

Integer i3 = i + i2;

/*

* Integer i3 = new Integer(i.intValue() + i2.intValue());

*

*/

ArrayList list = new ArrayList();

list.add(1);//自动装箱,list.add(new Integer(1));

}

}

8.正则

/*

* 校验qq号码

* 要求必须是5-15位

* 0不能开头

* 必须都是数字

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

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

*

*

*/

public class RegexDemo {

public static void main(String[] args) {

String qq = "12a345";

/*boolean flag = checkQQ(qq);

System.out.println(flag);*/

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

System.out.println(flag);

}

public static boolean checkQQ(String qq) {

int length = qq.length();

//要求必须是5-15位

if(length < 5 || length > 15) {

return false;

}

//0不能开头

if(qq.startsWith("0")) {

return false;

}

//必须都是数字

for (int i = 0; i < length; i++) {

//得到参数的每一个字符

char c = qq.charAt(i);

if(c < '0' || c > '9') {

return false;

}

}

return true;//符合要求

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值