美文网首页
零碎知识点

零碎知识点

作者: wxz1997 | 来源:发表于2018-12-20 21:50 被阅读0次
  1. new对象时初始化顺序:父类静态代码块->子类静态代码块->普通属性->父类构造代码块->父类构造函数->子类构造代码块->子类构造函数。

  2. 抽象类与普通类差不多,允许有抽象方法。
    接口不允许有静态代码块。可以有非抽象的方法,比如default方法和静态方法。接口中只有常量定义,没有变量声明,修饰默认public static final。方法默认修饰public abstarct。

  3. abstract不能与final并列修饰同一个类。
    abstract 不能与private、static、final或native并列修饰同一个方法。

  4. 程序设计语言中,数组元素在内存中是一个接着一个线性存放的,通过第一个元素就能访问随后的元素,这样的数组称之为“真数组”。实现了真数组为Java语言健壮性的特点之一。

  5. 通常,当我们说 this 的时候,都是指“这个对象”或者“当前对象”。而且它本身会产生当前对象的一个句柄(即引用)。

  6. 构造方法this super所调用的构造方法必须放在第一行,且只能引用一个构造方法。

  7. static修饰的变量或方法类似与全局变量或方法。static只能调用静态方法或静态变量。
    static可以修饰修饰内部类,普通类是不允许声明为静态的,只有内部类才可以。
    (1)内部静态类实例化对象:StaticInnerClass staticInnerClass = new StaticInnerClass();
    (2)内部非静态类实例化对象:InnerClass innerClass = new Test().new InnerClass();
    static是不允许用来修饰局部变量。
    静态语句块只能访问定义在静态语句块之前的变量,定义在之后的变量,只能进行赋值,不能访问。

  8. java 尽自己的全力保证所有变量都能在使用前得到正确的初始化。若一个方法的局部变量没有初始化,就会编译出错。将基本类型设为一个类的数据成员则会自动给一个初值。

  9. static 初始化只有在必要的时候才会进行。且只初始化一次。

  10. 定义数组时必须指明它的行数。如int a[3][ ]

  11. java类访问级别


    java类访问级别.png
  12. final修饰基本属性时,该属性是不可变的,修饰对象时,引用不可改变,但其内容是可以改变的。
    final修饰方法参数时时,我们不能改变自变量引用指向的东西。
    使用 final 方法为方法“上锁”,防止任何继承类改变它的本来含义。设计程序时,若希望一个方法的行为在继承期间保持不变,而且不可被覆盖或改写,就可以采取这种做法。
    final修饰的类不可被继承。

  13. 子类有父类的同名private,不属于继承而来的方法。

  14. 方法的重写规则
    方法名、参数列表、返回值必须完全与被重写方法的相同;
    访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。(子类范围要小)
    声明为final的方法不能被重写。构造方法不能被重写。
    声明为static或者子类不能访问到的父类方法不能被重写,但是能够被再次声明。
    重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。(子类范围要小)

  15. 重载规则
    被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
    被重载的方法可以改变返回类型、访问修饰符、声明新的或更广的检查异常;
    方法能够在同一个类中或者在一个子类中被重载。
    无法以返回值类型作为重载函数的区分标准。

  16. 类是单继承的,接口是多继承的。

  17. 内部类分为静态内部类,成员内部类,局部内部类,匿名内部类四种。

  18. java.lang.Integer.equals():两个对象对应的值一致则返回true。
    java.lang.String.equals():两个字符串对应的值一致则返回true。
    java.lang.Object.equals():两个对象的引用是否一致,即两个的对象是否是同一个则返回true。

  19. Integer和String的hashCode()方法都是根据具体的value值来计算hashCode,那么尽管两个引用不同但是值相同的对象,依然是相等的。object则不相等。
    tips: 建议只要重写equals,就必须重写hashCode;

  20. 方法的继承:除了私有的方法,其他方法都可以继承。
    方法的重写:子类重写父类中的方法,方法名不变,参数类型列表不变返回值类型可以不变,或者是父类型的返回值类型的子类型修饰词可以不变,也可以变的修改范围更大。
    构造器:不能被继承,但是子类的构造器中一定会有一个构造器调用了父类的构造器。在子类构造器的首行首句使用super。

  21. 函数式接口只包含一个抽象方法,默认方法不是抽象方法,可含有多个默认方法。
    一个类只能继承一个抽象类,但一个类可以实现多个接口。
    一个抽象类可以通过实例变量保存一个通用状态,而接口是不能有实例变量的。
    一个类的默认方法使用相同的函数签名继承自多个接口时,遵守下面三条准则即可解决所有冲突:
    (1)首先,类或父类显示声明的方法,其优先级高于所有方法。
    (2)若第一条无法判断,则选择最具体实现的默认方法的接口,如类A实现了B、C两个接口,B、C都有a()方法,且B继承了C,则选择B的默认方法。
    (3)若上面两条均无法解决,则应显示指定使用那个方法,如类A实现了B、C两个接口,B、C都有a()方法,可使用B.super.a()显式指定使用B的方法。

  22. Optional没有实现Serializable接口,所以无法序列化。
    不推荐使用基础类型的Optional(OptionalInt、OptionalLong、OptionalDouble),因为它们不支持map、flatMap、filter方法。


    Optional方法.png
  23. 一个 try-with-resources 语句可以像普通的 try 语句那样有 catch 和 finally 块。在try-with-resources 语句中, 任意的 catch 或者 finally 块都是在声明的资源被关闭以后才运行。

  24. java类文件中的属性、方法、以及类中的常量信息都被分别存储在.class文件中。


    java编译.png
按需加载流程图 .png
  1. JAVA反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法,修改它的任意属性;这种动态获取的信息以及动态调用对象成员的功能称为java语言的反射机制。

  2. Field、Method以及Constructor的父类AccessibleObject提供一个方法:setAccessible(boolean flag),该方法用于设置访问对象的accessible标志,当该标志为true时,反射的对象在使用时取消java语言访问检查,此时我们就可顺利使用反射对象了。

  3. 类装载器是用来把类(class)装载进 JVM 的。

  4. Class对象的创建只能在JVM完成。

  5. 实例方法被覆盖 静态方法被隐藏。
    若子类存在和父类同名的静态方法hello(),则Father f = new Son(); f.hello();调用的是父类的hello方法。

  6. 静态方法和最终方法 带关键字 final 的方法不能被覆盖。

  7. 访问那些被覆盖方法的唯一途径 就是使用 super 关键字。

  8. 两个数值进行二元操作时,会有如下的转换操作:
    如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。
    否则,如果其中一个操作数是float类型,另一个将会转换为float类型。
    否则,如果其中一个操作数是long类型,另一个会转换为long类型。
    否则,两个操作数都转换为int类型。

相关文章

  • iOS零碎知识点<高阶版>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<高阶版>iOS零碎知识点<工具篇>

  • iOS零碎知识点<工具篇>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<中阶版>iOS零碎知识点<工具篇>

  • iOS零碎知识点<中阶版>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<高阶版>iOS零碎知识点<工具篇> 获取属性...

  • iOS零碎知识点<初级版>

    iOS零碎知识点<初级版>iOS零碎知识点<中阶版>iOS零碎知识点<高阶版>iOS零碎知识点<工具篇> 优雅的隐...

  • opencv python版-lesson 07

    零碎知识点

  • JS框架 - 收藏集 - 掘金

    关于js、jq零碎知识点 - 掘金写在前面: 本文都是我目前学到的一些比较零碎的知识点,也是相对偏一点的知识,这是...

  • Js基础知识学习-----from 米升亮

    由于这两周在开发H5推广模板,所以结合实战在学习js基础。由于js知识点比较零碎,故总结一些零碎的知识点。 主要学...

  • 零碎知识点

    java spi https://www.jianshu.com/p/46b42f7f593chttp://dub...

  • 零碎知识点

    new对象时初始化顺序:父类静态代码块->子类静态代码块->普通属性->父类构造代码块->父类构造函数->子类构造...

  • 零碎知识点

    1.当循环目录下的文件列表时,还可以用占位符: for m in range(1,3): file = 'F:...

网友评论

      本文标题:零碎知识点

      本文链接:https://www.haomeiwen.com/subject/bhvqyftx.html