欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Java之reference-JAVA程序員JAVA工程師面試必看(優(yōu)秀范文五篇)

      時間:2019-05-13 03:28:05下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《Java之reference-JAVA程序員JAVA工程師面試必看》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Java之reference-JAVA程序員JAVA工程師面試必看》。

      第一篇:Java之reference-JAVA程序員JAVA工程師面試必看

      -JAVA程序員JAVA工程師面試必看

      Reference

      Java世界泰山北斗級大作《Thinking In Java》切入Java就提出“Everything is Object”。在Java這個充滿Object的世界中,reference是一切謎題的根源,所有的故事都是從這里開始的。

      Reference是什么?

      如果你和我一樣在進入Java世界之前曾經浪跡于C/C++世界,就一定不會對指針陌生。談到指針,往日種種不堪回首的經歷一下子涌上心頭,這里不是抱怨的地方,讓我們暫時忘記指針的痛苦,回憶一下最初接觸指針的甜蜜吧!還記得你看過的教科書中,如何講解指針嗎?留在我印象中的一種說法是,指針就是地址,如同門牌號碼一樣,有了地址,你可以輕而易舉找到一個人家,而不必費盡心力的大海撈針。

      C++登上歷史舞臺,reference也隨之而來,容我問個小問題,指針和reference區(qū)別何在?我的答案來自于在C++世界享譽盛名的《More Effective C++》。

      1.2.3.4.沒有null reference。reference必須有初值。使用reference要比使用指針效率高。因為reference不需要測試其有效性。指針可以重新賦值,而reference總是指向它最初獲得的對象

      設計選擇:

      當你指向你需要指向的某個東西,而且絕不會改指向其它東西,或是當你實作一個運算符而其語法需要無法有指針達成,你就應該選擇reference。其它任何時候,請采用指針。

      這和Java有什么關系?

      初學Java,鑒于reference的名稱,我毫不猶豫的將它和C++中的reference等同起來。不過,我錯了。在Java中,reference可以隨心所欲的賦值置空,對比一下上面列出的差異,就不難發(fā)現(xiàn),Java的reference如果要與C/C++對應,它不過是一個穿著reference外衣的指針而已。

      于是,所有關于C中關于指針的理解方式,可以照搬到Java中,簡而言之,reference就是一個地址。我們可以把它想象成一個把手,抓住它,就抓住了我們想要操縱的數據。如同掌握C的關鍵在于掌握指針,探索Java的鑰匙就是reference。

      一段小程序

      我知道,太多的文字總是令人犯困,那就來段代碼吧!

      public class ReferenceTricks {

      public static void main(String[] args){

      ReferenceTricks r = new ReferenceTricks();

      // reset integer

      r.i = 0;

      System.out.println(“Before changeInteger:” + r.i);

      changeInteger(r);

      System.out.println(“After changeInteger:” + r.i);

      // just for format

      System.out.println();

      // reset integer

      r.i = 0;

      System.out.println(“Before changeReference:” + r.i);

      changeReference(r);

      System.out.println(“After changeReference:” + r.i);

      }

      private static void changeReference(ReferenceTricks r){

      r = new ReferenceTricks();

      r.i = 5;

      System.out.println(“In changeReference: ” + r.i);

      }

      private static void changeInteger(ReferenceTricks r){

      r.i = 5;

      System.out.println(“In changeInteger:” + r.i);

      }

      public int i;

      }

      對不起,我知道,把一個字段設成public是一種不好的編碼習慣,這里只是為了說明問題。

      如果你有興趣自己運行一下這個程序,我等你!

      OK,你已經運行過了嗎?結果如何?是否如你預期?下面是我在自己的機器上運行的結果:

      Before changeInteger:0

      In changeInteger:5

      After changeInteger:5

      Before changeReference:0

      In changeReference: 5

      After changeReference:0

      這里,我們關注的是兩個change——changeReference和changeInteger。從輸出的內容中,我們可以看出,兩個方法在調用前和調用中完全一樣,差異出現(xiàn)在調用后的結果。

      糊涂的講解

      先讓我們來分析一下changeInteger的行為。

      前面說過了,Java中的reference就是一個地址,它指向了一個內存空間,這個空間存放著一個對象的相關信息。這里我們暫時不去關心這個內存具體如何排布,只要知道,通過地址,我們可以找到r這個對象的i字段,然后我們給它賦成5。既然這個字段的內容得到了修改,從函數中返回之后,它自然就是改動后的結果了,所以調用之后,r對象的i字段依然是5。下圖展示了changeInteger調用前后內存變化。

      Reference +--------+Reference +--------+

      ---------->| i = 0|---------->| i = 5|

      |--------||--------|

      | Memory || Memory |

      ||||

      ||||

      +--------++--------+

      調用changeInteger之前調用changeInteger之后

      讓我們把目光轉向changeReference。

      從代碼上,我們可以看出,同changeInteger之間的差別僅僅在于多了這么一句。

      r = new ReferenceTricks();

      這條語句的作用是分配一塊新的內存,然后將r指向它。

      執(zhí)行完這條語句,r就不再是原來的r,但它依然是一個ReferenceTricks的對象,所以我們依然可以對這個r的i字段賦值。到此為止,一切都是那么自然。

      Reference +--------++--------+

      ---------->| i = 0|| i = 0|

      |--------||--------|

      | Memory || Memory |

      ||Reference |--------|

      ||---------->| i = 5|

      +--------++--------+

      調用changeReference之前調用changeReference之后

      順著這個思路繼續(xù)下去的話,執(zhí)行完changeReference,輸出的r的i字段,那么應該是應該是新內存中的i,所以應該是5。至于那塊被我們拋棄的內存,Java的GC功能自然會替我們善后的。

      事與愿違。

      實際的結果我們已經看到了,輸出的是0。

      肯定哪個地方錯了,究竟是哪個地方呢?

      參數傳遞的秘密

      知道方法參數如何傳遞嗎?

      記得剛開始學編程那會兒,老師教導,所謂參數,有形式參數和實際參數之分,參數列表中寫的那些東西都叫形式參數,在實際調用的時候,它們會被實際參數所替代。

      編譯程序不可能知道每次調用的實際參數都是什么,于是寫編譯器的高手就出個辦法,讓實際參數按照一定順序放到一個大家都可以找得到的地方,以此作為方法調用的一種約定。所謂“沒有規(guī)矩,不成方圓”,有了這個規(guī)矩,大家協(xié)作起來就容易多了。這個公共數據區(qū),現(xiàn)在編譯器的選擇通常是“?!?,而所謂的順序就是形式參數聲明的順序。

      顯然,程序運行的過程中,作為實際參數的變量可能遍布于內存的各個位置,而并不一定要老老實實的呆在棧里。為了守“規(guī)矩”,程序只好將變量復制一份到棧中,也就是通常所說的將參數壓入棧中。

      打起精神,謎底就要揭曉了。

      我剛才說什么來著?將變量復制一份到棧中,沒錯,“復制”!

      這就是所謂的值傳遞。

      C語言的曠世經典《The C Programming Language》開篇的第一章中,談到實際參數時說,“在C中,所有函數的實際參數都是傳?值?的”。

      馬上會有人站出來,“錯了,還有傳地址,比如以指針傳遞就是傳地址”。

      不錯,傳指針就是傳地址。在把指針視為地址的時候,是否考慮過這樣一個問題,它也是一個變量。前面的討論中說過了,參數傳遞必須要把參數壓入棧中,作為地址的指針也不例外。所以,必須把這個指針也復制一份。函數中對于指針操作實際上是對于這個指針副本的操作。

      Java的reference等于C的指針。所以,在Java的方法調用中,reference也要復制一份壓入堆棧。在方法中對reference的操作就是對這個reference副本的操作。

      謎底揭曉

      好,讓我們回到最初的問題上。

      在changeReference中對于reference的賦值實際上是對這個reference的副本進行賦值,而對于reference的本尊沒有產生絲毫的影響。

      回到調用點,本尊醒來,它并不知道自己睡去的這段時間內發(fā)生過什么,所以只好當作什么都沒發(fā)生過一般。就這樣,副本消失了,在方法中對它的修改也就煙消云散了。

      也許你會問出這樣的問題,“聽了你的解釋,我反而對changeInteger感到迷惑了,既然是對于副本的操作,為什么changeInteger可以運作正常?”

      呵呵,很有趣的大腦短路現(xiàn)象。

      好,那我就用前面的說法解釋一下changeInteger的運作。

      所謂復制,其結果必然是副本完全等同于本尊。reference復制的結果必然是兩個reference指向同一塊內存空間。

      雖然在方法中對于副本的操作并不會影響到本尊,但對內存空間的修改確實實實在在的。

      回到調用點,雖然本尊依然不知道曾經發(fā)生過的一切,但它按照原來的方式訪問內存的時候,取到的確是經過方法修改之后的內容。

      于是方法可以把自己的影響擴展到方法之外。

      多說幾句

      這個問題起源于我對C/C++中同樣問題的思考。同C/C++相比,在changeReference中對reference賦值可能并不會造成什么很嚴重的后果,而在C/C++中,這么做卻會造成臭名昭著的“內存泄漏”,根本的原因在于Java擁有了可愛的GC功能。即便這樣,我仍不推薦使用這種的手法,畢竟GC已經很忙了,我們怎么好意思再麻煩人家。

      在C/C++中,這個問題還可以繼續(xù)引申。既然在函數中對于指針直接賦值行不通,那么如何在函數中修改指針呢?答案很簡單,指針的指針,也就是把原來的指針看作一個普通的數據,把一個指向它的指針傳到函數中就可以了。

      同樣的問題到了Java中就沒有那么美妙的解決方案了,因為Java中可沒有reference的reference這樣的語法??赡艿淖兺ň褪菍eference進行封裝成類。至于值不值,公道自在人心。

      ?

      ?

      ? ?

      ? ? 評論 09:50瀏覽(171)評論(1)分類:收藏相關推薦

      2008-06-27

      public class ReferenceTricks {

      public static void main(String[] args){

      ReferenceTricks r = new ReferenceTricks();

      // reset integer

      r.i = 0;

      System.out.println(“Before changeInteger:” + r.i);

      changeInteger(r);

      System.out.println(“After changeInteger:” + r.i);

      // just for format

      System.out.println();

      // reset integer

      r.i = 0;

      System.out.println(“Before changeReference:” + r.i);

      changeReference(r);

      System.out.println(“After changeReference:” + r.i);

      }

      private static void changeReference(ReferenceTricks r){

      r = new ReferenceTricks();

      r.i = 5;

      System.out.println(“In changeReference: ” + r.i);

      }

      private static void changeInteger(ReferenceTricks r){

      r.i = 5;

      System.out.println(“In changeInteger:” + r.i);

      }

      public

      舉的例子不太相符,用來理解java傳 參機制倒是不錯的例子

      -JAVA程序員JAVA工程師面試必看

      第二篇:JAVA時間格式化處理-JAVA程序員JAVA工程師面試必看

      -JAVA程序員JAVA工程師面試必看

      JAVA時間格式化處理 日期格式化

      import java.util.Date;import java.text.SimpleDateFormat;class dayTime { public static void main(String args[]){ Date nowTime=new Date();System.out.println(nowTime);SimpleDateFormat time=new SimpleDateFormat(“yyyy MM dd HH mm ss”);System.out.println(time.format(nowTime));} }

      2007-05-17 09:54 轉載地址

      http://tb.blog.csdn.net/TrackBack.aspx?PostId=3809041、通過MessageFormat轉化

      String dateTime = MessageFormat.format(“{0,date,yyyy-MM-dd-HH-mm:ss:ms}” , new Object[] { new java.sql.Date(System.currentTimeMillis())});說明: yyyy-MM-dd-HH-mm:ss:ms 年yyyy 月MM 日dd 時(大寫為24進制,小寫為12進制)分mm 秒ss 微妙ms

      2、修改數據庫時用

      queryDataSet.setDate(“dateField”, new java.sql.Date(new java.util.Date().getTime()));queryDataSet.setDate(“dateField”, new java.sql.Date.valueOf(“2005-05-03”));

      3、通過SimpleDateFormat 轉化

      SimpleDateFormat dateFm = new SimpleDateFormat(“yyyy-MM-dd”);//格式化當前系統(tǒng)日期 String dateTime = dateFm.format(new java.util.Date());

      4、具體討論

      Java 語言的Calendar(日歷),Date(日期), 和DateFormat(日期格式)組成了Java標準的一個基本但是非常重要的部分.日期是商業(yè)邏輯計算一個關鍵的部分.所有的開發(fā)者都應該能夠計算未來的日期, 定制日期的顯示格式, 并將文本數據解析成日期對象.我們寫了兩篇文章, 這是第一篇, 我們將大概的學習日期, 日期格式, 日期的解析和日期的計算.我們將討論下面的類:

      1、具體類(和抽象類相對)java.util.Date

      2、抽象類java.text.DateFormat 和它的一個具體子類,java.text.SimpleDateFormat

      3、抽象類java.util.Calendar 和它的一個具體子類,java.util.GregorianCalendar

      具體類可以被實例化, 但是抽象類卻不能.你首先必須實現(xiàn)抽象類的一個具體子類.Date 類從Java 開發(fā)包(JDK)1.0 就開始進化, 當時它只包含了幾個取得或者設置一個日期數據的各個部分的方法, 比如說月, 日, 和年.這些方法現(xiàn)在遭到了批評并且已經被轉移到了Calendar類里去了, 我們將在本文中進一步討論它.這種改進旨在更好的處理日期數據的國際化格式.就象在JDK 1.1中一樣, Date 類實際上只是一個包裹類, 它包含的是一個長整型數據, 表示的是從GMT(格林尼治標準時間)1970年, 1 月 1日00:00:00這一刻之前或者是之后經歷的毫秒數.一、創(chuàng)建一個日期對象

      讓我們看一個使用系統(tǒng)的當前日期和時間創(chuàng)建一個日期對象并返回一個長整數的簡單例子.這個時間通常被稱為Java 虛擬機(JVM)主機環(huán)境的系統(tǒng)時間.//-----------------------import java.util.Date;

      public class DateExample1 { public static void main(String[] args){ // Get the system date/time Date date = new Date();

      System.out.println(date.getTime());} } //-----------------------

      在星期六, 2001年9月29日, 下午大約是6:50的樣子, 上面的例子在系統(tǒng)輸出設備上顯示的結果是 1001803809710.在這個例子中,值得注意的是我們使用了Date 構造函數創(chuàng)建一個日期對象, 這個構造函數沒有接受任何參數.而這個構造函數在內部使用了System.currentTimeMillis()方法來從系統(tǒng)獲取日期.那么, 現(xiàn)在我們已經知道了如何獲取從1970年1月1日開始經歷的毫秒數了.我們如何才能以一種用戶明白的格式來顯示這個日期呢? 在這里類java.text.SimpleDateFormat 和它的抽象基類 java.text.DateFormat 就派得上用場了.二、日期數據的定制格式 假如我們希望定制日期數據的格式, 比方星期六-9月-29日-2001年.下面的例子展示了如何完成這個工作:

      //-----------------------import java.text.SimpleDateFormat;import java.util.Date;

      public class DateExample2 {

      public static void main(String[] args){

      SimpleDateFormat bartDateFormat = new SimpleDateFormat(“EEEE-MMMM-dd-yyyy”);

      Date date = new Date();

      System.out.println(bartDateFormat.format(date));} } //-----------------------

      只要通過向SimpleDateFormat 的構造函數傳遞格式字符串“EEE-MMMM-dd-yyyy”, 我們就能夠指明自己想要的格式.你應該可以看見, 格式字符串中的ASCII 字符告訴格式化函數下面顯示日期數據的哪一個部分.EEEE是星期, MMMM是月, dd是日, yyyy是年.字符的個數決定了日期是如何格式化的.傳遞“EE-MM-dd-yy”會顯示 Sat-09-29-01.請察看Sun 公司的Web 站點獲取日期格式化選項的完整的指示.三、將文本數據解析成日期對象

      假設我們有一個文本字符串包含了一個格式化了的日期對象, 而我們希望解析這個字符串并從文本日期數據創(chuàng)建一個日期對象.我們將再次以格式化字符串“MM-dd-yyyy” 調用SimpleDateFormat類, 但是這一次, 我們使用格式化解析而不是生成一個文本日期數據.我們的例子, 顯示在下面, 將解析文本字符串“9-29-2001”并創(chuàng)建一個值為001736000000 的日期對象.//-----------------------import java.text.SimpleDateFormat;import java.util.Date;

      public class DateExample3 {

      public static void main(String[] args){ // Create a date formatter that can parse dates of // the form MM-dd-yyyy.SimpleDateFormat bartDateFormat = new SimpleDateFormat(“MM-dd-yyyy”);

      // Create a string containing a text date to be parsed.String dateStringToParse = “9-29-2001”;

      try { // Parse the text version of the date.// We have to perform the parse method in a // try-catch construct in case dateStringToParse // does not contain a date in the format we are expecting.Date date = bartDateFormat.parse(dateStringToParse);

      // Now send the parsed date as a long value // to the system output.System.out.println(date.getTime());} catch(Exception ex){ System.out.println(ex.getMessage());} } } //-----------------------

      四、使用標準的日期格式化過程

      既然我們已經可以生成和解析定制的日期格式了, 讓我們來看一看如何使用內建的格式化過程.方法 DateFormat.getDateTimeInstance()讓我們得以用幾種不同的方法獲得標準的日期格式化過程.在下面的例子中, 我們獲取了四個內建的日期格式化過程.它們包括一個短的, 中等的, 長的, 和完整的日期格式.//-----------------------import java.text.DateFormat;import java.util.Date;

      public class DateExample4 {

      public static void main(String[] args){ Date date = new Date();

      DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);

      DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);

      DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);

      DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);

      System.out.println(shortDateFormat.format(date));System.out.println(mediumDateFormat.format(date));System.out.println(longDateFormat.format(date));System.out.println(fullDateFormat.format(date));} } //-----------------------

      注意我們在對 getDateTimeInstance的每次調用中都傳遞了兩個值.第一個參數是日期風格, 而第二個參數是時間風格.它們都是基本數據類型int(整型).考慮到可讀性, 我們使用了DateFormat 類提供的常量: SHORT, MEDIUM, LONG, 和 FULL.要知道獲取時間和日期格式化過程的更多的方法和選項, 請看Sun 公司Web 站點上的解釋.運行我們的例子程序的時候, 它將向標準輸出設備輸出下面的內容: 9/29/01 8:44 PM Sep 29, 2001 8:44:45 PM September 29, 2001 8:44:45 PM EDT Saturday, September 29, 2001 8:44:45 PM EDT

      五、Calendar 類

      我們現(xiàn)在已經能夠格式化并創(chuàng)建一個日期對象了, 但是我們如何才能設置和獲取日期數據的特定部分呢, 比如說小時, 日, 或者分鐘? 我們又如何在日期的這些部分加上或者減去值呢? 答案是使用Calendar 類.就如我們前面提到的那樣, Calendar 類中的方法替代了Date 類中被人唾罵的方法.假設你想要設置, 獲取, 和操縱一個日期對象的各個部分, 比方一個月的一天或者是一個星期的一天.為了演示這個過程, 我們將使用具體的子類 java.util.GregorianCalendar.考慮下面的例子, 它計算得到下面的第十個星期五是13號.//-----------------------import java.util.GregorianCalendar;import java.util.Date;import java.text.DateFormat;

      public class DateExample5 {

      public static void main(String[] args){ DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);

      // Create our Gregorian Calendar.GregorianCalendar cal = new GregorianCalendar();

      // Set the date and time of our calendar // to the system&s date and time cal.setTime(new Date());

      System.out.println(“System Date: ” + dateFormat.format(cal.getTime()));

      // Set the day of week to FRIDAY cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);System.out.println(“After Setting Day of Week to Friday: ” + dateFormat.format(cal.getTime()));

      int friday13Counter = 0;

      while(friday13Counter <= 10){

      // Go to the next Friday by adding 7 days.cal.add(GregorianCalendar.DAY_OF_MONTH, 7);

      // If the day of month is 13 we have // another Friday the 13th.if(cal.get(GregorianCalendar.DAY_OF_MONTH)== 13){ friday13Counter++;System.out.println(dateFormat.format(cal.getTime()));} } } } //-----------------------

      在這個例子中我們作了有趣的函數調用: cal.set(GregorianCalendar.DAY_OF_WEEK, GregorianCalendar.FRIDAY);和: cal.add(GregorianCalendar.DAY_OF_MONTH, 7);

      set 方法能夠讓我們通過簡單的設置星期中的哪一天這個域來將我們的時間調整為星期五.注意到這里我們使用了常量 DAY_OF_WEEK 和 FRIDAY來增強代碼的可讀性.add 方法讓我們能夠在日期上加上數值.潤年的所有復雜的計算都由這個方法自動處理.我們這個例子的輸出結果是: System Date: Saturday, September 29, 2001 當我們將它設置成星期五以后就成了: Friday, September 28, 2001 Friday, September 13, 2002 Friday, December 13, 2002 Friday, June 13, 2003 Friday, February 13, 2004 Friday, August 13, 2004 Friday, May 13, 2005 Friday, January 13, 2006 Friday, October 13, 2006 Friday, April 13, 2007 Friday, July 13, 2007 Friday, June 13, 2008

      六、時間掌握在你的手里

      有了這些Date 和Calendar 類的例子, 你應該能夠使用 java.util.Date, java.text.SimpleDateFormat, 和 java.util.GregorianCalendar 創(chuàng)建許多方法了.5、具體討論2 這里只討論java中對日期的幾個簡單類: 1.java.util.Date 2.java.text.DateFormat(Abstract),java.text.SimpleDateFormat 3.java.util.Calendar(Abstract),java.util。GregorianCalendar 首先看一下Date類,Date中只提供了幾個獲得本地時間的方法,具體用法見下: import java.util.Date; public class DateFormatTest { public DateFormatTest(){ }

      public static void main(String[] args){ Date dt=new Date();

      String localeString=dt.toLocaleString(); String gmtString=dt.toGMTString(); System.out.println(localeString); System.out.println(gmtString); System.out.println(dt.getTime());

      System.out.println(System.currentTimeMillis()); } } 輸出結果為: 2004-12-31 9:34:04 31 Dec 2004 01:34:04 GMT 1104456844281 1104456844500 從結果中可以看到,dt.getTime()與System.currentTimeMillis()這兩個方法得到的時間是相同的。因為Date的構造函數中調用了System.currentTimeMillis()方法來從系統(tǒng)獲得當前時間。其結果實際上是從1970年1月1日開始到當前所經歷的毫秒數。以下的例子展示的是一個簡單的格式化日期的代碼: import java.text.*; import java.util.Locale; import java.util.Date; public class DateFormatTest { public DateFormatTest(){ }

      public static void main(String[] args){ DateFormat df=DateFormat.getDateInstance();

      SimpleDateFormat defaultSDF=new SimpleDateFormat(); SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”); System.out.println(new Date());

      System.out.println(df.format(new Date())); System.out.println(defaultSDF.format(new Date())); System.out.println(sdf.format(new Date())); }}

      輸出結果是:

      Fri Dec 31 09:48:19 CST 2004 2004-12-31 04-12-31 上午9:48 2004-12-31

      SimpleDateFormat的構造函數中String中字符的含義列如下表: Letter Date or Time Component Presentation Examples G Era designator Text AD y Year Year 1996; 96 M Month in year Month July; Jul; 07 w Week in year Number 27 W Week in month Number 2 D Day in year Number 189 d Day in month Number 10 F Day of week in month Number 2 E Day in week Text Tuesday; Tue a Am/pm marker Text PM H Hour in day(0-23)Number 0 k Hour in day(1-24)Number 24 K Hour in am/pm(0-11)Number 0 h Hour in am/pm(1-12)Number 12 m Minute in hour Number 30 s Second in minute Number 55 S Millisecond Number 978 z Time zone General time zone Pacific Standard Time; PST; GMT-08:00 Z Time zone RFC 822 time zon 上面展示的例子是將Date格式化成我們想要的格式,通常還會遇到需要將有些已經格式好的String再解析成Date的問題。在下面的文章中將會講到。import java.text.*;import java.util.Locale;import java.util.Date;public class DateFormatTest { public DateFormatTest(){ } public static void main(String[] args){ String dateToparse=“30-12-2004”;

      SimpleDateFormat sdf=new SimpleDateFormat(“dd-MM-yyyy”)Date dt=new Date()try{ dt=sdf.parse(dateToparse)System.out.print(dt)}catch(Exception e){ e.printStackTrace();}}}-JAVA程序員JAVA工程師面試必看

      第三篇:Java筆試可能出現(xiàn)問題及答案之J2EE-JAVA程序員JAVA工程師面試必看

      -JAVA程序員JAVA工程師面試必看

      Java筆試可能出現(xiàn)問題及答案之J2EE,MVC方面(轉載)(連載)

      J2EE,MVC方面

      114、MVC的各個部分都有那些技術來實現(xiàn)?如何實現(xiàn)?

      答:MVC是Model-View-Controller的簡寫。“Model” 代表的是應用的業(yè)務邏輯(通過JavaBean,EJB組件實現(xiàn)),“View” 是應用的表示面(由JSP頁面產生),“Controller” 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進行交互和重用。

      115、J2EE是什么?

      答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè)級應用模型(enterpriese application model).在這樣的一個應用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。

      116、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。答:Web Service描述語言WSDL

      SOAP即簡單對象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級協(xié)議。UDDI 的目的是為電子商務建立標準;UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實現(xiàn)標準規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web Service注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標準。

      117、J2EE是技術還是平臺還是框架?

      答:J2EE本身是一個標準,一個為企業(yè)分布式應用的開發(fā)提供的標準平臺。

      J2EE也是一個框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術。

      118、STRUTS的應用(如STRUTS架構)

      答:Struts是采用Java Servlet/JavaServer Pages技術,開發(fā)Web應用程序的開放源碼的framework。采用Struts能開發(fā)出基于MVC(Model-View-Controller)設計模式的應用構架。Struts有如下的主要功能:

      一.包含一個controller servlet,能將用戶的請求發(fā)送到相應的Action對象。

      二.JSP自由tag庫,并且在controller servlet中提供關聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應用。

      三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。

      119、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。答:Web ServiceWeb Service是基于網絡的、分布式的模塊化組件,它執(zhí)行特定的任務,遵守具體的技術規(guī)范,這些規(guī)范使得Web Service能與其他兼容的組件進行互操作。

      JAXP(Java API for XML Parsing)定義了在Java中使用DOM, SAX, XSLT的通用的接口。這樣在你的程序中你只要使用這些通用的接口,當你需要改變具體的實現(xiàn)時候也不需要修改代碼。

      JAXM(Java API for XML Messaging)是為SOAP通信提供訪問方法和傳輸機制的API。

      WSDL是一種 XML 格式,用于將網絡服務描述為一組端點,這些端點對包含面向文檔信息或面向過程信息的消息進行操作。這種格式首先對操作和消息進行抽象描述,然后將其綁定到具體的網絡協(xié)議和消息格式上以定義端點。相關的具體端點即組合成為抽象端點(服務)。

      SOAP即簡單對象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級協(xié)議。UDDI 的目的是為電子商務建立標準;UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實現(xiàn)標準規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web Service注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標準。

      120、C/S 與 B/S 區(qū)別:

      答:有如下八個方面的不同:

      1.硬件環(huán)境不同:

      C/S 一般建立在專用的網絡上, 小范圍里的網絡環(huán)境, 局域網之間再通過專門服務器提供連接和數據交換服務.B/S 建立在廣域網之上的, 不必是專門的網絡硬件環(huán)境,例與電話上網, 租用設備.信息自己管理.有比C/S更強的適應范圍, 一般只要有操作系統(tǒng)和瀏覽器就行

      2.對安全要求不同

      C/S 一般面向相對固定的用戶群, 對信息安全的控制能力很強.一般高度機密的信息系統(tǒng)采用C/S 結構適宜.可以通過B/S發(fā)布部分可公開信息.B/S 建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。

      3.對程序架構不同

      C/S 程序可以更加注重流程, 可以對權限多層次校驗, 對系統(tǒng)運行速度可以較少考慮.B/S 對安全以及訪問速度的多重的考慮, 建立在需要更加優(yōu)化的基礎之上.比C/S有更高的要求 B/S結構的程序架構是發(fā)展的趨勢, 從MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持網絡的構件搭建的系統(tǒng).SUN 和IBM推的JavaBean 構件技術等,使 B/S更加成熟.4.軟件重用不同

      C/S 程序可以不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好.B/S 對的多重結構,要求構件相對獨立的功能.能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子

      5.系統(tǒng)維護不同

      C/S 程序由于整體性, 必須整體考察, 處理出現(xiàn)的問題以及系統(tǒng)升級.升級難.可能是再做一個全新的系統(tǒng)

      B/S 構件組成,方面構件個別的更換,實現(xiàn)系統(tǒng)的無縫升級.系統(tǒng)維護開銷減到最小.用戶從網上自己下載安裝就可以實現(xiàn)升級.6.處理問題不同

      C/S 程序可以處理用戶面固定, 并且在相同區(qū)域, 安全要求高需求, 與操作系統(tǒng)相關.應該都是相同的系統(tǒng)

      B/S 建立在廣域網上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的.與操作系統(tǒng)平臺關系最小.7.用戶接口不同

      C/S 多是建立的Window平臺上,表現(xiàn)方法有限,對程序員普遍要求較高

      B/S 建立在瀏覽器上, 有更加豐富和生動的表現(xiàn)方式與用戶交流.并且大部分難度減低,減低開發(fā)成本.8.信息流不同

      C/S 程序一般是典型的中央集權的機械式處理, 交互性相對低

      B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化, 更像交易中心。

      121、什么是web容器

      答:給處于其中的應用程序組件(JSP,SERVLET)提供一個環(huán)境,使JSP,SERVLET直接更容器中的環(huán)境變量接**互,不必關注其它系統(tǒng)問題。主要有WEB服務器來實現(xiàn)。例如:

      TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規(guī)范中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。122、什么是EJB容器

      答:Enterprise java bean 容器。更具有行業(yè)領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務。例如郵件服務、事務管理

      123、什么是JNDI

      答:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統(tǒng),讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能。124、什么是JMS

      答:(Java Message Service)JAVA消息服務。主要實現(xiàn)各個應用程序之間的通訊。包括點對點和廣播。125、什么是JTA

      答:(Java Transaction API)JAVA事務服務。提供各種分布式事務服務。應用程序只需調用其提供的接口即可。

      126、什么是JAF

      答:(Java Action FrameWork)JAVA安全認證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實現(xiàn)自己的個性安全控制策略。

      RMI/IIOP:(Remote Method Invocation /internet對象請求中介協(xié)議)他們主要用于通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現(xiàn)對其直接調用。當然這是要通過一定的規(guī)范才能在異構的系統(tǒng)之間進行通信。RMI是JAVA特有的。

      127、MVC的各個部分都有那些技術來實現(xiàn)?如何實現(xiàn)?

      答:MVC是Model-View-Controller的簡寫?!癕odel” 代表的是應用的業(yè)務邏輯(通過JavaBean,EJB組件實現(xiàn)),“View” 是應用的表示面(由JSP頁面產生),“Controller” 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進行交互和重用。

      -JAVA程序員JAVA工程師面試必看

      第四篇:java工程師面試

      精通java語言及面向對象思想 具有扎實的java編程基礎和良好的編程規(guī)范

      精通 jsp語言 html語言 javascript腳本以及css 樣式

      熟練掌握sqlserver oracle 數據庫

      熟練使用Spring+Hibernate+Struts 以及 Spring+JDBC+Struts開發(fā)

      精通Struts+jdbc開發(fā) 精通MVC框架開發(fā)

      精通tomcat運用服務器 熟悉weblogic運用服務器 并可配合eclipse進行開發(fā) 熟練使用ant log4j junit 等輔助開發(fā)工具

      熟練使用CVS/VSS項目同步工具

      對factory DAO singleton 等軟件設計模式有很好的理解

      對oracle數據庫性能及oracle代碼的規(guī)范性和java代碼執(zhí)行效率以及java缺陷有很好的理解與掌握

      熟悉大型項目的開發(fā)流程 對業(yè)務需求能很好的細致理解,熟練書寫概要設計 需求分析 詳細設計等文檔

      2年多累積java代碼30000行 數據庫代碼10000行 具有實際大型項目(江蘇電信)開發(fā)經驗和個人獨自完成小項目的能力

      具備強烈的學習欲望,工作認真負責,且具有很強的責任心和進取心,與人為善善于溝通,有很好的團隊合作精有神。

      江蘇移動秘書 12580 負責個人電話本和呼叫信息增刪查改的開發(fā)

      負責江蘇移動秘書兩個版本IVR接口csp3.0以及csp6.0的切換開發(fā),錄音放音的控件的使用,使用rational rose繪制UML用例圖,類圖,時序圖等在項目中熟練使用cvs和vss開發(fā)同步工具,靈活運用ajax特效,buffalo特效,熟練書寫存儲過程,函數,等ORACLE代碼以及基于定時器的函數。

      第五篇:JAVA程序員面試技巧

      java程序員面試題 第一部分:選擇題 question no: 1

      1、public class test { public static void changestr(string str){ } public static void main(string[] args){ string str=1234;changestr(str);system.out.println(str);} } please write the output result : question no:2 1.public class test { 2.static boolean foo(char c){ 3.system.out.print(c);4.return true;5.} 6.public static void main(string[] argv){ 7.int i =0;8.for(foo(a);foo(b)&&(i<2);foo(c)){ 9.i++;10.foo(d);12.} 13.} 14.} what is the result? a.abdcbdcb b.abcdabcd d.an exception is thrown at runtime.question no: 3 1.class a { 2.protected int method1(int a, int b){ return 0;} 3.} which two are valid in a class that extends class a?(choose two)a.public int method1(int a, int b){ return 0;} b.private int method1(int a, int b){ return 0;} c.private int method1(int a, long b){ return 0;} d.public short method1(int a, int b){ return 0;} e.static protected int method1(int a, int b){ return 0;} question no: 4 1.public class outer{ 2.public void someoutermethod(){ 3.// line 3 4.} 5.public class inner{} 6.public static void main(string[]argv){ 7.outer o = new outer();8.// line 8 9.} 10.} which instantiates an instance of inner? a.new inner();// at line 3 b.new inner();// at line 8 c.new o.inner();// at line 8 d.new outer.inner();// at line 8//new outer().new inner()question no: 5 which method is used by a servlet to place its session id in a url that is written to the servlet’s response output stream? question no: 6 which two are equivalent?(choose two)a.b.c.d.e.f.g.question no: 7 which of the following statements regarding the lifecycle of a session bean are correct? 1.java.lang.illegalstateexception is thrown if sessioncontext.getejbobject()is invoked when a stateful session bean instance is passivated.2.sessioncontext.getrollbackonly()does not throw an exception when a session bean with bean-managed transaction demarcation is activated.3.an exception is not thrown when sessioncontext.getusertransaction()is called in the afterbegin method of a bean with container-managed transactions.5.accessing resource managers in the sessionsynchronization.afterbegin method of a stateful session bean with bean-managed transaction does not throw an exception.第二部分:概念題

      1.描述struts體系結構?對應各個部分的開發(fā)工作主要包括哪些? 3.jsp有哪些內置對象和動作?它們的作用分別是什么?

      4、sql問答題

      select * from table 和

      select * from table where name like %% and addr like %% and(1_addr like %% or 2_addr like %% or 3_addr like %% or 4_addr like %%)的檢索結果為何不同?

      5、sql問答題

      表結構:

      1、表名:g_cardapply 字段(字段名/類型/長度): g_applyno varchar 8;//申請單號(關鍵字)g_applydate bigint 8;//申請日期 g_state varchar 2;//申請狀態(tài)

      2、表名:g_cardapplydetail 字段(字段名/類型/長度): g_applyno varchar 8;//申請單號(關鍵字)g_name varchar 30;//申請人姓名 g_idcard varchar 18;//申請人身份證號 g_state varchar 2;//申請狀態(tài)

      其中,兩個表的關聯(lián)字段為申請單號。

      題目:

      1、查詢身份證號碼為***的申請日期

      2、查詢同一個身份證號碼有兩條以上記錄的身份證號碼及記錄個數

      3、將身份證號碼為***的記錄在兩個表中的申請狀態(tài)均改為07

      4、刪除g_cardapplydetail表中所有姓李的記錄

      華為java筆試題

      一、單項選擇題

      1.java是從()語言改進重新設計。a.ada b.c++ c.pasacal d.basic篇二:java程序員面試注意事項

      一、回答問題的思路

      先正面敘述一些基本的核心知識,然后描述一些特殊的東西,最后再來一些錦上添花的東西。要注意有些不是錦上添花,而是畫蛇添足的東西,不要隨便寫上。把答題像寫書一樣寫。我要回答一個新技術的問題大概思路和步驟是:我們想干什么,干這個遇到了什么問題,現(xiàn)在用什么方式來解決。其實我們講課也是這樣一個思路。

      答題時,先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)。答案的層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個人的習慣、辦事風格、條理等。要講你做出答案的思路過程,或者說你記住答案的思想都寫下來。把答題想著是辯論賽。答題就是給別人講道理、擺事實。答題不局限于什么格式和形式,就是要將自己的學識展現(xiàn)出來!

      另外,不要因為人家題目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地指出對方題目很模糊和你的觀點,不要把面試官想得有多高,其實他和你就是差不多的,你想想,如果他把你招進去了,你們以后就是同事了,可不是差不多的嗎?

      二、關于就業(yè)薪水

      如果你是應屆生,那不能要高工資,好比大餅的故事,要拿高工資,就去中關村!少數人基礎確實很好,在校期間確實又做過一些項目,那仍然是可以要到相對高的工資的。

      初級程序員薪水:2000-4500 中級程序員薪水:4000-7000 高級程序員薪水:7000以上

      公司招聘程序員更看重的要用到的編碼技術、而不是那些業(yè)務不太相關的所謂項目經歷:

      三、公司想招什么樣的人

      對于一些公司接到了一些項目,想招聘一些初中級的程序員過來幫助寫代碼,完成這個項目,你更看重的是他的專業(yè)技術功底,還是以前做過幾個項目的經歷呢?我們先排除掉那些編碼技術功底好,又正好做過相似項目的情況,實際上,這種魚和熊掌兼得的情況并不常見。其實公司很清楚,只要招聘進來的人技術真的很明白,那他什么項目都可以做出來,公司招人不是讓你去重復做你以前的項目,而是做一個新項目,業(yè)務方面,你只要進了項目團隊,自然就能掌握。所以,大多數招聘單位在招聘那些編碼級別的程序員時也沒指望能招聘到做過類似項目的人,也不會刻意去找做過類似項目的人,用人單位也不是想把你招進,然后把你以前做過的項目重做一遍,所以,用人單位更看重招進來的人對要用到的編碼技術的功底到底怎樣,技術扎實不扎實,項目則只要跟著開發(fā)團隊走,自然就沒問題。除非是一些非常專業(yè)的行業(yè),要招聘特別高級的開發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項目經驗和行業(yè)經驗,要去找到行業(yè)高手,公司才關心項目和與你聊項目的細節(jié),這樣的人通常都不是通過常規(guī)招聘渠道去招聘進來的,而是通過各種手段挖過來的,這情況不再我今天要討論的范圍中。

      四、公司面試會問什么,.技術學得明白不明白,人家?guī)讉€問題就把你的深淺問出來了,只要問一些具體的技術點,就很容易看出你是真懂還是假懂,很容看出你的技術深度和實力,所以,技術是來不得半點虛假的,必須扎扎實實。

      由于項目的種類繁多,涉及到現(xiàn)實生活中的各行各業(yè),什么五花八門的業(yè)務都有,例如,酒店房間預定管理,公司車輛調度管理,學校課程教室管理,超市進銷存管理,知識內容管理,等等……成千上萬等等,但是,不管是什么項目,采用的無非都是我們學習的那些目前流行和常用的技術。技術好、經驗豐富,則項目做出來的效率高些,程序更穩(wěn)定和更容易維護些;技術差點,碰碰磕磕最后也能把項目做出來,無非是做的周期長點、返工的次數多點,程序代碼寫得差些,用的技術笨拙點。如果一個人不是完完全全做過某個項目,他是不太關心該項目的業(yè)務的,對其中的一些具體細節(jié)更是一竅不知,(如果我招你來做圖書管理,你項目經歷說你做過汽車調度,那我能問你汽車調度具體怎么回事嗎?不會,所以,你很容易蒙混過去的)而一個程序員的整個職業(yè)生涯中能實實在在和完完整整做出來的項目沒幾個,更別說在多個不同行業(yè)的項目了,有的程序員更是一輩子都只是在做某一個行業(yè)的項目,結果他就成了這個行業(yè)的專家(專門干一件事的家伙)。所以,技術面試官通常沒正好親身經歷過你簡歷寫的那些項目,他不可能去問你寫的那些項目的具體細節(jié),而是只能泛泛地問你這個項目是多少人做的,做了多長時間,開發(fā)的過程,你在做項目的過程中有什么心得和收獲,用的什么技術等面上的問題,所以,簡歷上的項目經歷可以含有很多水分,很容易作假,技術面試官也無法在項目上甄別你的真?zhèn)巍?/p>

      五、簡歷怎么寫

      簡歷該怎么寫:精通哪些技術,有一些什么項目經歷

      六、怎樣達到簡歷上的標準(培訓中心教項目的目的)教項目是為了鞏固和靈活整合運用技術,增強學習的趣味性,熟悉做項目的流程,或得一些專業(yè)課程中無法獲得的特有項目經驗,增強自己面試的信心。講的項目應該真實可靠才有價值,否則,表面上是項目,實際上還是知識點的整合,對鞏固技術點和增強學習的趣味性,但無法獲得實際的項目經驗。

      下載Java之reference-JAVA程序員JAVA工程師面試必看(優(yōu)秀范文五篇)word格式文檔
      下載Java之reference-JAVA程序員JAVA工程師面試必看(優(yōu)秀范文五篇).doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內容由互聯(lián)網用戶自發(fā)貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯(lián)系你,一經查實,本站將立刻刪除涉嫌侵權內容。

      相關范文推薦

        java程序員面試必讀

        Java程序員,面試必讀☆★☆★快來??!10月25日讀者見面會☆★☆★ 清華大學出版社《Java程序員,上班那點事兒》作者:鐘聲 章節(jié):1.2.2: 面試是一個“簡單”而又“復雜”的事情,正因為......

        java程序員面試要點

        第一,談談final, finally, finalize的區(qū)別。 final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結構的一部分,表示總是執(zhí)行。fina......

        Java程序員面試(大全5篇)

        Java程序員面試三十二問第一,談談final, finally, finalize的區(qū)別。 Fanal 修飾符 可以修飾類,屬性和方法。 被修飾的類不可以派生子類,不能被作為父類被繼承。它修飾的屬性......

        程序員面試個人簡歷(JAVA)

        個人簡歷 基本信息: 姓名:張三 性別:女 年 齡:23 工作經驗:2年 專業(yè):軟件技術 教育程度:專科 聯(lián)系電話:xxxxxxxxx E-mail: xxxxxxxxxxx@126.com 職業(yè)技能與特長: 熟練掌握java語言,......

        Java程序員面試干貨

        有了這些,還害怕面試么? 不管你是學生還是工作者,多多少少都對面試感到困擾和無奈,為啥你總是被拒絕?為何面試官屢屢刁難讓你不知所措?原因是因為你不知道回答的技巧,怎樣回答面試......

        java程序員面試必備問答匯總

        什么是類與對象? 所謂對象就是真實世界中的實體,對象與實體是一一對應的,也就是說現(xiàn)實世界中每一個實體都是一個對象,它是一種具體的概念。 類是具備某些共同特征的實體的集合,它......

        Java程序員面試注意事項(模版)

        Java程序員面試注意事項 隨著Java框架的逐漸成熟,其功能越來越強大,使用越來越簡便,其使用范圍越來越廣,使用人數也越來越多。Java在帶來方便的同時,無形中也帶了不便,作為軟件開......

        Java程序員面試寶典

        第3章Java語法基礎 基礎類型和語法 1、變量及其作用范圍 Java變量可以分為:靜態(tài)變量、成員變量和局部變量3種。 靜態(tài)變量:在類中用static修飾的變量,它的生存周期是由類來決定......