国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

我的ThinkinginJava學習筆記

2019-11-18 11:14:19
字體:
來源:轉載
供稿:網友

  其實我早就有想寫個學習筆記的想法了。今天終于下定決心要寫了,寫的不好的地方,大家給我指正??!其實也就是個簡化版的TIJ
  
  第一章 對象導論
      其實這章介紹的是oop的思想,知道什么是抽象、接口、繼續(xù)等等,其實這些我覺得沒有必要專門提出來寫一章,這個我就不介紹了
  在以后的學習中,這些知識是會在里面融會貫通的。
  
  第二章 萬事萬物皆對象
      在java程序中,萬事萬物皆對象,即使是java程序本身,也是一個對象
      一、Reference是操縱對象之鑰匙
         c語言中是使用指針來操縱對象的,但是java呢?用的是reference來操縱對象,我習慣把他叫做句柄,句柄和對象的關系就想是電視遙控器和電視機的關系一樣,既然是這樣,那么遙控器和電視機都是可以獨立出現的
        例如:String name;
        這個java語句只會產生句餅(遙控器),并不產生實際的對象(電視機),就想你老婆還沒生孩子之前你們就把名字給取好了一樣,句柄并沒有連接到實際的對象上。這個樣子寫代碼是不推薦的,一個沒有指向對象的句柄在調用的時候編譯器會抱錯,應當使用String name="baby";,或者使用String name =new String("baby");這里new的意思是產生一個string類型的對象,并且這個string叫做baby。這2個方法都可以實現對象的建立。
      二、所有的對象都需要你來建立
      1、儲存在那里
         a、寄存器 這里是核心的存儲空間,我們是沒辦法操縱的
         b、棧 (stack )這里的存取速度快,效率高,因為這里要求被存儲的數據有具體大小和存活時間限制,使用彈性小,這里一般存儲的是我們的對象句柄,而對象是不存在這里的
         c、堆 (heap) 這里是通用的存儲空間,他比stack好在編譯器不需要知道實際在heap中存儲數據的大小,也不知道這個空間需要分配多長時間,彈性好,所以用來存儲對象,但是速度要比stack慢很多
         d、靜態(tài)存儲空間(static storage)這里是存放被聲明為static的特定成員,java對象本身是不會分配在這里的
         e、常量儲存空間 這里存放的是程序中的常量,常量值不會改變,最安全
         f、non-ram 流或者是持久話對象
      2、基本數據類型
         boolean char byte short int long float double void 基本數據類型的數據是不用new 來創(chuàng)建的,直接int i=0,不使用heap空間,他是被放在stack中的,速度快!但是假如你要是想用heap來存儲基本數據類型的話,就要使用該類型的外覆類來實現了 例如Integer i= new Integer("0");
         注重!String不是基本數據類型,她是對象!從他的定義方法就可以知道了!
      3、數組(array)
         java中的數組使用和定義上要比c中的數組更安全,當你在定義數組的時候其實產生的是一個儲存對象句柄的數組,而每一個句柄所指向的值回被設定為null,也就是不指向任何對象
     三、你不需要摧毀對象
      1、基本類型生存范圍
         java中基本類型的生存范圍是由一對大括號決定的,在生存空間內定義的變量,只能用于生存空間結束之前
    {
       int i=1;
      {
          int i=100;//錯誤!這樣的定義在java總是不答應的!編譯器會認為i已經被定義過了
      }
    }
      2、對象的生存范圍
         對象擁有的壽命和基本類型是不一樣的,當你使用new來產生一個對象的時候,即使離開了大括號,該對象還是存在的
    {
         String name =new Sting("baby");
    }
        句柄name會在大括號的生存空間之外消失的,但是他所指向的string對象卻還在繼續(xù)占用著內存,但是大家會認為大量的無用對象會占用大量的內存,java中是怎么解決的呢?他使用的是垃圾回收機制,垃圾回收器會在特定的時間檢查使用new創(chuàng)建的對象,假如這些對象已經沒有句柄指向他們,那么他就回把無用的對象清理掉。
  四、建立新的數據類型 class
       java中既然一切全是對象,那么是什么來限制對象的屬性呢?通過使用類。java中使用class要害字來自己定義一個類
      例如:class women{ //class body}這樣你就定義一個women 類,當然這個類沒有任何屬性
      1、數據成員和方法
          一個類中,存在2中成員,一個是數據成員,一個是方法。數據成員可以是基本數據類型,也可以是對象,而基本數據類型在聲明的時候系統(tǒng)會自動的給他賦予一個初始值
  五、方法、參數、返回值
       一個合法的方法包括名稱、參數、返回類型、方法體 例如
      void name(int i)
      {
          return;
      }其中 名稱name()   參數int i    返回類型 void   方法體 {},對于一個class而言,名稱+參數的組合必須是唯一的,參數也可以是空的,有一個叫test的對象答應你調用一個返回值為string的方法getTest(),則 String name = test.getTest(); name的類型一定要和返回值的類型相同。
      在向一個方法傳遞一個對象的時候,其實傳遞的是該對象的句柄(基本數據類型除外),而傳遞的對象類型一定要和方法中接受參數的參數類型相同。當你不需要方法給你返回什么東西的時候,你可以把該方法的返回類型設置為void,而此時方法中的return就是用來離開方法的,不需要等到他執(zhí)行完畢,假如方法的返回類型不為void的時候,你可以使用return 返回一個和返回類型一樣的值

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永泰县| 习水县| 古交市| 林甸县| 莫力| 东兰县| 宁南县| 壤塘县| 汉阴县| 陇南市| 屏东县| 乐亭县| 永昌县| 兴安县| 资溪县| 林口县| 苗栗县| 广元市| 宁安市| 德钦县| 邵东县| 交口县| 五华县| 丰台区| 章丘市| 余干县| 星子县| 蒲江县| 阳山县| 邵阳县| 靖安县| 射阳县| 常山县| 高邮市| 综艺| 新田县| 延边| 玛沁县| 察隅县| 河西区| 新平|