<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java Home

    Java技術(shù)修煉中...
    posts - 20, comments - 22, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    今天參考課本寫了一個(gè)關(guān)于二進(jìn)制與十進(jìn)制轉(zhuǎn)換的程序,程序算法不難,但寫完后測試發(fā)現(xiàn)不論是二轉(zhuǎn)十還是十轉(zhuǎn)二,對(duì)于大于21億即超過整數(shù)范圍的數(shù)不能很好的轉(zhuǎn)換。都會(huì)變成0.
    參考書籍發(fā)現(xiàn)使用使用BigInteger可以解決這個(gè)問題。
    于是查找了下JDK,然后測試幾次終于寫成功了!
    使用心得如下:

    1,BigInteger屬于java.math.BigInteger,因此在每次使用前都要import 這個(gè)類。偶開始就忘記import了,于是總提示找不到提示符。

    2,其構(gòu)造方法有很多,但現(xiàn)在偶用到的有:
    BigInteger(String?val)
    ??????????將 BigInteger 的十進(jìn)制字符串表示形式轉(zhuǎn)換為 BigInteger。
    BigInteger(String?val, int?radix)
    ??????????將指定基數(shù)的 BigInteger 的字符串表示形式轉(zhuǎn)換為 BigInteger。
    如要將int型的2轉(zhuǎn)換為BigInteger型,要寫為BigInteger two=new BigInteger("2"); //注意2雙引號(hào)不能省略

    3,BigInteger類模擬了所有的int型數(shù)學(xué)操作,如add()==“+”,divide()==“-”等,但注意其內(nèi)容進(jìn)行數(shù)學(xué)運(yùn)算時(shí)不能直接使用數(shù)學(xué)運(yùn)算符進(jìn)行運(yùn)算,必須使用其內(nèi)部方法。而且其操作數(shù)也必須為BigInteger型。
    如:two.add(2)就是一種錯(cuò)誤的操作,因?yàn)?沒有變?yōu)锽igInteger型。

    4,當(dāng)要把計(jì)算結(jié)果輸出時(shí)應(yīng)該使用.toString方法將其轉(zhuǎn)換為10進(jìn)制的字符串,詳細(xì)說明如下:
    ?StringtoString()
    ??????????返回此 BigInteger 的十進(jìn)制字符串表示形式。
    輸出方法:System.out.print(two.toString());

    5,另外說明三個(gè)個(gè)用到的函數(shù)。???
    ?BigIntegerremainder(BigInteger?val)
    ??????????返回其值為 (this % val) 的 BigInteger。
    ?BigIntegernegate()
    ??????????返回其值是 (-this) 的 BigInteger。
    ?int???????compareTo(BigInteger?val)
    ??????????將此 BigInteger 與指定的 BigInteger 進(jìn)行比較。
    remainder用來求余數(shù)。
    negate將操作數(shù)變?yōu)橄喾磾?shù)。
    compare的詳解如下:

    compareTo

    public int compareTo(BigInteger?val)
    將此 BigInteger 與指定的 BigInteger 進(jìn)行比較。對(duì)于針對(duì)六個(gè)布爾比較運(yùn)算符 (<, ==, >, >=, !=, <=) 中的每一個(gè)運(yùn)算符的各個(gè)方法,優(yōu)先提供此方法。執(zhí)行這些比較的建議語句是:(x.compareTo(y) <op> 0),其中 <op> 是六個(gè)比較運(yùn)算符之一。

    指定者:
    接口 Comparable<BigInteger> 中的 compareTo
    參數(shù):
    val - 將此 BigInteger 與之比較的 BigInteger。
    返回:
    當(dāng)此 BigInteger 在數(shù)值上小于、等于或大于 val 時(shí),返回 -1,0,或 1。

    posted @ 2006-12-05 10:20 Yemoo'S Java Blog 閱讀(16432) | 評(píng)論 (4)編輯 收藏

    ??? 前些時(shí)間總是感到迷茫,不知道該學(xué)什么,也許是快要畢業(yè)的原因吧,我也開始盲目的學(xué)習(xí)開了,看到社會(huì)招聘這個(gè)那個(gè),于是乎就什么都想一股腦學(xué)完,JAVA,JSP,PHP,JS,ASP.NET.Wap.....結(jié)果可想而知,如此只能是什么也學(xué)不成,痛惜過去,現(xiàn)在偶完全確定了今后的學(xué)習(xí)方向---JAVA-->J2EE/ORACLE.
    ??? 從今天偶會(huì)經(jīng)常到這里來寫下偶的學(xué)習(xí)心的,痛補(bǔ)以前的過失。各位監(jiān)視偶啊!
    ??? 這里將見證偶從菜鳥變成老鳥的歷史過程!
    ??? 偶的目標(biāo)---第一流的JAVA程序員!!!--(人首先要自信,堅(jiān)定信念,才能成功!)

    posted @ 2006-12-05 09:39 Yemoo'S Java Blog 閱讀(1101) | 評(píng)論 (3)編輯 收藏

    這兩天看了java面向?qū)ο缶幊滩糠值脙?nèi)容,感覺有不少需要注意得地方:
    重要知識(shí)點(diǎn)總結(jié)如下:
    1,抽象,封裝,繼承,多態(tài)是面向?qū)ο蟪绦蛟O(shè)計(jì)中得四個(gè)特點(diǎn).
    2,面向?qū)ο蟮密浖_發(fā)大體分為:面向?qū)ο蟮姆治?面向?qū)ο蟮脑O(shè)計(jì),面向?qū)ο蟮膶?shí)現(xiàn).
    ?? 可概括為如下過程:分析用戶需求,從問題中抽取對(duì)象模型;細(xì)化模型,設(shè)計(jì)類,包括類的屬性和類間的
    ???相互關(guān)系,同時(shí)觀察是否有可以直接引用的已有類或部件;選定一種面向?qū)ο蟮木幊陶Z言,具體編碼實(shí)現(xiàn)
    ??上一階段類的設(shè)計(jì),并在開發(fā)過程中引入測試,完善整個(gè)解決方案.
    3,面向?qū)ο蟪绦蛟O(shè)計(jì)方法的優(yōu)點(diǎn)是:可重用性,可擴(kuò)展性,可管理性.
    4,類的定義:class前的修飾符分為訪問控制符和非訪問控制符兩大類.訪問控制符包括public和private.
    ?? 非訪問控制符包括abstract(抽象),final(最終).
    5,final類是最終類,是不能有子類的類.abstract和final不能同時(shí)修飾一個(gè)類,因?yàn)槌橄箢惐旧頉]有具體對(duì)象,
    ??? 需要派生出子類后在創(chuàng)建子類的對(duì)象.而最終類不可能有子類.
    6,創(chuàng)建對(duì)象的格式為: 類名 對(duì)象名=new 構(gòu)造方法(參數(shù));注意前面是類名后面是構(gòu)造方法.
    ??? 注意構(gòu)造方法沒有返回類型,也不能寫void,主要用于完成類對(duì)象的初始化工作,一般不能直接由編程
    ??? 直接調(diào)用,而是用new運(yùn)算符來調(diào)用.
    7,如果class前面由public修飾符,則默認(rèn)構(gòu)造方法的前面也應(yīng)該有public修飾符.
    8,類中有static修飾的域或方法,可用類名或?qū)ο竺L問,否則只能用對(duì)象名訪問.
    9,修飾域的訪問控制符可以是:public,private,protected,private protected.非訪問控制符可以是:
    ??? static,final,volatile(易失域)
    10,類變量的最本質(zhì)的特點(diǎn)是:他們是類的域,不屬于任何一個(gè)類的具體對(duì)象實(shí)例.不是保存在某個(gè)對(duì)象實(shí)例的內(nèi)存空間中,而是保存在類的內(nèi)存區(qū)域的公共存儲(chǔ)單元中.
    11,局部變量是在方法體內(nèi)聲明的,只有當(dāng)方法被調(diào)用時(shí)他們才存在,因而只能在本方法內(nèi)使用,不存在訪問控制符,也不能聲明為靜態(tài)變量(static),但可以聲明為final變量.局部變量必須初始化.
    12,修飾方法的訪問控制符可以是:public,private,protected,private protected,修飾方法的非訪問控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。
    13,用static修飾的變量或方法都為類成員,類成員可以用類名或?qū)嵗L問,實(shí)例成員只能用實(shí)例名來訪問。
    14,如果一個(gè)類中含有抽象方法,則此類必須為抽象類,如果抽象類的子類不為抽象類,則子類必須實(shí)現(xiàn)父類的所有抽象方法。抽象方法不能用靜態(tài)方法和最終方法。抽想方法只有函數(shù)頭的聲明,而用分號(hào)來替代方法體,沒有大括號(hào)。如abstract void abstractmethod();
    15,this變量用在一個(gè)方法的內(nèi)部,指向當(dāng)前
    對(duì)象,當(dāng)前對(duì)象指的是調(diào)用當(dāng)前正在執(zhí)行的方法的那個(gè)對(duì)象。super變量是直接指向父類的構(gòu)造方法,用來引用父類種的變量和方法。(由于他們指的是對(duì)象,所以不能通過它來引用類變量和類方法)
    16,如果要引用一個(gè)包中的多個(gè)類,可以用星號(hào)來代替。使用星號(hào)只能表示本層次的所有類,而不包括子層次下的類。所以經(jīng)常需要用兩條語句來引入兩個(gè)層次的類:import java.awt.*;import java.awt.event.*;
    17,訪問修飾符:
    --類中限定為public的成員可以被所有的類訪問。
    --類中先定位private的成員只能被這個(gè)類本身訪問。同一個(gè)類的不同對(duì)象可以訪問對(duì)方的private域變量或調(diào)用對(duì)方的域方法,這是因?yàn)樵L問保護(hù)控制在類的級(jí)別上,而不是對(duì)象的級(jí)別上。
    --類中限定為protected的成員可以被這個(gè)類本身,它的子類(包括同一個(gè)包中和不同包中的子類),以及同一個(gè)包中的其他類訪問。
    --用private protected修飾的成員可以被該類本身訪問,也可以被該類的所有子類訪問。
    --默認(rèn)訪問控制符規(guī)定只能被同一個(gè)包中的類訪問和引用,而不能被其他包的類訪問。即他的訪問權(quán)限是friendly。
    18,注意:
    ----abstract和private,static,final,native不能并列修飾同一個(gè)方法。
    ----abstract類中不能有private修飾的域和方法
    ----static方法不能處理非static的域。
    19,重載方法的參數(shù)必須不同,或者是參數(shù)個(gè)數(shù)不同,或者是參數(shù)類型不同。重載的多個(gè)方法必須返回
    相同的數(shù)據(jù)類型。
    20,在java中,一個(gè)類獲取某一接口定義的功能并不是通過直接繼承這個(gè)接口的屬性和方法來實(shí)現(xiàn)的。因?yàn)榻涌谥械膶傩远际浅A浚涌诘姆椒ǘ际菦]有方法體的抽象方法,沒有具體定義操作。

    posted @ 2006-07-22 23:55 Yemoo'S Java Blog 閱讀(365) | 評(píng)論 (0)編輯 收藏

    java支持在命令行下后面直接跟參數(shù):類似 程序名稱 參數(shù)1 [參數(shù)2] ....
    對(duì)于此類的程序,要注意的問題就是判斷后面參數(shù)個(gè)數(shù)和類型是否合法.如果程序需要的參數(shù)個(gè)數(shù)至少是兩個(gè),當(dāng)程序并沒有對(duì)參數(shù)長度進(jìn)行判斷時(shí)如果用戶值輸入一個(gè)參數(shù),則程序運(yùn)行會(huì)返回錯(cuò)誤!因此應(yīng)該加以判斷:方法如下:
    if(args.length<2){
    ???System.out.println("Usage: String1 String2");
    ?? System.exit(0);
    }else{
    ???........
    }

    posted @ 2006-07-21 22:08 Yemoo'S Java Blog 閱讀(503) | 評(píng)論 (0)編輯 收藏

    通過做本章最后得習(xí)題,發(fā)現(xiàn)如下問題需要偶以后注意:
    1,注意用戶輸入數(shù)據(jù)得合法性.
    ???如需要輸入一個(gè)正整數(shù)才有效,如果對(duì)用戶輸入不加判斷,當(dāng)用戶輸入一個(gè)負(fù)數(shù)時(shí)則會(huì)產(chǎn)生錯(cuò)誤得結(jié)果.因此應(yīng)該進(jìn)行簡單的判斷.
    int n=0;
    ?? while(n<1)
    ?????????n=讀取用戶輸入的值
    這樣即可保證用戶輸入得時(shí)一個(gè)正整數(shù).
    2,圖形界面中setText()得內(nèi)容必須時(shí)字符串型,因此在輸出一個(gè)數(shù)字型時(shí)應(yīng)該將其轉(zhuǎn)換成字符串型.
    ? 用Integer.toString(),Double.toString()方法即可.
    ? 例,int x=1;aa.setText(Integer.toString(x));
    3,圖形界面中捕獲哪個(gè)按鈕被按下得方法.
    ? 當(dāng)存在多個(gè)button按鈕時(shí),我們都用actionListener(this)來監(jiān)聽.那么如何判斷用戶點(diǎn)擊了哪個(gè)按鈕呢?
    ??
    用getSource()方法
    ?
    例:btn1.addActionListener(this);btn2.addActionListener(this);
    ????? public void actionPerformed(ActionEvent e){
    ????????????if(e.getSource()==btn1)
    ??????????????????//do anything
    ??????????? else if(e.getSource==btn2)
    ???????????????? //do other things
    ????? }

    posted @ 2006-07-21 18:56 Yemoo'S Java Blog 閱讀(328) | 評(píng)論 (0)編輯 收藏

    java數(shù)組對(duì)象有一個(gè)很重要的方法getChars();其方法描述為:

    public void getChars(int srcBegin,int srcEnd,char dst[],int dstBegin);? 將當(dāng)前字符串的部分字符復(fù)制到目標(biāo)自負(fù)數(shù)組dst中,從srcBegin(包含在內(nèi))到srcEnd(不包含在內(nèi))之間的字符復(fù)制到目標(biāo)字符數(shù)組中的字符從dstBegin位置開始存放.

    使用實(shí)例:
    String?ss="Visual?Basic";
    char?dst[]={'a','b','c','d'};

    ss.getChars(
    4,6,dst,2);
    System.out.println(dst);
    輸出結(jié)果為abal;

    注意數(shù)組參數(shù)只要寫入數(shù)組名即可,不要帶[],輸出可以直接用數(shù)組名輸出全部內(nèi)容.

    posted @ 2006-07-12 10:41 Yemoo'S Java Blog 閱讀(3102) | 評(píng)論 (2)編輯 收藏

    今天看了書本上的楊歸三角程序?qū)懛ê?自己試著去寫,但寫完后編譯總是出現(xiàn)一個(gè)錯(cuò)誤.
    先看代碼:
    ?1?public?class?YangHui{
    ?2?????public?static?void?main(String?args[]){
    ?3?????????final?int?max=10;
    ?4?????????int?a[][]=new?int[max][];
    ?5?????????for(int?i=0;i<a.length;i++){
    ?6?????????????int?a[i]=new?int[i+1];
    ?7?????????}
    ?8?????????a[0][0]=1;
    ?9?????????for(int?i=1;i<a.length;i++){
    10?????????????a[i][0]=1;
    11?????????????a[i][a[i].length-1]=1;
    12?????????????for(int?j=1;j<a[i-1].length;j++){
    13?????????????????a[i][j]=a[i-1][j-1]+a[i-1][j];
    14?????????????}
    15?????????}
    16?????????
    17?????????for(int?i=0;i<a.length;i++){
    18?????????????for(int?j=0;j<a[i].length;j++)
    19?????????????????System.out.print(a[i][j]+"\t");
    20?????????????System.out.println();
    21?????????}
    22?????}
    23?}

    JCreator返回如下錯(cuò)誤信息:
    --------------------------------------------------
    D:\Java\JCreator\YangHui.java:6: 需要 ']'
    ??????????? int a[i]=new int[i+1];
    ????????????????? ^
    1 錯(cuò)誤

    處理已完成。
    ---------------------------------------------------
    開始怎么都看不出第六行有什么錯(cuò)誤,郁悶半天之后看了課本,發(fā)現(xiàn)原來多了一個(gè)int.突然醒悟這個(gè)數(shù)組已經(jīng)在前面聲明過了,在這里寫int不是重復(fù)聲明嗎?......真是太粗心了,不過給偶一個(gè)深刻的教訓(xùn),一定注意不要范重復(fù)聲明數(shù)組的錯(cuò)誤.
    刪掉int之后編譯通過,正確的程序是這樣的:

    public?class?YangHui{
    ????
    public?static?void?main(String?args[]){
    ????????
    final?int?max=10;
    ????????
    int?a[][]=new?int[max][];
    ????????
    for(int?i=0;i<a.length;i++){
    ????????????a[i]
    =new?int[i+1];
    ????????}
    ????????a[
    0][0]=1;
    ????????
    for(int?i=1;i<a.length;i++){
    ????????????a[i][
    0]=1;
    ????????????a[i][a[i].length
    -1]=1;
    ????????????
    for(int?j=1;j<a[i-1].length;j++){
    ????????????????a[i][j]
    =a[i-1][j-1]+a[i-1][j];
    ????????????}
    ????????}
    ????????
    ????????
    for(int?i=0;i<a.length;i++){
    ????????????
    for(int?j=0;j<a[i].length;j++)
    ????????????????System.out.print(a[i][j]
    +"\t");
    ????????????System.out.println();
    ????????}
    ????}
    }


    ?

    posted @ 2006-07-12 01:04 Yemoo'S Java Blog 閱讀(346) | 評(píng)論 (0)編輯 收藏

    這算是一個(gè)很簡單的程序,但還是值得我這樣的初學(xué)者去總結(jié)一下,畢竟applet不同于application程序:
    import?java.applet.*;
    import?java.awt.*;
    import?java.awt.event.*;

    public?class?LeapyearTest?extends?Applet?implements?ActionListener{
    ????Label?result;???
    //定義一個(gè)輸出結(jié)果的標(biāo)簽對(duì)象
    ????TextField?t1;???//定義一個(gè)用于輸入年份的文本框
    ????Button?btn;?//定義一個(gè)button對(duì)象
    ????
    ????
    int?year;
    ????
    boolean?leap;
    ????
    ????
    public?void?init(){
    ????????result
    =new?Label("請(qǐng)輸入要判斷的年份:");
    ????????t1
    =new?TextField(5);
    ????????btn
    =new?Button("判斷");
    ????????
    ????????add(t1);
    ????????add(btn);
    ????????add(result);
    ????????
    ????????btn.addActionListener(
    this);????//為按鈕注冊(cè)事件,事件的監(jiān)聽者為當(dāng)前類的對(duì)象this
    ????}
    ????
    ????
    public?void?actionPerformed(ActionEvent?e){
    ????????year
    =Integer.parseInt(t1.getText());
    ????????
    ????????
    if((year%4==0)&&(year%100!=0)){
    ????????????leap
    =true;
    ????????}
    else?if(year%400==0){
    ????????????leap
    =true;
    ????????}
    else{
    ????????????leap
    =false;
    ????????}
    ????????
    ????????
    if(leap==true){
    ????????????result.setText(
    "你輸入的年份為閏年!");
    ????????}
    else{
    ????????????result.setText(
    "你輸入的年份不是閏年!");
    ????????}
    ????????
    ????????t1.setText(
    "");
    ????}
    }

    這里有幾點(diǎn)需要說明的:
    1,applet程序必須引入java.applet.*;
    2,使用文本框,按鈕等控件需要引入java.awt.*;
    3,有事件發(fā)生則要引入java.awt.event.*;
    4,在類名后加上extends Applet Implements ActionListener
    5,添加事件后,當(dāng)事件被激活后會(huì)自動(dòng)調(diào)用actionPerformed函數(shù)執(zhí)行.因此應(yīng)該為事件寫該函數(shù).

    posted @ 2006-07-09 23:49 Yemoo'S Java Blog 閱讀(1835) | 評(píng)論 (2)編輯 收藏

    偶是一個(gè)java初學(xué)者,看了樹上一個(gè)簡單例子,然后自己試著寫了下,卻發(fā)現(xiàn)了很多問題....
    例子是一個(gè)判斷用戶輸入字母是大寫還是小寫的.
    偶開始這樣寫:

    import ?java.io. * ;

    public ? class ?UpLow{
    ????
    public ? static ? void ?main(String?args[])? {
    ????????C
    har ?x;
    ????????System.out.println(
    " 請(qǐng)輸入一個(gè)字母: " );
    ????????x
    = (C har )System.in.read();
    ????????
    if (Character.isUpperCase(x)){
    ????????????System.out.println(
    " 你輸入了一個(gè)大寫字母! " );
    ????????}
    ????????
    if (Character.isLowerCase(x)){
    ????????????System.out.println(
    " 你輸入了一個(gè)小寫字母! " );
    ????????}
    ????}
    }
    運(yùn)行調(diào)試先后發(fā)現(xiàn)如下問題:
    1,Char x和(Char)System.in.read()中的Char中c應(yīng)該小寫.
    2,由于用到system.in.read()所以應(yīng)該加上throws IOException.

    這么簡單一程序就遇到這么多問題...崩潰...
    不過這樣就給了俺比較深刻的印象,以后一定不會(huì)范這些錯(cuò)誤了.

    用到輸出語句"System.in.read()"要在main()中加上throws IOException 語句來拋出異常.

    posted @ 2006-07-09 23:16 Yemoo'S Java Blog 閱讀(251) | 評(píng)論 (0)編輯 收藏

    ??? 到了大學(xué)好像自己就開始浮躁起來,學(xué)什么都不能安安心心的坐下來,現(xiàn)在的學(xué)習(xí)猶如浮沙筑高臺(tái),亂七八糟,什么都沒有系統(tǒng)學(xué)習(xí)過,這學(xué)期開始著手學(xué)習(xí)JAVA,再圖書館借了一些書籍看了不少,不知道時(shí)偶看的少還是什么原因,現(xiàn)在還是感覺什么都不會(huì),哎,郁悶?zāi)亍!!=裉煊衷賵D書館翻了一下java的書,感覺迷茫,圖書館這方面的還真不少,偶都不知道該看什么了,到底怎樣學(xué)下去,才能少走彎路??摸索中。。。也請(qǐng)大家指點(diǎn)一二,謝謝!

    posted @ 2006-06-15 11:55 Yemoo'S Java Blog 閱讀(573) | 評(píng)論 (1)編輯 收藏

    僅列出標(biāo)題
    共2頁: 上一頁 1 2 
    主站蜘蛛池模板: 成年女性特黄午夜视频免费看| 亚洲一区精彩视频| 国产一区二区三区在线观看免费| 免费av片在线观看网站| 青草青草视频2免费观看| 亚洲性一级理论片在线观看| 亚洲综合色婷婷七月丁香| 国产美女无遮挡免费网站| 免费H网站在线观看的| 久久免费国产视频| 国产乱子伦精品免费视频| 黄色一级免费网站| 亚洲精品乱码久久久久久V| 亚洲国产成人超福利久久精品| 亚洲精品乱码久久久久久| 亚洲一区二区精品视频| 凹凸精品视频分类国产品免费| 97在线观免费视频观看| 免费看黄视频网站| 国内精自视频品线六区免费 | 91在线视频免费91| 91免费在线播放| 最好看的中文字幕2019免费| 国内精品久久久久影院免费| 三上悠亚电影全集免费| 中文在线观看免费网站| 久久精品成人免费观看97| 国产成人无码精品久久久久免费 | 日本不卡在线观看免费v| 无码视频免费一区二三区| 成人免费无码大片a毛片软件 | 久久久久亚洲精品日久生情| 亚洲丁香色婷婷综合欲色啪| 亚洲∧v久久久无码精品| 亚洲国产成人久久精品动漫| 亚洲电影一区二区| 亚洲沟沟美女亚洲沟沟| 亚洲AV无码乱码在线观看代蜜桃| 亚洲一区二区三区在线观看蜜桃 | 久爱免费观看在线网站| 99久久99久久精品免费观看|