Java学习日记(七)

Thinking on Java 8

一、switch

 switch 是在有限的可能集合中选择,它与 enum 是绝佳的组合,且 enum 的名称能够清楚的表达程序的目的

二、可变参数列表

 类似 Python的 *args, **args

 应用在参数个数和类型未知的场合,由于所有的类都继承于 Object 类

 1 class A {}
 2 
 3 public class VarArgs {
 4     static void printArray(Object[] args) {
 5         for (Object obj: args) {
 6             System.out.print(obj + " ");
 7         }
 8         System.out.println();
 9     }
10     
11     public static void main(String[] args) {
12         printArray(new Object[] {47, (float) 3.14, 11.11});
13         printArray(new Object[] {"one", "two", "three"});
14         printArray(new Object[] {new A(), new A(), new A()});
15     }
16 }

 

其他. 一些相关知识点

  • 封装

    将数据和方法包装进类中并把具体实现的方式,其结果是一个同时带特征和行为的数据类型。

  •  组合和继承的选择

   组合和继承都允许在新类中放置对象,组合是显式的,继承是隐式的。当想在新类中包含一个已有类的功能时,使用组合,而非继承。

  • 闭包

   是一个可调用的对象,记录了一些信息,这些信息来自创建它的作用域,所以内部类是面向对象的闭包,它不仅包含外围类对象的信息,还自动拥有一个指向外围类对象的引用。

  • 在Java中,对象并非总是被垃圾回收

   对象可能不被垃圾回收

   垃圾回收不等同于析构

   垃圾回收只与内存有关

  • Java的 数组复制效果 等同于 Python中数组的深复制

 

 

posted @ 2020-02-04 21:23  小喵钓鱼  阅读(97)  评论(0编辑  收藏  举报