## 常用類學習
### Object
~~~java
/**
* Java常用類-Object類
* @author 一教室
*
*/
public class ConstantClass {
public String name;
public int age;
public ConstantClass() {
super();
}
public ConstantClass(String name, int age) {
super();
this.name = name;
this.age = age;
}
public static void main(String[] args) {
ConstantClass s1 = new ConstantClass("a", 1);
System.out.println(s1.toString());
System.out.println(s1.hashCode());
ConstantClass s2 = new ConstantClass("a", 1);
System.out.println(s2.toString());
System.out.println(s2.hashCode());
System.out.println(s1.equals(s2));//根據內存地址判斷是否相等
ConstantClass s3 = s1;
//System.out.println(s3 == s2);不可以使用兩個等于號,進行兩個對象是否相等的判斷的
System.out.println(s3.equals(s2));
}
}
~~~
### String
~~~java
/**
* java常用類,String類
* @author 一教室
*
*/
public class ConstantClass2 {
public static void main(String[] args) {
/**
* 創建String對象的幾種方式
*/
String a = "abc";//abc存儲在常量池中 a,常量池地址
String b = new String("abc");//abc還是在常量池中,但是String b所指向的對象存儲堆內存中 b,堆內存地址,常量池地址
char[] ca = {'a','b','c'};
String c = new String(ca);
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(a == b);
//對于字符串是否相等采用equals方法,equals方法一般會比較兩個對象內容是否相等
System.out.println(a.equals(b));
String str = "Hello,World!";
//根據索引獲取字符串中對應的char值,最小值0,最大值length,1
System.out.println("charAt:" + str.charAt(11));
//endWith判斷字符串是否以給定的字符串結尾,是返回true,否返回false
String address = "d:/picture/01.jpg";
boolean flag = address.endsWith("jpg");
System.out.println("endsWith:" + flag);
//startWith判斷字符串是否以給定的字符串開頭,是返回true,否返回false
String url = "https://www.baidu.com";
boolean flag1 = url.startsWith("http:");
System.out.println("startWith:" + flag1);
//indexOf(單個參數)判斷字符串中子字符串第一次出現位置的索引,如果沒有出現則返回-1,該方法常用來判斷字符串中是否存在某個字符串
if(str.indexOf("He") > -1) {
System.out.println("出現了");
}
//indexOf(兩個參數)判斷指定的字符串第一次出現位置的索引,從第二個參數指定的索引位置開始
if(str.indexOf("He", 2) > -1) {
System.out.println("*出現了*");
}
//將字符串轉變為char數組
char[] car = str.toCharArray();
System.out.println(car);
//如何打印文件的后綴
String file = "d:/ja.va/demo.java";
//返回指定子字符串出現在父字符串中最右邊的索引
int index = file.lastIndexOf(".");
System.out.println(index);
//subString返回從指定位置開始一直到末尾的新子字符串
String fileTypeName = file.substring(index + 1);
System.out.println(fileTypeName);
String str3 = "qqqqHHHHHuwaaa";
//替換字符串中指定的字符
String str4 = str3.replace('q', 'a');
System.out.println(str4);
//替換字符串中指定的字符串
String str5 = str3.replaceAll("HHHH", "hhhh");
System.out.println(str5);
//替換字符串中指定的首個字符串
String str6 = str3.replaceFirst("q", "Q");
System.out.println(str6);
//通過特定字符來分割字符串,返回一個字符串數組
String s7 = "a,b,c,d,e,f,g";
String[] s8 = s7.split(",");
for(String st:s8) {
System.out.println(st);
}
//拼接字符串
String s9 = s7.concat(":abcd");
System.out.println(s9);
//返回大寫的字符串
String s10 = "你好,世界";
String s11 = s10.toUpperCase();
System.out.println(s11);
String s12 = str3.toUpperCase();
System.out.println(s12);
//去除字符串兩端的空格
String s13 = " Hello World";
String s14 = s13.trim();
System.out.println("#" + s14 + "#");
List<Integer> list = getCharIndexOfString(s9,'a');
System.out.println(list);
}
//要求寫一個方法,傳入兩個參數,要求輸出第二個參數(char)在第一個參數(String)中所有位置的索引
public static List<Integer> getCharIndexOfString(String str, char cr) {
List<Integer> list = new ArrayList<Integer>();
if(str != null) {
char[] charArray = str.toCharArray();
for(int i = 0; i < charArray.length; i++) {
if(charArray[i] == cr) {
list.add(i);
}
}
}
return list;
}
}
~~~
### StringBuffer
~~~java
public class ConstantClass3 {
public static void main(String[] args) {
String a = "你";
String b = "我";
String c = "dindidindidndindindidn";
c += "suindidndind" + a + "sdindidndindind" + b;
System.out.println(c);
//StringBuffer類在大量字符串的拼接上比加號拼接的速度快
//利用Date類打一個時間戳
Date now = new Date();
String str = "";
//加號拼接
for(int i = 0; i < 20000; i++) {
str += i;
}
Date nextNow = new Date();
System.out.println(nextNow.getTime()- now.getTime());
Date buNow = new Date();
StringBuffer sbu = new StringBuffer();
for(int i = 0; i < 20000; i++) {
sbu.append(i);
}
Date nextBuNow = new Date();
System.out.println(nextBuNow.getTime()- buNow.getTime());
}
}
~~~
### Date
~~~java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Date和SimpleDateFormat類
* @author 一教室
*
*/
public class ConstantClass4 {
public static void main(String[] args) throws ParseException {
/**
* 構造器學習
*/
Date date1 = new Date();
System.out.println(date1);
//一天86400秒 86400*1000毫秒
System.out.println(60 * 60 * 24);
//long time = 86400 * 1000 * 365; java運算表達式默認以int為計算結果類型,此處結果超出int范圍,導致運算出錯
long time = 86400L * 1000 * 365;
System.out.println(time);
Date date2 = new Date(time);
System.out.println(date2);//1970-01-22 11:36:27
Date date3 = new Date(0);
System.out.println(date3);//1970-01-01 08:00:00 北京時間 所出時區不一樣,而且計算時間格式不同
/**
* 方法學習
*/
Date date = new Date();
//判斷當前時間是否在指定時間之后(與before方法作用相反)
boolean flag = date2.after(date);
System.out.println(flag);
/**
* 返回正整數,表示所選時間晚于參數時間
* 返回0,表示所選時間等于參數時間
* 返回負整數,表示所選時間早于參數時間
*/
int result = date.compareTo(date3);
System.out.println(result);
int result1 = date.compareTo(date1);
System.out.println(result1);
//判斷兩個時間是否相等
Date date4 = new Date(0);
System.out.println(date3.equals(date4));
//getTime()方法返回自1970-01-01 00:00:00 GMT到指定時間對象的總毫秒數
long allHM = date2.getTime();
System.out.println(allHM);
//getYear()方法已被jdk1.8棄用
int a = date.getYear();
System.out.println(a);
//簡單時間格式類- SimpleDateFormat
//是一個以與語言環境相關的方式來格式化日期對象和解析日期文本的具體類,
//它允許進行格式化(日期->文本),解析(文本->日期)和規范化
//格式化
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");//在構造器中傳入字符串,該字符串用來指定日期格式
String dateS = sdf.format(date1);
System.out.println(dateS);
//解析-解析字符串中的文本,并生成對應的日期對象
String dateX = "2017-01-22 09:23:12.121";
Date dateT = sdf.parse(dateX);
System.out.println(dateT);
}
}
~~~
### Calendar
~~~java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* Calendar類(日歷類)
* @author 一教室
*
*/
public class ConstantClass5 {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
System.out.println(sdf.format(date));
/**
* 日期加減
*/
//getInstance()方法使用默認時區和區域獲得一個日歷對象,并返回該對象(常用于日期相關的計算)
Calendar calendar = Calendar.getInstance();
//使用setTime()方法給日歷對象設置指定時間
calendar.setTime(date);
//將日歷中的時間向后推遲30天
calendar.add(Calendar.DAY_OF_MONTH, 30);//第一個參數指的是日歷中的天數 第二個參數指的是想要添加的數值
Date dt = calendar.getTime();
System.out.println(sdf.format(dt));
//將日歷中的時間向后推遲30年
calendar.add(Calendar.YEAR, 30);
System.out.println(sdf.format(calendar.getTime()));
//將日歷中的時間向前推進30年
calendar.add(Calendar.YEAR, -30);
System.out.println(sdf.format(calendar.getTime()));
//將日歷中的時間向前推進1個月
calendar.add(Calendar.MONTH, -1);
System.out.println(sdf.format(calendar.getTime()));
/**
* 日期的獲取 get()
*/
//獲取日歷中日期是幾號
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//獲取日歷中日期的月份
System.out.println(calendar.get(Calendar.MONTH));//打印出來的月份是實際的月份-1
/**
* 日期的設置 set()
*/
calendar.set(Calendar.YEAR, 2010);
System.out.println(sdf.format(calendar.getTime()));
}
}
~~~
- 課程開始
- 第一課20191008
- 第二課20191009
- HTML
- CSS
- CSS第一課
- CSS第二課
- CSS第三課
- CSS第四課
- CSS第五課
- JavaScript
- Js第一課
- Js第二課
- Js第三課
- Js第四課
- Js第五課
- Js第六課
- Js第七課
- Js-事件模型
- Js-2019-10-31-標準庫
- Js-2019-11-01- 標準庫
- Js-2019-11-01-Json
- Js-2019-11-01-對象的創建
- Js-2019-11-04-this的使用
- Js-2019-11-05-storage與異常
- Js-2019-11-05-BOM與補充知識點
- Js-2019-11-06-正則表達式和計時器
- jQuery
- jQuery-2019-11-13-初識jQuery
- jQuery-2019-11-14-jQuery節點操作
- jQuery-2019-11-15-jQuery節點操作二
- jQuery-2019-11-16-jQuery效果與動畫
- Java
- Java-2019-11-27-變量直接量數據格式運算符
- Java-2019-11-28-流程控制
- Java-2019-12-02-數組
- Java-2019-12-04 面向對象
- Java-2019-12-05-封裝
- Java-2019-12-06-深入構造器
- Java-2019-12-09-繼承
- Java-2019-12-10-多態
- Java-2019-12-10-包裝類
- Java-2019-12-11-final修飾符
- Java-2019-12-11-包裝類
- Java-2019-12-11-接口
- java-2019-12-13-設計模式
- Java-2019-12-16-集合框架
- Java-2019-12-18-集合排序
- Java-2019-12-23-常用類學習
- Java-2019-12-25-異常處理
- Java-2019-12-31-內部類詳解