日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

黑马全套Java教程(七)

發布時間:2023/12/14 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马全套Java教程(七) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 27 Arrays
    • 27.1 冒泡排序
    • 27.2 Arrays類的概述和常用方法
  • 28 基本類型包裝類
    • 28.1 基本類型包裝類概述
    • 28.2 Integer類的概述和使用
    • 28.3 int和String的相互轉換
    • 28.4 自動裝箱和拆箱
  • 29 日期類
    • 29.1 Date類概述和構造方法
    • 29.2 SimpleDateFormat類概述
    • 29.3 Calendar概述 和 常用方法
  • 30 異常
    • 30.1 異常概述
    • 30.2 JVM的默認處理方案
    • 30.3 異常處理
      • try...catch...
      • throws
    • 30.4 Throwable的成員方法
    • 30.5 編譯時異常和運行時異常區別
    • 30.6 自定義異常

黑馬全套Java教程(一)
黑馬全套Java教程(二)
黑馬全套Java教程(三)
黑馬全套Java教程(四)
黑馬全套Java教程(五)
黑馬全套Java教程(六)

本博客從視頻d198開始,視頻鏈接

27 Arrays

27.1 冒泡排序


package myArrays.Demo1;//冒泡排序 public class ArrayDemo {public static void main(String[] args) {//定義一個數組int[] arr = {24, 69, 80, 57, 13};System.out.println("排序前:" + arrayToString(arr));for (int j = 0; j < arr.length - 1; j++) {for (int i = 0; i < arr.length - 1 - j; i++) {if (arr[i] > arr[i + 1]) {int temp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = temp;}}}System.out.println("排序后:" + arrayToString(arr));}public static String arrayToString(int[] arr) {StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i]).append(", ");}}sb.append("]");String s = sb.toString();return s;} }

27.2 Arrays類的概述和常用方法


工具類的設計思想:

  • 構造方法用private修飾
  • 成員用public static修飾
package myArrays.Demo2;import java.util.Arrays;/*Arrays類包含用于操作數組的各種方法public static String (int[] a): 返回指定數組的內容和字符串表示形式public static voidsort(int[] a): 按照數字順序排序指定的數組*/ public class ArrayDemo {public static void main(String[] args) {//定義一個數組int[] arr = {24, 69, 80, 57, 13};System.out.println("排序前:" + Arrays.toString(arr));Arrays.sort(arr);System.out.println("排序后:" + Arrays.toString(arr));} }





28 基本類型包裝類

28.1 基本類型包裝類概述

將基本數據類型封裝成對象的好處在于可以在對象中定義更多的功能方法操作該數據
常用的操作之一:用于基本數據類型與字符串之間的轉換

package myInteger.Demo1; /*基本類型包裝類*/ public class InterDemo {public static void main(String[] args) {//需求:我要判斷一個數據是否在int范圍內?//public static final int Min_VALUE//public static final int MAX_VALUESystem.out.println(Integer.MIN_VALUE);System.out.println(Integer.MAX_VALUE);} }



28.2 Integer類的概述和使用

Integer:包裝一個對象中的原始類型int的值

package myInteger.Demo2; /*構造方法:public Integer(int value):根據int值創建Integer對象(過時)public Integer(String s):根據String值創建Integer對象(過時)靜態方法獲取對象:public static Integer valueOf(int i):返回表示指定的int值的Integer實例public static Integer valueOf(String s):返回一個保存指定值的Integer對象 String*/ public class InterDemo {public static void main(String[] args) {//1Integer i1 = new Integer(100);System.out.println(i1);//2Integer i2 = new Integer("100");System.out.println(i2);//3Integer i3 = Integer.valueOf(100);System.out.println(i3);//4Integer i4 = Integer.valueOf("100");System.out.println(i4);} }

28.3 int和String的相互轉換

基本類型包裝類的最常見操作就是:用于基本類型和字符串之間的相互轉換

package myInteger.Demo3;//int和String類型的相互轉換 public class IntegerDemo {public static void main(String[] args) {//int---Stringint number = 100;//方式一String s1 = "" + number;System.out.println(s1);//方式二String s2 = String.valueOf(number);System.out.println(s2);System.out.println("--------------");//String---intString s = "100";//方式一//String---Integer----intInteger i = Integer.valueOf(s);int x = i.intValue();System.out.println(x);//方式二int y = Integer.parseInt(s);System.out.println(y);} }

案例:字符串中數據排序

package myInteger.Demo4;import java.util.Arrays;public class Demo01 {public static void main(String[] args) {//1.定義字符串String s = "91 27 46 38 50";//2.字符串數字存儲入數組String[] strArray = s.split(" ");String start = Arrays.toString(strArray);System.out.println(start);//3.int數組int[] arr = new int[strArray.length];for(int i=0;i< strArray.length ;i++){arr[i] = Integer.parseInt(strArray[i]);}Arrays.sort(arr);String result = Arrays.toString(arr);System.out.println(result);} }



28.4 自動裝箱和拆箱

裝箱:把基本數據類型轉換為對應的包裝類類型
拆箱:把包裝類類型轉換為對應的基本數據類型

package myInteger.Demo5;import myInteger.Demo1.InterDemo;/*裝箱:把基本數據類型轉換為對應的包裝類類型拆箱:把包裝類類型轉換為對應的基本數據類型*/ public class IntegerDemo {public static void main(String[] args) {//裝箱Integer i = Integer.valueOf(100); //手動裝箱Integer ii = 100; //自動裝箱//拆箱ii = ii.intValue() + 200; //手動拆箱ii += 200; //自動System.out.println(ii);Integer iii = null;if(iii!=null) {iii += 300;}System.out.println(iii);} }




29 日期類

29.1 Date類概述和構造方法

Date代表了一個特定的時間,精確到毫秒

package myDate.Demo1;import java.util.Date;/* 構造方法:public Date():分配一個Date對象,并初始化,以便它代表它被分配的時間,精確到毫秒public Date(long date):分配一個Date對象,并將其初始化為表示從標準基準時間起指定的毫秒數*/ public class DateDemo01 {public static void main(String[] args) {//1.Date d1 = new Date();System.out.println(d1);//2.long date = 1000*60*60;Date d2 = new Date(date);System.out.println(d2);} }



常用方法:

package myDate.Demo1;import java.util.Date;/*public long getTime():獲取的是日期對象從1970年1月1日 0時刻開始的毫秒值public void setTime(long time):設置時間,給的是毫秒值*/ public class DateDemo02 {public static void main(String[] args) {//創建日期對象Date d = new Date();//1.System.out.println(d); //當前時間System.out.println(d.getTime()); //獲取某時間點到現在的毫秒值System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");System.out.println("------------------");//2.//long time = 1000*60*60;long time = System.currentTimeMillis(); //返回當前時間d.setTime(time);System.out.println(d);} }



29.2 SimpleDateFormat類概述


構造方法:

格式化和解析日期:

package mySimpleDateFormat.Demo;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /*構造方法:public SimpleDateFormat(): 構造一個SimpleDateFormat,使用默認模式和日期格式public SimpleDateFormat(String pattern): 構造一個SimpleDateFormat使用給定的模式和默認的日期格式格式化:從 Date 到 Stringpublic final String format(Date date): 將日期格式化成日期/時間字符串解析:從 String 到 Datepublic Date parse (String source):從給定字符串的開始解析文本以生成日期*/public class Demo1 {public static void main(String[] args) throws ParseException {//格式化: 從Date到StringDate d = new Date(); //獲取當前時間 // SimpleDateFormat sdf = new SimpleDateFormat();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String s = sdf.format(d); //格式化成字符串System.out.println(s);//從String 到 DateString ss = "2048-08-09 11:11:11";SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date dd = sdf2.parse(ss);System.out.println(dd);} }



案例:日期工具類

DateUtils.java

package mySimpleDateFormat.Demo2;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;/*工具類構造方法私有成員方法靜態*/ public class DateUtils {private DateUtils(){} //構造方法私有/*把日期轉為指定格式的字符串返回值類型:String參數:Date date, String format*/public static String dateToString(Date date, String format){SimpleDateFormat sdf = new SimpleDateFormat(format);String s = sdf.format(date);return s;}/*把字符串解析為指定格式的日期返回值:Date參數:String s, String format*/public static Date stringToDate(String s, String format) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat(format);Date d = sdf.parse(s);return d;} }

DateDemo.java

package mySimpleDateFormat.Demo2;import java.text.ParseException; import java.util.Date;//測試類 public class DateDemo {public static void main(String[] args) throws ParseException {//創建日期對象Date d = new Date();String s1 = DateUtils.dateToString(d, "yyyy年MM月dd日 HH:mm:ss");System.out.println(s1);String s2 = DateUtils.dateToString(d, "yyyy年MM月dd日");System.out.println(s2);System.out.println("-----------------");String s = "2048-08-09 12:12:12";Date dd = DateUtils.stringToDate(s, "yyyy-MM-dd HH:mm:ss");System.out.println(dd);} }

29.3 Calendar概述 和 常用方法

package myCalendar.Demo1;import java.util.Calendar;/*Calendar 為某一時刻和一組日歷字段之間的轉換提供了一些方法,并為操作日歷字段提供一些方法Calendar 提供了一個類方法 getInstance用于獲取Calendar對象,其日歷字段已使用當前日期和時間初始化Calendar rightNow = Calendar.getInstance();*/ public class CalendarDemo {public static void main(String[] args) {//獲取對象Calendar c = Calendar.getInstance(); //多態的形式System.out.println(c);int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int date = c.get(Calendar.DATE);System.out.println(year + "年" + month + "月" + date + "日");} }



package myCalendar.Demo2;import java.util.Calendar;/*Calendar 為某一時刻和一組日歷字段之間的轉換提供了一些方法,并為操作日歷字段提供一些方法Calendar 提供了一個類方法 getInstance用于獲取Calendar對象,其日歷字段已使用當前日期和時間初始化Calendar rightNow = Calendar.getInstance();*/ public class CalendarDemo {public static void main(String[] args) {//獲取對象Calendar c = Calendar.getInstance(); //多態的形式System.out.println(c);int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int date = c.get(Calendar.DATE);System.out.println(year + "年" + month + "月" + date + "日");System.out.println("--------------");c.set(2048,10,10);int year1 = c.get(Calendar.YEAR);int month1 = c.get(Calendar.MONTH) + 1;int date1 = c.get(Calendar.DATE);System.out.println(year1 + "年" + month1 + "月" + date1 + "日");System.out.println("---------------");c.add(Calendar.YEAR, 3); //add加減時間值c.add(Calendar.DATE, -5);int year2 = c.get(Calendar.YEAR);int month2 = c.get(Calendar.MONTH) + 1;int date2 = c.get(Calendar.DATE);System.out.println(year2 + "年" + month2 + "月" + date2 + "日");} }

案例:二月天

package myCalendar.Demo3;import java.util.Calendar; import java.util.Scanner;/*需求:獲取任意一年的二月有多少天*/ public class CalendarTest {public static void main(String[] args) {//鍵盤錄入年份Scanner sc = new Scanner(System.in);System.out.println("請輸入年份:");int year = sc.nextInt();//設置日歷年月日Calendar c = Calendar.getInstance();c.set(year, 2, 1); //月份索引是從0開始的//往前推一天c.add(Calendar.DATE, -1);int date = c.get(Calendar.DATE);System.out.println(date);} }




30 異常

30.1 異常概述

異常:就是程序出現了不正常的情況

索引越界異常顯示:


30.2 JVM的默認處理方案

如果程序出現了問題,我們沒有做任何處理,最終JVM會做默認的處理

  • 把異常的名稱,異常原因及異常出現的位置等信息輸出在了控制臺
  • 程序停止執行


30.3 異常處理

如果程序出現了問題,我們需要自己來處理,有兩種方案:

  • try…catch…
  • throws

try…catch…

類似Python的try…except…

package myException.Demo2;//異常 public class Demo1 {public static void main(String[] args) {System.out.println("開始");method();System.out.println("結束");}public static void method() {try {int[] arr = {1, 2, 3};System.out.println(arr[3]);} catch (ArrayIndexOutOfBoundsException e) {//System.out.println("你訪問的數組索引越界!");e.printStackTrace();}} }



throws


1.

2.

3.

4.

30.4 Throwable的成員方法

package myException.Demo2;//異常 public class Demo2 {public static void main(String[] args) {System.out.println("開始");method();System.out.println("結束");}public static void method() {try {int[] arr = {1, 2, 3};System.out.println(arr[3]);} catch (ArrayIndexOutOfBoundsException e) { //e為異常對象//System.out.println("你訪問的數組索引越界!");//e.printStackTrace(); //這個輸出信息最全System.out.println("e.getMessage():" + e.getMessage()); //Index 3 out of bounds for length 3 異常原因System.out.println("e.toString():" + e.toString());}} }



30.5 編譯時異常和運行時異常區別

30.6 自定義異常


ScoreException.java

package myException.Demo4;public class ScoreException extends Exception{public ScoreException(){}public ScoreException(String message){super(message);} }

Teacher.java

package myException.Demo4;public class Teacher {public void cheakScore(int score) throws ScoreException {if (score < 0 || score > 100) {//throw new ScoreException(); //無參構造方法throw new ScoreException("你給的分數有誤,分數應該在0-100之間");} else {System.out.println("分數正常!");}} }

TeacherTest.java

package myException.Demo4;import java.util.Scanner;public class TeacherTest {public static void main(String[] args) throws ScoreException {Scanner sc = new Scanner(System.in);System.out.println("請輸入分數:");int score = sc.nextInt();Teacher t = new Teacher();t.cheakScore(score); //編譯時異常} }


注意:

本博客到視頻d219截止!

總結

以上是生活随笔為你收集整理的黑马全套Java教程(七)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。