java重點知識總結

          時間:2021-06-11 08:48:09 總結 我要投稿

          java重點知識總結

            java是一門軟件語言,學習軟件技術的同學們都要學會JAVA編程技術!以下是java重點知識總結,一起來看看吧!

          java重點知識總結

            java重點知識總結

            1. 基本數據類型

            整形:

            byte  1 個字節

            short  2 個字節

            int   4個字節

            long  8個字節

            字符:

            char  2個字節

            浮點數:

            float  4個字節

            double 8個字節

            布爾:

            boolean 1個字節

            2.java 7 新增二進制整數

            以0b或者0B開頭

            3.java中字符時16位的Unicode編碼方式,格式是'uXXXX',其中xxxx代表一個十六進制整數

            4.java中規定了正無窮大、負無窮大和零

            正無窮大= 一個正數除以0

            負無窮大= 一個負數除以零

            0.0 除以0.0 或者 對一個負數開方 得到一個非數

            5. 在java中布爾類型只能是true和false

            6. 在java中沒有多維數組

            看似像C語言中的多維數組不是真正的數組,比如 a[3][4] , a[0] a[1] a[2] 是真實存在的,裝的是地址,和c語言中動態分配為的數組一樣

            int [][] b = new int[3][4]

            7. Java中帶包的編譯方法

            javac -d . Hello.java 會在當前目錄下生成目錄樹

            運行 java 包名字.類名字

            8. Java多態中的對象的filed 不具有多態性,如 父類 對象 = new 子類(), 對象.field 是調用的父類的,即使子類中覆蓋了該字段。

            9. instanceof 運算符

            格式: 引用變量名 instanceof 類名(或者接口) 他用于判斷前面的對象是否是后面對象的類,子類、實現類的實例,是返回true,否者返回false

            10. Java 中基本數據類型和對應封裝類之間的轉化

             int a = 1;

             Integer A = new Integer(a);

             a = A.intValue();

            其他的類型也是這樣的。

            11.單例(singleton)類 例子

            復制代碼 代碼如下:

            class Singleton

            {

             private static Singleton instance;

             private Singleton(){}

             public static Singleton getInstance()

             {

               if(instance == null)

               {

                 instance = new Singleton();

               }

               return instance;

             }

             public static void main(String[] args)

             {

               Singleton s1 = Singleton.getInstance();

               Singleton s2 = Singleton.getInstance();

               System.out.println(s1 == s2);

             }

            }

            12.final修飾的成員變量初始化問題

            類Field: 必須在靜態初始塊中或聲明該FIeld時指定初始值

            實例Field:必須在非靜態初始塊中或聲明該FIeld時指定初始值或構造器中聲明

            13.Final 變量必須顯式初始化,系統不會對final變量進行隱式初始化

            14.java會使用常量池來管理曾經用過的字符串直接常量,例如:String a = "java"; ,系統把常量字符串“java”存在常量池,當再次執行 String b = "java"; a == b 是true

            15.final 方法不可以重寫,final類不能被繼承

            如果用private 方法 和 final private 是一樣的`

            若果是用final修飾的方法在子類中出現,那是子類新定義的,與父類沒有關系

            16.不可變類:創建后該類的Field是不可改變的。java提供了8個基本變量的包裝類和string都是不可改變類。

            17.緩存實例的不可改變類

            復制代碼 代碼如下:

            class CacheImmutale

            {

            private static int MAX_SIZE = 10;

            private static CacheImmutale[] cache = new CacheImmutale[MAX_SIZE];

            private static int pos = 0;

            private final String name;

            private CacheImmutale(String name)

            {

            this. name = name;

            }

            public String getName()

            {

            return name;

            }

            public static CacheImmutale valueOf(String name)

            {

            for(int i = 0; i < MAX_SIZE; ++i)

            {

            if(cache[i] != null && cache[i].getName().equals(name))

            return cache[i];

            }

            if(pos == MAX_SIZE)

            {

            cache[0] = new CacheImmutale(name);

            pos = 1;

            }

            else

            {

            cache[pos++] = new CacheImmutale(name);

            }

            return cache[pos -1];

            }

            public boolean equals(Object obj)

            {

            if(this == obj)

            return true;

            if(obj != null && obj.getClass() == CacheImmutale.class)

            {

            CacheImmutale ci = (CacheImmutale)obj;

            return name.equals(ci.getName());

            }

            return false;

            }

            public int hashCode()

            {

            return name.hashCode();

            }

            }

            public class CacheImmuteTest

            {

            public static void main(String[] args)

            {

            CacheImmutale c1 = CacheImmutale.valueOf("Hello");

            CacheImmutale c2 = CacheImmutale.valueOf("Hello");

            System.out.println(c1 == c2);

            }

            }

            用緩存實例要看某個對象的使用頻率,若重復使用那就利大于弊,若不經常使用那弊就大于利

            還有java提供的java.lang.Integer 創建數值在-128-127之間的數采用緩存機制的

            Integer in2 = Integer.valueOf(6);

            Integer in3= Integer.valueOf(6);

            in2 == in3 is true;

            18. static 和 abstract 不能同時修飾一個方法,沒有類抽象方法

            19.一個類可以又一個父類,實現多個接口,接口中Filed是public 、static、final的,方法是public abstract的

            20.非靜態內部類的方法訪問某個變量,搜索順序為:先內部類中方法內-> 內部類 -> 外部類中如果都找不到則出現編譯錯誤

            復制代碼 代碼如下:

            import java.util.*;

            public class DiscernVariable

            {

            private String prop = "外部類的實例變量";

            private class InClass

            {

            private String prop = "內部類的實例變量";

            public void info()

            {

            String prop = "局部變量";

            System.out.println("外部類的field值:" + DiscernVariable.this.prop);

            System.out.println("內部類的field值:" + this.prop);

            System.out.println("局部變量的值:" + prop);

            }

            }

            public void test()

            {

            InClass in = new InClass();

            in.info();

            }

            public static void main(String[] args)

            {

            new DiscernVariable().test();

            }

            }

            21.非靜態內部類不能有靜態方法、靜態Field、靜態初始化塊

            22.在外部類之外訪問內部類

            訪問非靜態內部類:outclass.Inclass varname = new outclass().new InClass();

            訪問靜態內部類: outclass.Inclass varname = new outclass.Inclass();

            復制代碼 代碼如下:

            import java.util.*;

            class Out

            {

            class In

            {

            public In()

            {

            System.out.println("非靜態內部類構造器");

            }

            }

            }

            public class CreatInnerInstance

            {

            public static void main(String[] args)

            {

            Out.In in = new Out().new In();

            /*

            以上的代碼可分開寫為:

            Out.In in;

            Out out = new Out();

            in = out.new In();

            */

            }

            }

            class SubClass extends Out.In

            {

            //顯示定義SubClass的構造器

            public SubClass(Out out)

            {

            //通過轉入的Out對象顯示調用In的構造器

            out.super();

            }

            }

            復制代碼 代碼如下:

            import java.util.*;

            class StaticOut

            {

            static class StaticIn

            {

            public StaticIn()

            {

            System.out.println("靜態內部類構造器");

            }

            }

            }

            public class CreatStaticInnerInstance

            {

            public static void main(String[] args)

            {

            StaticOut.StaticIn in = new StaticOut.StaticIn();

            /*

            以上的代碼可分開寫為:

            StaticOut.StaticIn in;

            in = new StaticOut.StaticIn();

            */

            }

            }

            class SubClass extends StaticOut.StaticIn

            {

            //無須創建內部類實例

            }

          【java重點知識總結】相關文章:

          java面試知識點總結02-17

          java集合知識點總結02-17

          java框架知識點總結02-17

          java基礎知識點總結02-17

          初中政治重點知識總結精選03-22

          醫學基礎知識重點總結12-03

          《離騷》重點知識11-29

          高一政治重點知識總結03-29

          兒科重點知識點總結08-09

          国产精品好爽好紧好大_亚洲男人综合久久综合_欧美福利电影a在线播放www_国产精品99久久精品无码

                  色狠狠一区二区三区香蕉 | 久久精品免视国产 | 亚洲乱码成熟在线视频播放 | 欧美性爱在线免费观看 | 亚洲国产精品一区二区首页 | 午夜爽爽一区二区 |