導航:首頁 > 編程語言 > java判斷浮點數

java判斷浮點數

發布時間:2023-01-22 05:35:20

1. java怎樣判斷一個字元串是否為整數和浮點數

如果String 僅僅是整數和浮點那就很好判斷了
boolean isInt(String str)
{
try {
int i = Integer.parseInt(str) ;
System.out.println("你輸入的整數是"+ i) ;
return true ;
} catch (NumberFormatException e) {
System.out.println("你輸入的不是整數。。。。。。。可能是浮點數") ;
return false ;
}
//有什麼不懂會是新要求 hi我

2. 第04部分:浮點數類型

在Java中,實數使用float和double數據類型表示。float類型是32位單精度浮點數,double類型是64位雙精度浮點數。這兩種類型都符合IEEE 754-1985標准。這個標准規定了浮點數的格式和運算方式。

浮點數可以以字面量的形式寫在Java程序中,其格式為一些可選數字,後面跟一個小數點和一些數字,例如:

浮點數字面量還可以使用指數形式(科學計數法)表示。其格式為一個數後面跟著字母e或者E和一個數,第二個數表示10的次方,是第一個數的乘數。例如:

默認情況下,浮點數都是double類型,若想在程序中使用float類型,要在數字後面加上f或者F,例如:

浮點數字字面量不能使用十六進制,二進制或者八進製表示。

由於本質上的限制,大多數實數都不能使用有限的位數進行精確表示,因此要記住,float和double類型都只能表示實際值的近似值。float類型是32位近似值,至少有6個有效數字,double是64位近似值,至少有15個有效數字。

除了表示普通的數字之外,float和double還能表示四個特殊的值:正無窮大,負無窮大,零和NaN。如果浮點數運算的結果超出了float或double能表示的范圍上線得到的是無窮大。如果浮點數的運算結果超出了float或double能表示的范圍下限,得到的是零。

Java的浮點類型區分正零和負零,具體是哪個值取決於從哪個方向出現的下溢,在實際使用中,正零和負零的表現基本一樣。最後一種特殊的浮點數NaN,是「Not-a-Number」的簡稱,表示「不是數字」。如果浮點數運算不合法,例如0.0/0.0,得到的就是NaN,例如:

Java浮點數類型能處理到無窮大的上溢以及到零的下溢,因此浮點數運算從不拋出異常,就算執行非法運算也沒事,例如零除以零,或者計算負數的平方根。

float和double基本類型都有對應的包裝類,分別為Float和Double。這兩個類都定義了一些有用的常量,如:MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY 和 NaN。

無窮大浮點數的表現和設想的一樣,例如,無窮大之間的加減運算得到的還是無窮大,負零的表現幾乎和正零一樣。而且實際上,相當判斷運算符==會告訴你,負零和正零是相等的,區分正零和負零還有普通的零有一種方法,把它作為被除數:1.0/0.0得到的是正無窮大,但是1.0/負零得到的是負無窮大。因為NaN不是數字,所以==運算符會告訴我們它不等於任何其它數字,甚至包括它自己,若是想檢查某個float或者double值是否為NaN,必須使用 Float.isNaN() 或 Double.isNaN() 方法。

3. java中如何判斷一個浮點數是float型的還是double的

java中常量 的浮點數字就被認為是double型的,而且不能直接賦給float型的變數。。像float a=1.2; 這樣的編繹直接出錯。。要寫成float a=1.2f; 才行。

4. JAVA中怎麼判斷兩個浮點數相等

一般情況下: 浮點數的相等 ,可以使用 == 進行比較 . 但是浮點數, 畢竟涉及到精度問題, 如果要考慮精度的問題 ,那麼可以使用BigDecimal 類

參考代碼

publicclassTest{
publicstaticvoidmain(String[]args){
System.out.println(0.1*3==0.3);//false
System.out.println(0.1*3);//0.30000000000000004
System.out.println(0.3d);//0.3

BigDecimalb1=newBigDecimal("0.1");
BigDecimalb2=newBigDecimal("3");
BigDecimalb3=newBigDecimal("0.3");
BigDecimalb4=b1.multiply(b2);//乘法
if(b4.compareTo(b3)==0){//如果兩者比較結果為0,那麼就是相等
System.out.println("相等");
}else{
System.out.println("不等");
}
}
}

5. 用java編寫實現從鍵盤輸入一個字元串,判斷其是否為浮點數

問題
• can not read xxx.java
• 怎樣讓char類型的東西轉換成int類型?
• 我的applet原先好好的, 一放到web server就會有問題,為什麼?
• 怎樣在 Applet中用某個圖形塗滿整個背景?
• 怎樣比較兩個類型為String的字元串?
• 怎樣將浮點數(float)相加 ? Float 好像沒有辦法?
• 如何將字串String轉換成整數int?
• 如何將整數 int 轉換成字串 String?
• 哪位可以推薦幾個比較好的java/jsp論壇?
• JAVA的環境變數 請教一下哪位高手知道JAVA的環境變數怎麼配置?讓它在DOS中運行,我下載的版本是jdk1.5.0_01,系統屬性環境變數中有一個用戶變數和系統變數,該配置在哪個變數中呢?
• C++和JAVA的分別?
• 初學java用那本書好
• 我想學習JAVA編程語言,但不知從啥開始?
• 初學JAVA的人看書參考書最好
• 作用域public,private,protected,以及不寫時的區別
• ArrayList和Vector的區別,HashMap和Hashtable的區別
• char型變數中能不能存貯一個中文漢字?為什麼?
• 繼承時候類的執行順序問題,一般都是選擇題,問你將會列印出什麼?
• 談談final, finally, finalize的區別。
• Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?
• Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)
• &和&&的區別
• HashMap和Hashtable的區別?
• Collection 和 Collections的區別?
• 什麼時候用assert?
• GC是什麼? 為什麼要有GC? (基礎)?
• String s = new String("xyz");創建了幾個String Object?
• Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
• short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?
• Java有沒有goto?
• 數組有沒有length()這個方法? String有沒有length()這個方法?
• Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?
• Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?
• abstract class和interface有什麼區別?
• abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
• 構造器Constructor是否可被override?
• 是否可以繼承String類?
• 當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
• try 里的code會不會被執行,什麼時候被執行,在return前還是後?
• 當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這里到底是值傳遞還是引用傳遞?
• swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

回答
• can not read xxx.java

首先看看你的文件是否保存為.java.txt的類型了(右點文件看屬性里的擴張名) 重新保存 記得此時要把文件名.java加上引號 保存 。

返回頂部

--------------------------------------------------------------------------------

• 怎樣讓char類型的東西轉換成int類型?

char c = 'A';

int i = c;

//反過來只要作強制類型轉換就行了

c = (char) I;

返回頂部

--------------------------------------------------------------------------------

• 我的applet原先好好的, 一放到web server就會有問題,為什麼?

一般來說,從以下方向試試:

確定class文件的格式沒錯——已經編譯過,也沒有損壞的情形;

確定所有用到的class文件放到web server上,少一個都不行;

確定所有的文件名和class名稱一致,特別檢查大小寫有無差錯;

如果程序中用到package,web server上的目錄就要當心了。譬如您在class中宣告了一個叫COM.foo.util的package,那麼web server的applet codebase目錄底下就非得有 COM/foo/util這個子目錄不可。(注意目錄名稱也有大小寫之分);

web server上的文件檔案應該事先設定好。(尤其是search,read和execute許可權)

返回頂部

--------------------------------------------------------------------------------

• 怎樣在 Applet中用某個圖形塗滿整個背景?

在背景建立 Panel 或 Canvas, 然後用圖形填滿它。

返回頂部

--------------------------------------------------------------------------------

• 怎樣比較兩個類型為String的字元串?

在兩個對象之間使用 "==",會將「兩個對象是否有同一reference」的結果傳回。也就是說, 這等同於「兩個對象是否擁有同一地址 (address)」,或者「兩個對象物件是否為同一對象」。如果您的意思是判斷兩個字元串的內容是否相同,那麼應該使用以下的方法才對:

if (s1.equals(s2) )

or if (s1.equalsIgnoreCase(s2) )

or if (s1.startsWith(s2) )

or if (s1.endsWith(s2) )

or if (s1.regionMatches(s1_offset, s2, s2_offset, length) )

or if (s1.compareTo(s2) <0)

返回頂部

--------------------------------------------------------------------------------

• 怎樣將浮點數(float)相加 ? Float 好像沒有辦法?

我猜想您的程式大概寫成這樣:

Float One;

Float Two;

Float Hard = One + Two;

請注意 float 和 Float 是不同的,前者是 Java 基本類型之一, 而後者卻是class。您應該將源代碼改為:

float One;

float Two;

float Hard = One + Two;



Float One = new Float(1.0);

Float Two = new Float(2.0);

Float Hard = new Float(One.floatValue() + Two.floatValue());

返回頂部

--------------------------------------------------------------------------------

• 如何將字串String轉換成整數int?

1)int i = Integer.parseInt([String]); 或

i = Integer.parseInt([String],[int radix]);

2)int i = Integer.valueOf(my_str).intValue();

注: 字串轉成Double, Float, Long的方法大同小異。

返回頂部

--------------------------------------------------------------------------------

• 如何將整數 int 轉換成字串 String?

有三種方法:

1)String s = String.valueOf(i);

2)String s = Integer.toString(i);

3)String s = "" + i;

註:Double, Float, Long 轉成字串的方法大同小異。

返回頂部

--------------------------------------------------------------------------------

• 哪位可以推薦幾個比較好的java/jsp論壇?

這個網站是我最近才發現的,雖然內容不多,但是提供的相關java工具挺齊全。還有就是裡面提供了java教學視頻錄象的免費下載,好像一兩周更換一段。個人覺得挺適合初學者的,尤其是那個classpath的設置,講的很透徹,大家有空可以看一看。

java官方站點(英文)

要想了解最新的java動態,下載最新的java相關,比如j2se、j2ee、j2se的最新jdk版本就來這里吧。

java中文站

這個可能大家都知道,不用說了,他提供的java資源是最豐富的。注冊論壇是免費的,還送積分,用積分可以下載軟體和電子書等,如果積分用完了,就需要自己發表一些文章來賺新的積分。

中文java網站

跟上面站點類似的一個站,宗旨就是:為java愛好者服務。值得一看!

鋒網

綜合性的java網站,內含「下載中心」、「教程教學」等欄目。

返回頂部

--------------------------------------------------------------------------------

• JAVA的環境變數
請教一下哪位高手知道JAVA的環境變數怎麼配置?讓它在DOS中運行,我下載的版本是jdk1.5.0_01,系統屬性環境變數中有一個用戶變數和系統變數,該配置在哪個變數中呢?

Windows下JAVA環境變數的設置祥解
Windows下JAVA用到的環境變數主要有3個,JAVA_HOME、CLASSPATH、PATH。下面逐個分析。
JAVA_HOME指向的是JDK的安裝路徑,如x:\JDK_1.4.2,在這路徑下你應該能夠找到bin、lib等目錄。值得一提的是,JDK的安裝路徑可以選擇任意磁碟目錄,不過建議你放的目錄層次淺一點,如果你放的目錄很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx……
那麼,下面的步驟和以後的應用你都要受累了,呵呵。設置方法:
JAVA_HOME=x:\JDK_1.4.2
PATH環境變數原來Windows裡面就有,你只需修改一下,使他指向JDK的bin目錄,這樣你在控制台下面編譯、執行程序時就不需要再鍵入一大串路徑了。設置方法是保留原來的PATH的內容,並在其中加上%JAVA_HOME%\bin
(注,如果你對DOS批處理不了解,你可能不明白%%引起來的內容是什麼意思;其實這里是引用上一步設定好的環境變數JAVA_HOME,你寫成x:\JDK_1.4.2也是可以的;你可以打開一個控制台窗口,輸入echo
%JAVA_HOME%來看一下你的設置結果) :
PATH=%JAVA_HOME%\bin;%PATH%
同樣,%PATH%是引用以前你設置的PATH環境變數,你照抄以前的值就行了。
CLASSPATH環境變數我放在最後面,是因為以後你出現的莫名其妙的怪問題80%以上都可能是由於CLASSPATH設置不對引起的,所以要加倍小心才行。
CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar
首先要注意的是最前面的".\;",如果你看不清,我給你念念——句點反斜杠分號。這個是告訴JDK,搜索CLASS時先查找當前目錄的CLASS文件——為什麼這樣搞,這是由於LINUX的安全機制引起的,LINUX用戶很明白,WINDOWS用戶就很難理解(因為WINDOWS默認的搜索順序是先搜索當前目錄的,再搜索系統目錄的,再搜索PATH環境變數設定的)
,所以如果喜歡盤根究底的朋友不妨研究一下LINUX。
為什麼CLASSPATH後面指定了tools.jar這個具體文件?不指定行不行?顯然不行,行的話我還能這么羅索嘛!:)
這個是由java語言的import機制和jar機制決定的,你可以查資料解決。

呵呵,具體的設定方法: win2k\xp用戶右鍵點擊我的電腦->屬性->高級->環境變數,修改下面系統變數那個框里的值就行了。
win9x用戶修改autoexec.bat文件,在其末尾加入:
set JAVA_HOME=x:\JDK_1.4.2
set PATH=%JAVA_HOME%\bin;%PATH%
set CLASSPATH=.\;%JAVA_HOME%\lib\tools.jar

返回頂部

--------------------------------------------------------------------------------

• C++和JAVA的分別?

JAVA和C++都是面向對象語言。也就是說,它們都能夠實現面向對象思想(封裝,繼乘,多態)。而由於c++為了照顧大量的C語言使用者,

而兼容了C,使得自身僅僅成為了帶類的C語言,多多少少影響了其面向對象的徹底性!JAVA則是完全的面向對象語言,它句法更清晰,規模更小,更易學。它是在對多種程序設計語言進行了深入細致研究的基礎上,據棄了其他語言的不足之處,從根本上解決了c++的固有缺陷。

Java和c++的相似之處多於不同之處,但兩種語言問幾處主要的不同使得Java更容易學習,並且編程環境更為簡單。

我在這里不能完全列出不同之處,僅列出比較顯著的區別:

1.指針

JAVA語言讓編程者無法找到指針來直接訪問內存無指針,並且增添了自動的內存管理功能,從而有效地防止了c/c++語言中指針操作失誤,如野指針所造成的系統崩潰。但也不是說JAVA沒有指針,虛擬機內部還是使用了指針,只是外人不得使用而已。這有利於Java程序的安全。

2.多重繼承

c++支持多重繼承,這是c++的一個特徵,它允許多父類派生一個類。盡管多重繼承功能很強,但使用復雜,而且會引起許多麻煩,編譯程序實現它也很不容易。Java不支持多重繼承,但允許一個類繼承多個介面(extends+implement),實現了c++多重繼承的功能,又避免了c++中的多重繼承實現方式帶來的諸多不便。

3.數據類型及類

Java是完全面向對象的語言,所有函數和變數部必須是類的一部分。除了基本數據類型之外,其餘的都作為類對象,包括數組。對象將數據和方法結合起來,把它們封裝在類中,這樣每個對象都可實現自己的特點和行為。而c++允許將函數和變數定義為全局的。此外,Java中取消了c/c++中的結構和聯合,消除了不必要的麻煩。

4.自動內存管理

Java程序中所有的對象都是用new操作符建立在內存堆棧上,這個操作符類似於c++的new操作符。下面的語句由一個建立了一個類Read的對象,然後調用該對象的work方法:

Read r=new Read();
r.work();

語句Read r=new Read();在堆棧結構上建立了一個Read的實例。Java自動進行無用內存回收操作,不需要程序員進行刪除。而c十十中必須由程序貝釋放內存資源,增加了程序設計者的負扔。Java中當一個對象不被再用到時,無用內存回收器將給它加上標簽以示刪除。JAVA里無用內存回收程序是以線程方式在後台運行的,利用空閑時間工作。

5.操作符重載

Java不支持操作符重載。操作符重載被認為是c十十的突出特徵,在Java中雖然類大體上可以實現這樣的功能,但操作符重載的方便性仍然丟失了不少。Java語言不支持操作符重載是為了保持Java語言盡可能簡單。

6.預處理功能

Java不支持預處理功能。c/c十十在編譯過程中都有一個預編澤階段,即眾所周知的預處理器。預處理器為開發人員提供了方便,但增加丁編譯的復雜性。JAVA虛擬機沒有預處理器,但它提供的引入語句(import)與c十十預處理器的功能類似。

7. Java不支持預設函數參數,而c十十支持

在c中,代碼組織在函數中,函數可以訪問程序的全局變數。c十十增加了類,提供了類演算法,該演算法是與類相連的函數,c十十類方法與Java類方法十分相似,然而,由於c十十仍然支持c,所以不能阻止c十十開發人員使用函數,結果函數和方法混合使用使得程序比較混亂。

Java沒有函數,作為一個比c十十更純的面向對象的語言,Java強迫開發人員把所有例行程序包括在類中,事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。

8 字元串

c和c十十不支持字元串變數,在c和c十十程序中使用Null終止符代表字元串的結束,在Java中字元串是用類對象(strinR和stringBuffer)來實現的,這些類對象是Java語言的核心,用類對象實現字元串有以下幾個優點:

(1)在整個系統中建立字元串和訪問字元串元素的方法是一致的;

(2)J3陽字元串類是作為Java語言的一部分定義的,而不是作為外加的延伸部分;

(3)Java字元串執行運行時檢空,可幫助排除一些運行時發生的錯誤;

(4)可對字元串用「十」進行連接操作。

9「goto語句

「可怕」的goto語句是c和c++的「遺物」,它是該語言技術上的合法部分,引用goto語句引起了程序結構的混亂,不易理解,goto語句子要用於無條件轉移子程序和多結構分支技術。鑒於以廣理由,Java不提供goto語句,它雖然指定goto作為關鍵字,但不支持它的使用,使程序簡潔易讀。

l0.類型轉換

在c和c十十中有時出現數據類型的隱含轉換,這就涉及了自動強制類型轉換問題。例如,在c十十中可將一浮點值賦予整型變數,並去掉其尾數。Java不支持c十十中的自動強制類型轉換,如果需要,必須由程序顯式進行強制類型轉換。

11.異常

JAVA中的異常機制用於捕獲例外事件,增強系統容錯能力

try{//可能產生例外的代碼
}catch(exceptionType name){
//處理
}

其中exceptionType表示異常類型。而C++則沒有如此方便的機制。
參考資料:

返回頂部

--------------------------------------------------------------------------------

• 初學java用那本書好

學習一門新的知識,不可能指望只看一本,或者兩本書就能夠完全掌握。需要有一個循序漸進的閱讀過程。我推薦Oreilly出版的Java系列書籍。

在這里我只想補充一點看法,很多人學習Java是從《Thinking in Java》這本書入手的,但是我認為這本書是不適合初學者的。我認為正確的使用這本書的方法應該是作為輔助的讀物。《Thinking in Java》並不是在完整的介紹Java的整個體系,而是一種跳躍式的寫作方法,是一種類似tips的方法來對Java很多知識點進行了深入的分析和解釋。

對於初學者來說,最好是找一本Java入門的書籍,但是比較完整的循序的介紹Java的語法,面向對象的特性,核心類庫等等,在看這本書的同時,可以同步來看《Thinking in Java》,來加深對Java的理解和原理的運用,同時又可以完整的了解Java的整個體系。

對於Java的入門書籍,蔡學鏞推薦的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(針對C++背景)》,我並沒有看過這兩本書。其實我覺得電子工業出版社的《Java 2編程詳解》或者《Java 2從入門到精通》就很不錯。

在所有的Java書籍當中,其實最最有用的,並不是O'reilly的 Java Serials,真正最最有用處是JDK的Documentation!幾乎你想獲得的所有的知識在Documentation裡面全部都有,其中最主要的部分當然是Java基礎類庫的API文檔,是按照package來組織的,對於每一個class都有詳細的解釋,它的繼承關系,是否實現了某個介面,通常用在哪些場合,還可以查到它所有的public的屬性和方法,每個屬性的解釋,意義,每個方法的用途,調用的參數,參數的意義,返回值的類型,以及方法可能拋出的異常等等。可以這樣來說,所有關於Java編程方面的書籍其實都不過是在用比較通俗易懂的語言,和良好的組織方式來介紹Documentation裡面的某個package裡麵包含的一些類的用法而已。所以萬變不離其宗,如果你有足夠的能力來直接通過Documentation來學習Java的類庫,那麼基本上就不需要看其他的書籍了。除此之外,Documentation也是編程必備的手冊,我的桌面上有三個Documentation的快捷方式,分別是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了這個三個Documentation,什麼其他的書籍都不需要了。

對於Java Web 編程來說,最核心的是要熟悉和掌握HTTP協議,這個就和Java無關了,在熟悉HTTP協議之後,就需要熟悉Java的實現HTTP協議的類庫,也就是Servlet API,所以最重要的東西就是Servlet API。當然對於初學者而言,直接通過Servlet API來學習Web編程有很大的難度,我推薦O'reilly的《Java Server Pages 》這本書來學習Web 編程。

EJB的書籍當中,《Enterprise JavaBeans, 2nd Edition》是一本很不錯的書, EJB的學習門檻是比較高,入門很難,但是這本書完全降低了學習的難度,特別重要的一點是,EJB的學習需要結合一種App Server的具體實現,所以在學習EJB的同時,必須同步的學習某種App Server,而這本書相關的出了三本書,分別是Weblogic6.1,Websphere4.0和JBoss3.0上面部署書中例子的實做。真是既有理論,又有實踐。在學習EJB的同時,可以邊看邊做,EJB的學習會變得很輕松。

但是這本書也有一個問題,就是版本比較舊,主要講EJB1.1規范和部分EJB2.0的規范。而Ed Roman寫的《Mastering EJB 2.0》這本書完全是根據EJB2.0規范寫的,深入淺出,覆蓋了EJB編程的各個方面,並且還有很多編程經驗tips,也是學習EJB非常推薦的書籍之一。

如果是結合Weblogic來學習J2EE的話,《J2EE應用與BEA Weblogic Server》絕對是首選讀物,雖然是講述的Weblogic6.0,仍然值得購買,這本書是BEA官方推薦的教材,作者也是BEA公司的工程師。現在中文版已經隨處可見了。這本書結合Weblogic介紹了J2EE各個方面的技術在Weblogic平台上的開發和部署,實踐指導意義非常強。

在掌握了Java平台基礎知識和J2EE方面的知識以後,更進一步的是學習如何運用OO的方法進行軟體的設計,那麼就一定要學習「設計模式」。Sun公司出版了一本《J2EE核心模式》,是每個開發Java企業平台軟體的架構師必備的書籍。這本書全面的介紹了J2EE體系架構的各種設計模式,是設計師的必讀書籍。

Java Learning Path(三)過程篇

每個人的學習方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學習方法。因為我學習Java是完全自學的,從來沒有問過別人,所以學習的過程基本上完全是自己摸索出來的。我也不知道這種方法是否是比較好的方法,只能給大家提供一點參考了。

學習Java的第一步是安裝好JDK,寫一個Hello World,? 其實JDK的學習沒有那麼簡單,關於JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何載入Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學習Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進行了深入的探討。

第二步是學習Java的語法。Java的語法是類C++的,基本上主流的編程語言不是類C,就是類C++的,沒有什麼新東西,所以語法的學習,大概就是半天的時間足夠了。唯一需要注意的是有幾個不容易搞清楚的關鍵字的用法,public,protected,private,static,什麼時候用,為什麼要用,怎麼用,這可能需要有人來指點一下,我當初是完全自己琢磨出來的,花了很久的時間。不過後來我看到《Thinking in Java》這本書上面是講了這些概念的。

第三步是學習Java的面向對象的編程語言的特性的地方。比如繼承,構造器,抽象類,介面,方法的多態,重載,覆蓋,Java的異常處理機制。對於一個沒有面向對象語言背景的人來說,我覺得這個過程需要花很長很長時間,因為學習Java之前沒有C++的經驗,只有C的經驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反復的揣摩,修改,嘗試,把那幾章內容反復的看過來,看過去,看了不下5遍,才徹底領悟了。不過我想如果有C++經驗的話,應該一兩天時間足夠了。那麼在這個過程中,可以多看看《Thinking in Java》這本書,對面向對象的講解非常透徹。可惜的是我學習的時候,並沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學會的。

第四步就是開始熟悉Java的類庫。Java的基礎類庫其實就是JDK安裝目錄下面jre\lib\rt.jar這個包。學習基礎類庫就是學習rt.jar。基礎類庫裡面的類非常非常多。據說有3000多個,我沒有統計過。但是真正對於我們來說最核心的只有4個,分別是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;

這四個包的學習,每個包的學習都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學習。我覺得比較好的學習方法是這樣的:
首先要通讀整個package的框架,了解整個package的class,interface,exception的構成,最好是能夠找到介紹整個包框架的文章。這些專門介紹包的書籍的前幾章應該就是這些總體的框架內容介紹。

對包整體框架的把握並不是要熟悉每個類的用法,記住它有哪些屬性,方法。想記也記不住的。而是要知道包有哪些方面的類構成的,這些類的用途是什麼,最核心的幾個類分別是完成什麼功能的。我在給人培訓的時候一般是一次課講一個包,所以不可能詳細的介紹每個類的用法,但是我反復強調,我給你們講這些包的不是要告訴你們類的方法是怎麼調用的,也不要求你們記住類的方法調用,而是要你們了解,Java給我們提供了哪些類,每個類是用在什麼場合,當我遇到問題的時候,我知道哪個類,或者哪幾個類的組合可以解決我的問題,That'all!,當我們具體寫程序的時候,只要你知道該用哪個類來完成你的工作就足夠了。編碼的時候,具體的方法調用,是邊寫代碼,邊查Documentation,所有的東西都在Documentation裡面,不要求你一定記住,實際你也記不住3000多個類的總共將近10萬個方法調用。所以對每個包的總體框架的把握就變得極為重要。

第五步,通過上面的學習,如果學的比較扎實的話,就打好了Java的基礎了,剩下要做的工作是掃清Documentation裡面除了上面4個包之外的其他一些比較有用處的類。相信進展到這一步,Java的自學能力已經被培養出來了,可以到了直接學習Documentation的水平了。除了要做GUI編程之外,JDK裡面其他會有用處的包是這些:
java.text.

6. java中如何判斷一個浮點數是float型的還是double的

java中常量
的浮點數字就被認為是double型的,而且不能直接賦給float型的變數。。像float
a=1.2;
這樣的編繹直接出錯。。要寫成float
a=1.2f;
才行。

7. JAVA中,怎麼用正則表達式判斷一個字元串的浮點數

String s="3123.1";
System.out.println(s.matches("[\\d]+\\.[\\d]+"));

"[\\d]+\\.[\\d]+"這個

8. java中整型數和浮點數怎麼用判斷

public class Test{
public static void main(String []args){
java.util.Scanner sca = new java.util.Scanner(System.in);
System.out.println("輸入一個數字");
double a = sca.nextDouble();
int b = (int)a;
int c = b;
if (c!=a){
System.out.println("輸入的是浮點型數字!");
}else{
System.out.println("輸入的是整型數字!");
}
}
}

閱讀全文

與java判斷浮點數相關的資料

熱點內容
騰訊伺服器如何上傳源碼 瀏覽:739
單片機的原理概述 瀏覽:508
火控pdf 瀏覽:267
如何復制雲伺服器centos環境 瀏覽:984
債權pdf 瀏覽:299
紅色番字的app怎麼下載 瀏覽:876
雲伺服器流程教課 瀏覽:702
中國農業銀行app怎麼沒有網 瀏覽:997
幾率表演算法 瀏覽:902
程序員理工科 瀏覽:708
企業郵箱登錄收件伺服器地址 瀏覽:558
計算機思維與演算法設計的重要性 瀏覽:664
linux刷新磁碟命令 瀏覽:76
我的世界如何查看伺服器種子pc 瀏覽:284
linuxlamp編譯安裝 瀏覽:609
枚舉演算法ppt 瀏覽:184
cmd查看進程命令 瀏覽:956
手機內怎麼刪除APP 瀏覽:834
魚群和鳥群演算法區別 瀏覽:93
pdf尺寸設置 瀏覽:211