1. 程式人生 > >1.String物件和常量池 2.基本資料型別和封裝類(128以下等不做快取)

1.String物件和常量池 2.基本資料型別和封裝類(128以下等不做快取)

序言:

基礎知識:

1.java的基本型別:

   字元型別char,布林型別boolean以及數值型別byte、short、int、long、float、double

2.引用型別

   Java有 5種引用型別(物件型別):類 介面 陣列 列舉 標註

   引用型別:底層結構和基本型別差別較大

JVM的記憶體空間:

(1). Heap 堆空間:分配物件 new Student()

(2). Stack 棧空間:臨時變數 Student stu

(3). Code 程式碼區 :類的定義,靜態資源 Student.class

eg:Student stu = new Student(); //new 在記憶體的堆空間建立物件

stu.study(); //把物件的地址賦給stu引用變數

   上例實現步驟:

      a.JVM載入Student.class 到Code區

      b.new Student()在堆空間分配空間並建立一個Student例項

      c.將此例項的地址賦值給引用stu, 棧空間

3.字串常量池和資料模型

4.別跟斯特拉夫斯基扯淡列舉是什麼!類類類!

             經典的圖片

                                                   

5.儲存值得知識:資料結構

Java工具包提供了強大的資料結構。在Java中的資料結構主要包括以下幾種介面和類:

  • 列舉(Enumeration)
  • 位集合(BitSet)
  • 向量(Vector)
  • 棧(Stack)
  • 字典(Dictionary)
  • 雜湊表(Hashtable)
  • 屬性(Properties)

以上這些類是傳統遺留的,在Java2中引入了一種新的框架-集合框架(Collection)

列舉(Enumeration)介面雖然它本身不屬於資料結構,但它在其他資料結構的範疇裡應用很廣。 列舉(The Enumeration)介面定義了一種從資料結構中取回連續元素的方式。例如,列舉定義了一個叫nextElement 的方法,該方法用來得到一個包含多元素的資料結構的下一個元素。


6.例子探討
   /**
     * 字串判斷
     * 1.== 和!=的使用物件是同一個物件的比較
     * 2.當不確定字串是否是常量池的物件的時候,使用equals()比較
     * 3.正常情況下都是常量池的字串!!!
     */
    public void setStr() {
        //String a = new String("");//那個叫獸會這樣做?
        String a = "";
        PackageInfo packageInfo = new PackageInfo();//一個
        packageInfo.setRemark(a);
        if (packageInfo.getRemark() == "") {
            System.out.println("同一個物件!");
        } else {
            System.out.println("不是同一個物件!");
        }
    }
總結:

         1.瞭解建立一個基本資料型別和物件的區別,記憶體區別,存的位置(棧 堆),初始化大小,都和JMM模型有關聯

         2.對於特殊的字串物件,它提供了一個琦葩的方法建立物件,因為他不是基本資料型別,總得有個構造器去建立

         官方的解析:

    /**
     * Initializes a newly created {@code String} object so that it represents
     * the same sequence of characters as the argument; in other words, the
     * newly created string is a copy of the argument string. Unless an
     * explicit copy of {@code original} is needed, use of this constructor is
     * unnecessary since Strings are immutable.
     *
     * @param  original
     *         A {@code String}
     */
    public String(String original) {
        this.value = original.value;
        this.hash = original.hash;
    }
      重點都紅色標出來了,回去背書吧,original:原始的,原件

相關推薦

1.String物件常量 2.基本資料型別封裝(128下等快取)

序言: 基礎知識: 1.java的基本型別:    字元型別char,布林型別boolean以及數值型別byte、short、int、long、float、double 2.引用型別    Java有 5種引用型別(物件型別):類 介面 陣列 列舉 標註    引用型

java的基本資料型別封裝

部落格轉自https://blog.csdn.net/maggiedorami/article/details/7944459     Integer是一個類,是int的封裝類。 int是基本資料型別。 Integer就是把一個int型別的封裝成一個類。

Java中的基本資料型別及其封裝

  Java中的資料型別有兩種,基本資料型別和引用資料型別,引用資料型別的建立是   需要去new一個物件,該物件的記憶體分配在堆區,同時棧區會儲存一個指向該物件的引用,   但是對於一些簡單資料的建立,用new的方式就不是很有效了,因此JVM中定義了一套對於基本   資料型別的描述,它

java中的基本資料型別封裝

java提供了一組基本資料型別,包括boolean, byte, char, short,  int, long, float, double, void. 同時,java也提供了這些型別的封裝類,分別為Boolean, Byte, Character, Short, In

Java基本資料型別及其封裝

子曰:學而時習之,不亦樂乎。 java中有八種基本資料型別,分別是: boolean(布林型)     byte(位元組型)     char(位元組型)     short(短整型)    int(整型)       long(長整型)    float(浮點型)  

Java中基本資料型別封裝

在java中,存在一些基本資料型別,而這些資料型別則都有著對應的封裝類。 public class testBasic { public static void main(String[] arg

8種基本資料型別對應封裝

java為了使這些基本資料型別也能夠像物件一樣被操作,也為這些基本資料型別提供了響應的封裝類物件。 這就方便了對資料的操作。 例如:Java為每個原始型別提供了封裝類,Integer是java為

【Java】基本資料型別封裝、字串的相互轉換

一、基本資料型別與其對應的封裝類之間的相互轉換 基本資料型別轉換為封裝類 1·直接賦值  (自動打包) Integer i=3;   2·使用封裝類的含參建構函式(例項化) Integer i=new Integer(3);   3·使用封裝類提供的valueOf

1.2基本資料型別之NUMBER

標準資料型別 Python3 中有六個標準的資料型別: Number(數字) String(字串) List(列表) Tuple(元組) Set(集合) Dictionary(字典) Python3 的六個標準資料型別中: 不可變資料(3 個):Number(數字)

final修飾的方法入參以及入參是基本資料型別物件的區別

結論: 結論1:基本資料型別,用final修飾之後,無法進行再賦值。也就是值和地址都無法修改 結論2:引用資料型別,用final修飾之後,無法進行物件賦值。也就是物件引用的地址無法修改。 結論3:引用資料型別,用final修飾之後,可以通過方法或者屬性值賦值的方式,修改其物件內屬性的值(

基本資料型別String等對equals重寫了,其他的equals未重寫的例子

package test; public class Test1 { public static void main(String[] arg0) { Value v1 = new Val

基本資料型別包裝String的轉換&toString方法&instanceof運算子

基本資料型別和包裝類、String類的轉換&toString方法&instanceof運算子 1.包裝類 Java語言是一個面向物件的語言,但是Java中的基本資料型別卻是不面

從頭學Java — 基本資料型別String

1.基本資料型別 在Java中由8種基本資料型別,四個整數型別(byte,short,int,long),兩個小數型別(float,double),一個字元型(char),一個布林型別(boolean) 型別 位元組 取值範圍 b

Java集合框架篇-59-TreeSet儲存基本資料型別自定義物件

      這篇開始,我們來學習Set介面的另外一個實現子類TreeSet。TreeSet一般是需要排序才使用的一種集合儲存方式,由於繼承了Set介面,TreeSet也能實現元素的唯一。下面通過兩個練習

包裝(Integer/Boolean等、字串與基本資料型別轉化,-127-128自動裝箱入)

為什麼要有包裝類? Object類可以接收所有引用資料型別。然而在Java中,資料型別分為基本資料型別和引用資料型別,那麼基本資料型別如何處理呢? 使用包裝類 :包裝類是將基本資料型別封裝到類中,因為Object無法接受基本資料型別,封裝成類後就可以用Object類來接收。 簡單定義一個in

Java中的基本資料型別引用資料型別的區別

一、資料型別 Java中的資料型別分為兩大類,基本資料型別和引用資料型別。 1、基本資料型別 基本資料型別只有8種,可按照如下分類 ①整數型別:long、int、short、byte ②浮點型別:float、double ③字元型別:char ④布林型別:boolean No.

mysql基本資料型別約束條件

mysql基本資料型別 1.建立表的完整語法 create table 表名(欄位1 型別[(寬度) 約束條件],欄位2 型別[(寬度) 約束條件]); # 注意:1.在同一張表中,欄位名不能相同;2.寬度和約束條件可選,欄位名和型別是必須的; # 型別:使用限制欄位必須以什麼樣的資料型別傳值 # 約束條

Redis-基本資料型別基礎命令

Redis : REmote DIctionary Server(遠端字典伺服器)    Redis學習:Http://www.redis.cn/ Redis 與其他 key - value 快取產品有以下三個特點 1.Redis支援資料的持久化,可以將記憶體中的資料保持

基本資料型別操作

基本資料型別 int 整數 str 字串 bool 布林值 list 列表 一般存放大量的資料 [元素,元素。元素] tuple 元組 只讀列表,只能看不能操作(元素,元素) dict 字典 存放一對一對的資料 {"key:value","key:value"} set 集合 之存放key 要求

java中NaNInfinity基本資料型別包裝(double,Double)

java浮點數運算中有兩個特殊的情況:NAN、INFINITY。 1、INFINITY: 在浮點數運算時,有時我們會遇到除數為0的情況,那java是如何解決的呢? 我們知道,在整型運算中,除數是不能為0的,否則直接執行異常。但是在浮點數運算中,引入了無