1. 程式人生 > >Java,compareTo、compare方法的空指標異常的解析

Java,compareTo、compare方法的空指標異常的解析

//        Double d1 = 0.2;
//        Double d2 = 0.3;
//        System.out.println(d1.compareTo(d2)); //-1

//        Double d1 = null;
//        Double d2 = 0.3;
//        System.out.println(d1.compareTo(d2)); //NullPointerException

//        Double d1 = 0.2;
//        Double d2 = null;
//        System.out.println(d1.compareTo(d2)); //NullPointerException
//-------------------------------------------------------------------------
//        d1.compareTo(d2)最後呼叫的還是Double.compare(d1,d2)方法,
//        public int compareTo(Double anotherDouble) {
//            return Double.compare(value, anotherDouble.value);
//        }

//        compare方法使用的也是 < > 比較 。
//        最終的原因就是空值使用< > 比較時會報NullPointerException
//        public static int compare(double d1, double d2) {
//            if (d1 < d2)
//                return -1;           // Neither val is NaN, thisVal is smaller
//            if (d1 > d2)
//                return 1;            // Neither val is NaN, thisVal is larger
//            ........
//        }
//        compareTo、compare方法在Integer、 Float、 Double、 Long 等多個類中都存在,都可以使用
//-------------------------------------------------------------------------

//        Double d1 = 0.2;
//        Double d2 = null;
//        System.out.println(Double.compare(d1, d2)); //NullPointerException

        Double d1 = 0.2;
        Double d2 = null;
        System.out.println( d1 < d2 ); //NullPointerException
System.out.println(d2 != 0.3);//NullPointerException



相關推薦

Java,compareTocompare方法指標異常解析

// Double d1 = 0.2; // Double d2 = 0.3; // System.out.println(d1.compareTo(d2));

關於ssm中java.lang.nullpointerexception的一個指標異常問題的解決方法

在ssm整合的時候,將專案部署到tomcat,卻在controller類中 的方法呼叫service內的方法時提示空指標異常,同理service內 在呼叫mapper 介面的方法時也提示空指標異常,經過分析知道了時itemsdao沒有注入到spring的原因,注入後發現問題得

Java 動態編譯時出現指標異常

如題:問題原因檢視該播客:http://www.cnblogs.com/fangwenyu/archive/2011/10/12/2209051.html解決方法就是將java/jdk/tools.jar檔案拷貝到java/jre/lib下面。我安裝java的時候將檔案分開了

Java中equals方法造成指標異常的原因

問題: 當查詢已修改的與未修改的做比較的時候,之前為null的值呼叫equals方法與其他值做比較的時候,會導致丟擲空指標異常 反思: 為了避免記憶體溢位,我們在無需類外呼叫的方法前,一般不加static關鍵字(因為靜態方法會常駐記憶體,其生存週期與整個專案的生存週期是一致的)所以,我們

java.lang.NullPointerException指標異常處理方法

這個異常大家肯定都經常遇到,異常的解釋是 “程式遇上了空指標 “,簡單地說就是呼叫了未經初始化的物件或者是不存在的物件,這個錯誤經常出現在建立圖片,呼叫陣列這些操作中,比如圖片未經初始化,或者圖片建立時的路徑錯誤等等。對陣列操作中出現空指標,很多情況下是一些剛開始學習程式設計

Java中equals方法造成指標異常的原因及解決方案

前言 博主最近在做一個專案的除錯工作,期間遇到了一個會導致丟擲空指標異常的小問題,說它是小問題,是因為真的只是在寫程式碼的時候注意一下就好了,但是這裡還要寫一個部落格,就是為了剖析這個問題,然後給自己做個備忘,也給看部落格的各位提個醒。 正文 bug描

Java連載35-類總結指標異常

一、總結 1.棧記憶體中主要儲存的是方法體中的區域性變數 2.物件內部有例項變數,例項變數儲存在堆記憶體中 3.變數分類:區域性變數(方法體中宣告);成員變數(方法體外宣告) 例項變數(前邊修飾符沒有static)靜態變數(前邊的修飾符中有static) 4.靜態變數儲存在方法區記憶體中。 5.三塊記憶體中變

java 指標異常

一、空指標異常產生的主要原因: 1、當一個物件不存在時又呼叫其方法會產生異常obj.method() // obj物件不存在; 2、當訪問或修改一個物件不存在的欄位時會產生異常obj.method() // method方法不存在; 3、字串變數未初始化;  4、介面型別的

java指標異常java.lang.NullPointException

一.什麼是java空指標異常     我們都知道java是沒有指標的,這裡說的"java指標"指的就是java的引用,我們不在這裡討論叫指標究竟合不合適,而只是針對這個異常本身進行分析。空指標就是空引用,java空指標異常就是引用本身為空,卻呼叫了方法,這個時候就會出現空指標異

指標異常物件呼叫成員屬性或者是成員方法,增強for迴圈,自動拆箱)

什麼時候會出現空指標異常? 呼叫一個空物件(null)的成員屬性或者是成員方法的時候回出現空指標異常 演示: package hello_java; public class Test { public static void main(String[] ar

Java物件指標異常

創作不易,請勿抄襲,轉載請註明出處。如有疑問,請加微信 wx15151889890,謝謝。 [本文連結:]https://blog.csdn.net/wx740851326/article/details/https://blog.csdn.net/wx740851326/article

Spring4.0.6 +Quartz 2.2.1動態新增修改刪除關閉定時任務(可結合資料庫以及指標異常問題的解決)

不懂定時器的可以閱讀這位作者的文章:Quartz 2.2 的實現原理和執行過程:http://blog.csdn.net/xlxxcc/article/details/52104463 spring配置 <!-- 定時器 --> <!-- 這個類用來做需要完成的業務--&

關於Java指標異常的幾種情況的總結

1:NullPointerException由RuntimeException派生出來,是一個執行級別的異常。意思是說可能會在執行的時候才會被丟擲,而且需要看這樣的執行級別異常是否會導致你的業務邏輯中斷。  2:空指標異常發生在物件為空,但是引用這個物件的方法。例如: String s =

Scala操作Hbase指標異常java.lang.NullPointerException處理

Hbase版本:Hortonworks Hbase  1.1.2 問題描述: 使用Scala操作Hbase時,發生空指標異常(java.lang.Runtime

指標異常,算得上是一個簡單低階的錯誤吧 java.lang.NullPointerException: null

#今天早上在寫程式碼的時候突然出現了一個空指標異常,這種空針異常在實際開發過程中是完全可以避免出錯的! 實際部分程式碼如下: @PostMapping("/upload") public RestResult uploadExcelModel(HttpServ

java碎片整理之Boolean變數和null的運算報指標異常

  把Boolean變數的初始為null,在與其他Boolean變數運算時,有以下情況: 1、||運算時,如果Boolean變數值為true並且在左邊,變數值為null型別的在右邊,編譯不會報錯,執行時不會報空指標異常,會輸出左邊的Boolean變數值true,如果Boolean變數值

javacompareTocompare方法之比較

這兩個方法經常搞混淆,現對其進行總結以加深記憶。 compareTo(Object o)方法是java.lang.Comparable介面中的方法,當需要對某個類的物件進行排序時,該類需要實現Comparable介面的,必須重寫public int compar

多執行緒指標異常 Exception in thread "AsyncTask2" Exception in thread "AsyncTask1" java.lang.NullPointerExce

寫了一個多執行緒方法,呼叫一個單執行緒不報錯的方法,一直在拋Exception in thread "AsyncTask2" Exception in thread "AsyncTask1" java.

Java中如何避免指標異常

這個問題對於我來說是一個很常見的問題,這也是由初級程式設計師成長到中級程式設計師的時候經常會遇到的問題。程式設計師不知道或不信任正在使用的約定,並且小心的檢查著null。還有當程式設計師寫程式碼的時候,總是會依賴於通過返回空(NULL)來表明某些意義,因此需要呼叫者去檢查Null。換種方式來

abp 使用OAuthBearerAuthenticationOptions物件裡屬性AccessTokenFormat對應的Protect方法指標異常解決方法

由於要自己要在自定義的service類定義一個和登陸相關的介面,所有需要模仿api下面的AccountController登陸並返回ticket,但是對應的AccessTokenFormat老是報空指標異常,下面說說我做的步驟以及解決方法。   abp原有Api解決方案下面的使用程