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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...