摘要:
三部分组成: 形参列表:可以省略形参类型,如果只有一个参数,可以省略括号 箭头:英文-> 代码块:如果代码块只包含一条语句,可以省略花括号,且自动return这条语句 (a,b)->{a+b} Lambda表达式的类型称为“目标类型”,会被当成一个任意类型对象,具体类型取决于运行环境 这里的“目标类 阅读全文
摘要:
内部类意义: 更好的封装:比如cow类,内部定义一个cowleg类,cowleg类只有在cow类里才有意义,不允许其他类访问cowleg类 内部类成员可以直接访问外部类的私有数据,但外部类不能访问内部类细节,如成员变量 匿名内部类适合创建仅需要使用一次的类 内部类比外部类多三个修饰符,private 阅读全文
摘要:
像的地方: 接口和抽象类都不能实例化,都位于继承树的顶端,用于被其他类实现和继承 接口和抽象类都可包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法 差别: 设计目的不同: 接口是系统与外界交互的窗口,体现的是一种规范,是系统的总纲 抽象类是多个子类的父类,体现的是一种模板式设计,是 阅读全文
摘要:
允许在接口中定义默认方法,默认方法必须以default来修饰,该方法不能用static修饰。用接口的实现类的实例来调用默认方法 允许在接口中定义类方法,类方法必须用static修饰,该方法不能用default修饰。用接口直接调用类方法 允许 接口成员默认都是public修饰,接口变量默认public 阅读全文
摘要:
abstruct修饰类,类只能被继承 abstruct修饰方法,方法必须被重写 abstruct不能修饰成员变量,不能修饰构造器 final修饰类,类不能继承,修饰方法,方法不能重写,所以final和abstruct永远不能同时使用 static修饰方法,方法属于类,不能与abstruct同时修饰一 阅读全文
摘要:
不可变类即创建该类的实例后,该实例的实例变量是不可变的。 java的8个包装类和java.lang.String类都是不可变类。 创建不可变类: 用private和final修饰成员变量 提供带参数的构造器进行初始化成员变量 仅提供getter方法,不提供setter方法 如有必要,重写Object 阅读全文
摘要:
java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String及数组)的常量值还,还包含一些以文本形式出现的符号引用,比如: 类和接口的全限定名; 字段的名称和描述符; 方法和名称和描述符。 1. Integer i1 阅读全文
摘要:
final修饰类变量: 必须在静态初始化块或者声明该类变量时指定初始值,并且且必须在这两个方式中选一个。 final修饰实例变量: 必须在非静态初始化块或者声明该实例变量时指定初始值,并且且必须在这两个方式中选一个。 final修饰局部变量: 系统不会对局部变量进行初始化,局部变量必须显式初始化,所 阅读全文
摘要:
使用private和static配合实现 class Singleton{ private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance == n 阅读全文