• java面试强基(3)


     

     

    重载和重写的区别? 

    重载

    发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。

    重载就是同一个类中多个同名方法根据不同的传参来执行不同的逻辑处理。

    重写

    重写发生在运行期,是子类对父类的允许访问的方法的实现过程进行重新编写。

            ​ 1. 方法名、参数列表必须相同,子类方法返回值类型应比父类方法返回值类型更小或相等,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。

    ​         2. 如果父类方法访问修饰符为 private/final/static 则子类就不能重写该方法,但是被 static 修饰的方法能够被再次声明。

            ​ 3. 构造方法无法被重写。

    综上:重写就是子类对父类方法的重新改造,外部样子不能改变,内部逻辑可以改变。

     

    方法的重写要遵循“两同两小一大”

    • “两同”即方法名相同、形参列表相同;
    • “两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;
    • “一大”指的是子类方法的访问权限应比父类方法的访问权限更大或相等。

    什么是可变长度参数? ​

    从 Java5 开始,Java 支持定义可变长参数,所谓可变长参数就是允许在调用方法时传入不定长度的参数。方法就可以接受 0 个或者多个参数。 ​ 可变参数只能作为函数的最后一个参数,但其前面可以有也可以没有任何其他参数。 ​ java 的可变参数编译后实际会被转换成一个数组。 

    1. public class Demo {
    2. public static void main(String[] args) {
    3. System.out.println(sum());
    4. System.out.println(sum(1));
    5. System.out.println(sum(1, 2));
    6. System.out.println(sum(4, 6, 1, 3));
    7. }
    8. public static int sum(int... nums) {
    9. int sum = 0;
    10. for (int i : nums) {
    11. sum += i;
    12. }
    13. return sum;
    14. }
    15. }

    运行上面的程序,结果符合预期,分别打印了 0,1,3,14 

    下为在jdbc中的应用 

    1. ResultSet query(String sql, Object...params);
    2. int update(String sql, Object...params);

     

    Java 中的几种基本数据类型了解么? 

    Java 中有 8 种基本数据类型,分别为:

    • 6 种数字类型:
      • 4 种整数型:byteshortintlong
      • 2 种浮点型:floatdouble
    • 1 种字符类型:char
    • 1 种布尔型:boolean

    这 8 种基本数据类型的默认值以及所占空间的大小如下:

     

    Java 的每种基本类型所占存储空间的大小不会像其他大多数语言那样随机器硬件架构的变化而变化。这种所占存储空间大小的不变性是 Java 程序比用其他大多数语言编写的程序更具可移植性的原因之一。

     注意:

    1. Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析。
    2. char a = 'h'char :单引号,String a = "hello" :双引号。

    这八种基本类型都有对应的包装类分别为:ByteShortIntegerLongFloatDoubleCharacterBoolean 。

  • 相关阅读:
    同样是巡检,巡检系统在不同行业运用大不同
    30行自己写并发工具类(Semaphore, CyclicBarrier, CountDownLatch)是什么体验?
    为什么我在领英上搜到的客户都是显示领英会员(Linkedin Member)?
    详解redis的三种特殊数据类型
    麒麟KYLINOS桌面操作系统2303上安装tigervnc
    如何用Postman做接口自动化测试
    如何通过执行SQL为低代码项目提速?
    关于“研发效能冷思考”的冷思考 | IDCF
    软件测试学什么-如何才能按时上线
    JAVA工作经验1年面试题
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/127896711