java學習筆記(15-高階api)
阿新 • • 發佈:2019-01-09
1.toString方法

程式碼:
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()

2.equals方法

程式碼:
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.包裝類

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;//符合要求
}
}