zoukankan      html  css  js  c++  java
  • java小知识点3

    调用对象方法的执行过程:

    • 编译器查看调用对象的类型和方法名
    • 编译器查看调用方法时提供的参数类型
    • 如果是静态绑定方法(private、static、final),编译器可以直接确定下来
    • 虚拟机调用x实际对象最适合那个类的方法

    将方法或者类声明为final的意义:确保他们不会在子类中改变语义

    在java中,只有基本类型不是对象,所有的数组都是Object类的子类。

    只要对象与字符串通过+连接,就会自动调用对象的toString方法。

    java可以在运行时确定数组大小:

    自动装箱、自动拆箱-》编译器认可

    JAVA反射:

    获取类名:

    1 Date date = new Date();
    2 Class class1 = date.getClass();
    3 System.out.println(class1.getName());

    加载类:

    Class class2 = Class.forName("java.util.Date");

    创建实例(此处的newInstance方法只能调用无参构造方法):

    1 Class class2 = Class.forName("java.util.Date");
    2 System.out.println(class2 == Date.class);
    3 Date d = (Date) class2.newInstance();

    已检查异常和未检查异常:

    • 已检查异常编译器会进行检查,throws等等
    • 未检查异常编译器不检查

     继承设计的技巧:

    • 将公共操作和域放在超类
    • 不要使用protected
    • 使用继承实现is a关系
    • 除非所有继承的方法都有意义,否则不要使用继承
    • 在覆盖方法时,不要改变预期的行为
    • 使用多态而非类型信息
    • 不要过多的使用反射
  • 相关阅读:
    Codeforces 1163E 高斯消元 + dfs
    Codeforces 1159E 拓扑排序
    Codeforces 631E 斜率优化
    Codeforces 1167F 计算贡献
    Codeforces 1167E 尺取法
    Gym 102007I 二分 网络流
    Codeforces 319C DP 斜率优化
    Codeforces 1163D DP + KMP
    Comet OJ
    Vue 的响应式原理中 Object.defineProperty 有什么缺陷?为什么在 Vue3.0 采用了 Proxy,抛弃了 Object.defineProperty?
  • 原文地址:https://www.cnblogs.com/zcy-backend/p/6853034.html
Copyright © 2011-2022 走看看