• java面试基础(三)


    21. static关键的独特之处?

    答:static修饰类的成员变量被所有实例所共享。

    student类定义了静态变量schoolName,被所有实例所共享。

    static修饰方法不需要创建对象,直接通过类名调用

    static修饰了静态的代码块,当类被加载时,由于类被加载一次,静态代码块只执行一次

    22. 谈谈你对java集合的理解?

    答:set,list,quque,map是java集合中的四大类。set, list, quque都继承自collection接口。set是无序的、元素不可重复,list有序,元素可以重复,quque是队列。map是key-value映射关系,常见集合的实现类:hashset, treeset, arraylist, linkedlist, arraydeque, hashmap, treemap。以上这是集合实现类都是java.util包,实现大多数是非线程安全。

    23. 谈谈你了解的设计模式?

    答:spring中的单例模式、工厂模式。单例模式是创建型设计模式,确保一个类只有一个实例存在。单例模式最重要的构造函数私有化(private),通过公有的静态方法获取对象实例。工厂模式(Factory Method Pattern)也叫虚拟构造函数模式或多态性工厂模式。实现思路: 定义一个工厂类,根据传入参数不同返回不同的实例,被创建实例具有共同的父类或接口。

    24. mysql字段数据类型和java属性数据类型的区别?

    mysql字段数据类型:数值类型:tinyint, smallint, int, float, double

    日期时间类型:year, time, date, datetime

    字符串类型:char, varchar, text

    java类属性数据类型:基本数据类型和引用类型

    基本数据类型:整型(byte, int, short, long),浮点型(float, double),字符型(char),逻辑型(boolean)

    引用类型:数组

    25. list和set的区别?

    答:list和set都是collection的子接口,它们的区别是在有序性和重复性。list的元素代表有序可重复的集合,集合的每个元素对应的顺序索引,通过索引访问指定位置的集合元素。set代表的是无序不可重复的集合。虽然set是一个无序集合,但是它有支持排序的实现类treeset,treeset确保集合元素处于排序状态,它是由treemap 实现的,treeset是非线程安全的,但是它内部元素值不能为null。

    26. arraylist和linkedlist的区别?

    答:arraylist基于数组的,linkedlist基于双向链表。对于随机访问arraylist优于linkedlist,arraylist根据下标O(1)时间复杂度进行随机访问,linkedlist依靠地址指针和下一个元素查找元素的时间复杂度O(n)。插入删除操作linklist优于arraylist。linkedlist比arraylist更占内存。

    27. 说说重载和重写的区别?

    答:重载要求发生在同一个类中,多个方法之间方法名相同且参数列表不同。重载与方法的返回值和访问修饰符无关。重写发生在父类子类中,子类方法和父类方法构成重写关系,子类的方法名,参数列表必须与父类方法相同。返回值要小于等于父类方法,抛出异常小于等于父类方法,访问修饰符大于等于父类方法。 同一个类有多个构造器,多个构造器形参列表不同称为构造器重载。构造器重载让java类包含多个初始化逻辑。构造方法不能重写。因为构造方法需要和类保持同名,而重写要求子类方法和父类方法保持同名。

    关注关注,主页更多的java课程学习路线,笔记,面试等架构资料


     

  • 相关阅读:
    Doris扩容和缩容
    本周的error记录
    SQL窗口函数, 测试题
    刷一下算法
    在线商城项目EShop【ListView、adapter】
    Pyside6 QRadioButton
    【经验分享】openGauss容灾集群搭建
    centos 离线环境安装docker
    windows10系统64位安装delphiXE11.2完整教程
    3. 一级缓存解析
  • 原文地址:https://blog.csdn.net/q66562636/article/details/125473340