Java第三季

来源:http://www.cnblogs.com/2-NARUTO-2/archive/2017/11/28/7906872.html
-Advertisement-
Play Games

1、異常簡介: (1) Java中的所有不正常類都繼承於Throwable類。Throwable主要包括兩個大類,一個是Error類,另一個是 Exception類; (2)其中Error類中包括虛擬機錯誤和線程死鎖,一旦Error出現了,程式就徹底的掛了,被稱為程式終結者; (3) Excepti ...


 

1、異常簡介:

   (1) Java中的所有不正常類都繼承於Throwable類。Throwable主要包括兩個大類,一個是Error類,另一個是      

              Exception類;

   (2)其中Error類中包括虛擬機錯誤和線程死鎖,一旦Error出現了,程式就徹底的掛了,被稱為程式終結者;

   (3) Exception類主要指編碼、環境、用戶操作輸入出現問題,Exception主要包括兩大類,非檢查異常。

           (RuntimeException 和檢查異常(其他的一些異常)

   (4)RuntimeException異常主要包括以下四種異常:空指針異常、數組下標越界異常、類型轉換異常、算術異常。

2、異常語法 

try{
    //調用一些會拋出異常的方法
}catch(Exception e){
    //處理該異常的代碼塊
}

例子1:

例子2:

3、Java中的異常拋出

throw:將產生的異常拋出

throws:聲明將要拋出何種類型的異常

public void 方法名(參數列表) throws 異常列表{
     //調用會拋出異常的方法或者throw new Exception
}

調用方法一:

調用方法二:

4、自定義異常

class 自定義異常類 entends 異常類型{

}

5、Java中的字元串

       在 Java 中,字元串被作為 String 類型的對象處理。 String 類位於 java.lang 包中。預設情況下,該包被自動導入所有的程式。

       創建String對象的方法:

6、Java中字元串的不變性

 

運行結果:

 

7、Java中的String類的常用方法

       String 類提供了許多用來處理字元串的方法,例如,獲取字元串長度、對字元串進行截取、將字元串轉換為大寫或小寫、字元串分割等。

結合代碼來熟悉一下方法的使用:

 

運行結果:

 

註意:

(1) 使用 indexOf 進行字元或字元串查找時,如果匹配返回位置索引;如果沒有匹配結果,返回 -1

(2)使用 substring(beginIndex , endIndex) 進行字元串截取時,包括 beginIndex 位置的字元,不包括 endIndex 位置的          

          字元。

8、Java中的String類的其他方法

運行結果:

註意:那麼,“==” 和 equals() 有什麼區別呢?

== : 判斷兩個字元串在記憶體中首地址是否相同,即判斷是否是同一個字元串對象

equals() :  比較存儲在兩個字元串對象中的內容是否一致

 9、認識Java中的StringBuild類

  StringBuildStringBuilder 類提供了很多方法來操作字元串。

     例如:在下麵的示例代碼中,創建了 StringBuilder 對象,用來存儲字元串,並對其做了追加和插入操作。這些操作

     修改了 str 對象的值,而沒有創建新的對象,這就是 StringBuilder 和 String 最大的區別。

運行結果:

 10、Java中的包裝類

      基本數據類型都非常熟悉,例如 int、float、double、boolean、char 等。基本數據類型是不具備對象的特性的,比如基本類型不能調用方法、功能簡單。。。,為了讓基本數據類型也具備對象的特性, Java 為每個基本數據類型都提供了一個包裝類,這樣我們就可以像操作對象那樣來操作基本數據類型。

      基本類型和包裝類之間的對應關係:

 

包裝類主要提供了兩大類方法:

(1)將本類型和其他基本類型進行轉換的方法

(2)將字元串和本類型及包裝類互相轉換的方法

public class HelloWorld {
    public static void main(String[] args) {
        
        // 定義int類型變數,值為86
        int score1 = 86; 
        
        // 創建Integer包裝類對象,表示變數score1的值
        Integer score2=new Integer(score1);
        
        // 將Integer包裝類轉換為double類型
        double score3=score2.doubleValue();
        
        // 將Integer包裝類轉換為float類型
        float score4=score2.floatValue();
        
        // 將Integer包裝類轉換為int類型
        int score5 =score2.intValue();

        System.out.println("Integer包裝類:" + score2);
        System.out.println("double類型:" + score3);
        System.out.println("float類型:" + score4);
        System.out.println("int類型:" + score5);
    }
}

11、Java中基本類型和包裝類之間的轉換

基本類型和包裝類之間經常需要互相轉換

 

裝箱:把基本類型轉換成包裝類,使其具有對象的性質,又可分為手動裝箱和自動裝箱

 

拆箱:和裝箱相反,把包裝類對象轉換成基本類型的值,又可分為手動拆箱和自動拆箱

 

public class HelloWorld {
    public static void main(String[] args) {
        
        // 定義double類型變數
        double a = 91.5;
        
         // 手動裝箱
        Double b =  new Double(a);      
        
        // 自動裝箱
        Double c =  a;     

        System.out.println("裝箱後的結果為:" + b + "和" + c);
        
        // 定義一個Double包裝類對象,值為8
        Double d = new Double(87.0);
        
        // 手動拆箱
        double e = d.doubleValue()             ;
        
        // 自動拆箱
        double f =                d;
        
         System.out.println("拆箱後的結果為:" + e + "和" + f);
    }
}

12、Java 中基本類型和字元串之間的轉換

基本類型轉換為字元串有三種方法:

   1. 使用包裝類的 toString() 方法

   2. 使用String類的 valueOf() 方法

   3. 用一個空字元串加上基本類型,得到的就是基本類型數據對應的字元串

將字元串轉換成基本類型有兩種方法:

  1. 調用包裝類的 parseXxx 靜態方法

  2. 調用包裝類的 valueOf() 方法轉換為基本類型的包裝類,會自動拆箱

 

public class HelloWorld {
    public static void main(String[] args) {
        double m = 78.5;
        //將基本類型轉換為字元串
        String str1 = String.valueOf(m) ;
        System.out.println("m 轉換為String型後與整數20的求和結果為: "+( str1 + 20 ) );        
        String str = "180.20";
        // 將字元串轉換為基本類型
        Double a = Double.parseDouble(str) ;    
        System.out.println("str 轉換為double型後與整數20的求和結果為: " + ( a + 20 ) );
    }
}

運行結果: 

m 轉換為String型後與整數20的求和結果為: 78.520
str 轉換為double型後與整數20的求和結果為: 200.2

 13、使用 Date 和 SimpleDateFormat 類表示時間

    使用 java.util 包中的 Date 類。這個類最主要的作用就是獲取當前時間

 

   使用 Date 類的預設無參構造方法創建出的對象就代表當前時間,我們可以直接輸出 Date 對象顯示當前的時間,顯示的結果如下:

   從上面的輸出結果中,我們發現,預設的時間格式不是很友好,與我們日常看到的日期格式不太一樣,如果想要按指定的格式進行顯示,如 2014-06-11 09:22:30 ,那該怎麼做呢?

  此時就到了 java.text 包中的 SimpleDateFormat 類大顯身手的時候了!!可以使用 SimpleDateFormat 來對日期時間進行格式化,如可以將日期轉換為指定格式的文本,也可將文本轉換為日期。

(1)使用 format() 方法將日期轉換為指定格式的文本

 

運行結果為:

    2014-06-11  09:55:48 

(2)使用 parse() 方法將文本轉換為日期

運行結果為:

 

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class HelloWorld {
    
    public static void main(String[] args) throws ParseException {
        
        // 使用format()方法將日期轉換為指定格式的文本
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        // 創建Date對象,表示當前時間
        Date now =new Date();
        
        // 調用format()方法,將日期轉換為字元串並輸出
        System.out.println(sdf1.format(now));
        System.out.println(sdf2.format(now));
        System.out.println(sdf3.format(now));

        // 使用parse()方法將文本轉換為日期
        String d = "2014-6-1 21:05:36";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
         // 調用parse()方法,將字元串轉換為日期
        Date date = sdf.parse(d);
        
        System.out.println(date);
    }
}

運行結果:

2017年11月28日 00時13分08秒
2017/11/28 00:13
2017-11-28 00:13:08
Sun Jun 01 21:05:36 CST 2014

14、Calendar 類的應用

     Date 類最主要的作用就是獲得當前時間,同時這個類裡面也具有設置時間以及一些其他的功能,但是由於本身設計的問題,這些方法卻遭到眾多批評,不建議使用,更推薦使用 Calendar 類進行時間和日期的處理。

    java.util.Calendar 類是一個抽象類,可以通過調用 getInstance() 靜態方法獲取一個 Calendar 對象,此對象已由當前日期時間初始化,即預設代表當前時間,如 Calendar c = Calendar.getInstance();

其中,調用 Calendar 類的 getInstance() 方法獲取一個實例,然後通過調用 get() 方法獲取日期時間信息,參數為需要獲得的欄位的值, Calendar.Year 等為 Calendar 類中定義的靜態常量。

 運行結果為:

 

       Calendar 類提供了 getTime() 方法,用來獲取 Date 對象,完成 Calendar 和 Date 的轉換,還可通過 getTimeInMillis() 方法,獲取此 Calendar 的時間值,以毫秒為單位。如下所示:

運行結果為:

 

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class HelloWorld {
    
    public static void main(String[] args) {
        // 創建Calendar對象
        Calendar c =Calendar.getInstance();
        
        // 將Calendar對象轉換為Date對象
        Date date = c.getTime();
        
        // 創建SimpleDateFormat對象,指定目標格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        // 將日期轉換為指定格式的字元串
        String now = sdf.format(date);
        System.out.println("當前時間:" + now);
    }
}

運行結果:

當前時間:2017-11-28 00:27:38

15、使用 Math 類操作數據

  Math 類位於 java.lang 包中,包含用於執行基本數學運算的方法, Math 類的所有方法都是靜態方法,所以使用該類中的方法時,可以直接使用類名.方法名,如: Math.round();

常用的方法:

 

 例子:

 

運行結果:

 

public class HelloWorld {
    
    public static void main(String[] args) {
        
        // 定義一個整型數組,長度為10
            int[] nums = new int [10];
        
        //通過迴圈給數組賦值
        for (int i = 0; i < nums.length; i++) {
            // 產生10以內的隨機數
            int x = (int)(Math.random()*10);
            
            nums[i] = x;// 為元素賦值
        }
        
        // 使用foreach迴圈輸出數組中的元素
        for ( int num : nums     ) {
            System.out.print(num + " ");
        }
    }
}

運行結果:

9 3 2 2 4 1 1 8 5 9 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文:http://blog.csdn.net/u012152619/article/details/51485297 一般來說,上面的幾個配置項對任何項目都是必不可少的,定義了項目的基本屬性。 這裡有必要對一個不太常用的屬性classifier做一下解釋,因為有時候引用某個jar包,classif ...
  • 本節內容 - 什麼是方法集 - 方法集區分基礎類型T和指針類型*T - 匿名嵌入對方法集的影響 - 方法集調用 ...
  • 語法: mvn install:install-file -Dfile=jar包的位置(參數一) -DgroupId=groupId(參數二) -DartifactId=artifactId(參數三) -Dversion=version(參數四) -Dpackaging=jar 我把“ojdbc-1 ...
  • JAVA靜態代碼塊會在類被載入時自動執行? 一、先看Java靜態方法,靜態變數 http://www.cnblogs.com/winterfells/p/7906078.html 靜態代碼塊 在類中,可以將某一塊代碼聲明為靜態的,這樣的程式塊叫靜態初始化段。靜態代碼塊的一般形式如下: 編譯通過後,用 ...
  • 上邊有字元串複製直接使用賦值號。 string1=string2; 實際上他執行的是什麼操作? strcpy(string1,string2); ...
  • 首先題主說的20%我不知道從哪方面去理解。接下來我會將自己多年來工作中會經常使用到的技術列出來。 1.html、css 2.java工作原理(jvm) 3.java語法、數據結構和演算法 4.java語言特性(封裝、繼承、多態、抽象) 5.java設計模式(在開發中會經常用到) 6.java反射機制( ...
  • 寫在前面: 對於可移動的列表框,ligerui中也對其進行了封裝,可以直接照著demo拿來用,不過那都是直接在頁面上靜態初始化的數據,那麼如何從後臺獲取? 前面有了對ligerui的一些組件的使用經驗後,在這裡其實 對於從後臺獲取數據在前臺頁面進行顯示,都大同小異。也不是很難。 即要麼是在liger ...
  • 重載是指,一個類中定義了一個成員方法後,通過修改參數個數、參數類型或參數順序,重新實現該方法,則這兩個方法互為對方的重載方法。 重寫是指,子類重新實現父類的成員方法。 重載後的方法,與原方法相比: (1).方法名相同,參數個數、參數類型及參數順序至少有一個不同; (2).返回值類型與訪問許可權修飾符可 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...