Java基础学习笔记_抽象abstract和接口interface

李刚老师《疯狂Java讲义》学习笔记

     5.1假期的最后一天,下了点小雨,在图书馆呆了一天。 -------2019-05-04

一、接口interface

   1、系统会自动为接口里定义的Field 增加static 和final 修饰符;

   2、接口里的方法都是抽象的;

   3、接口里定义的Field 只能是常量;

   4、接口只能继承接口,不能继承类;

二、接口和抽象类的区别

   1、接口作为系统与外界交互的窗口,体现的是一种规范;

   2、抽象类作为系统中多个子类的共同父类,体现的是一种模板式设计;

   3、接口体现的是一种规范和实现分离的设计哲学;

三、设计模式

     设计模式是对经常出现的软件设计问题的成熟解决方案。

四、内部类

   1、非静态内部类里可以直接访问外部类的private成员;

      (在非静态内部类的对象里,保存了一个它寄存的外部类对象的引用)

   2、内部类提供了更好的封装,不允许同一个包中的其它类访问;

   3、匿名内部类适合用于那些仅需要一次使用的类;

五、枚举类

    1、枚举类是实例有限而且固定的类;

       public enum SeasonEnum{

             SPRING,SUMMER,FALL,WINTER;

       }  

   2、所以的枚举类都提供了一个values方法,该方法可以很方便的遍历所以的枚举值。

六、对象和垃圾回收

   1、当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配了一块内存区;

   2、垃圾回收机制只负责回收堆内存中的对象;

   3、程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候进行;

   4、在垃圾回收机制回收任何对象之前,总会先调用它的finalize()方法;

   5、对象的3种状态: 可达状态、可恢复状态、不可达状态;

   6、强制系统垃圾回收:

          System.gcc();

         Runtime.getRuntime().gcc();

七、对象的软、弱、虚引用

       StrongReference
       SoftReference

       WeakReference: 对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管内存释放足够,总会回收该对象所占有的内存;

     PhantomReference

八、一些类

1、Scanner类

        Scanner sc = new Scanner(System.in);

 2、System 类

        System.getenv("JAVA_HOME");

        System.getProperties();

        System.getProperty("os.name");

        System.identifyHashCode(Object);//返回指定对象的精确hashCode值

3、Runtime类

          Runtime rt = Runtime.getRuntione();

           rt.availProcessors();

           rt.freeMemory();

           rt.totalMemory();

           rt.maxMemory();

4、String、StringBuffer、 StringBuilder类

    StringBuffer是线性安全的,而StringBuilder则没有实现线性安全,所以安全性能更高.

5、Math类

6、Random、 ThreadLocalRandom类

    ThreadLocalRandom rand = ThreadLocalRandom.current();

    rand.nextInt(4,20);

 7、BigDecimal类

     BigDecimal f1 = new BigDecimal(0.05);//不推荐用法,会有精度缺失 

     BigDecimal f2 = new BigDecimal.valueof(0.05);//推荐用法 

 8、Data 、C alendar、TimeZone类

九、正则表达式

    正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作;

十、Collection 和 Interator接口

    1、Collection 接口是List、Set 和Queue接口的父接口;

    2、Interator 主要用于遍历Collection集合中的元素,Interator对象也被称为迭代器;

    3、使用Interator迭代访问Collection集合的元素时,Collection集合里的元素不能被改变;

    4、使用foreach循环迭代访问集合元素时,该集合也不能被改变;

十一、泛型

    所谓泛型,就是允许在定义类、接口、方法时使用类型形参。

十二、AWT 、Swing 编程 (这部分内容没有看)

十三、网络编程

   1、OSI (Open System Interconnect)

      

        TCP/IP : 应用层、传输层、网络层、物理+数据链路层 

   2、InetAddress

         InetAddress ip = InetAddress.getByName("www.baidu.com");

   3、URLDecoder 和 URLEnCoder 用于完成普通字符串和 application/x-www-form-urlencoded MIME 字符串之间的互相转换。

   4、URL(Uniform Resource Locator) 统一资源定位器

   5、基于TCP协议的网络编程

       ServerSocket

       Socket

   6、基于UDP协议的网络编程

       DatagramSocket

猜你喜欢

转载自blog.csdn.net/Mr_ZJC/article/details/89818594