• java面试题


    1、线程、进程、多线程、线程池

    • 线程:线程是指进程中的一个单独的执行路径,不能单独存在,必须包含在进程中,是进程中的实际运作单位,是操作系统能够进行运算调度的基本单元。
    • 进程:是具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配(处理机个数,内存等资源)的基本单元。一个进程可以包含多个线程,每个线程都可以并行执行不同的任务。
    • 多线程:是指在同一时间内运行多个线程来完成多个任务。多线程提高程序的性能和响应速度。但是增加了代码的复杂性,同时需要考虑线程安全和死锁等问题。
    • 线程池:是一组预先创建的线程,它们可以被重复使用来执行多个任务。使用线程池可以避免在创建和销毁线程时产生额外的开销,从而提高程序的性能。Java中提供了 Executor 框架来实现线程池。

    2、Java集合中List,Map和Set三者的特点以及区别

    List,Map和Set三者的特点

    • List , Set, Map都是接口,List和Set继承至Collection接口,Map为独立接口
    • List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;

    1.List
    特点:List中存储的数据是有顺序的,并且值允许重复;

    2.Map
    特点:
    1.Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的。
    2.Map和Collection没有继承关系。

    3.Set
    特点:Set中存储的数据是无顺序的,并且不允许重复。

    3、讲一下Java内存回收机制

    Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收垃圾(无任何对象引用的对象)

    4、虚拟机和docker什么区别

    1、docker(开源的应用容器引擎)启动快速属于秒级别,而虚拟机通常需要几分钟去启动;
    2、性能损耗不同,docker需要的资源更少;
    3、隔离性不同,docker属于进程之间的隔离,隔离性较弱,而虚拟机可以实现系统级别的隔离。

    5、Java里integer和int区别是什么?

    1.Integer是int的包装类,int是基本类型。
    2.Integer变量必须实例化后才能使用,而int不需要。
    3.Integer是对象的引用,而int是直接存储数值。
    4.Integer默认值是null,而int默认值是0

    6、integer和int是否可以相互赋值?

    能,这是java本身实现的,自动拆箱,装箱的过程也就是自动转换

    7、Java里面有一些访问修饰符吗?然后你说一下有哪几个?然后分别有什么作用?它们的区别是什么?

    • public:public是最为宽松的访问修饰符,用于修饰的成员可以被同一包中的所有类、其他包中的所有类和所有子类所访问。
    • protected:protected修饰符用于修饰类的成员,只有在同一包中的类或其他包中的子类可以访问它,其他类不能访问。
    • private:private是最为严格的访问修饰符,只有在同一类中才能访问该成员,其他类都无法访问。
    • default(也称为包访问权限):当一个类、变量、方法或构造函数没有任何修饰符时,即使用default修饰符。默认访问级别仅适用于同一包中的所有类。

    8、Java中的限制访问范围的关键字有?

    • final关键字:final表示不可更改的、终态的,一旦final修饰的变量被初始化赋值,就无法再更改它的值,final也可以修饰类、方法和参数,表示它们不能被继承、覆盖和改变。
    • abstract关键字:abstract表示抽象的、未实现的,一般用于修饰类和方法。抽象类是不能被实例化的,只能用来继承和派生子类,其中的抽象方法必须在子类中被重写实现。
    • static关键字:static表示静态的、不变的,可以修饰成员变量、方法和代码块。静态变量属于类而非对象,只有一个副本,而且在类加载时就已经初始化,静态方法不需要实例化对象就可以调用,静态代码块在类加载时执行。
    • synchronized关键字:synchronized表示同步的、线程安全的,可以修饰方法和代码块。它可以保证在同一时间只有一个线程可以访问被synchronized修饰的代码,防止出现多线程竞争导致的数据不一致问题。

    9、Java异常有哪些?

    NullPointerException(空指针异常)
    ArithmeticException(算术异常)
    ArrayIndexOutOfBoundsException(数组越界异常)
    RuntimeException(运行时异常)和IOException(输入或输出异常)

    10、RuntimeException和Exception有什么区别?

    Exception:定义方法时必须声明所有可能会抛出的exception;
    Runtime Exception:在定义方法时不需要声明会抛出runtime exception

  • 相关阅读:
    智慧能源一体化管控平台
    达芬奇调色:色彩理论入门
    软件开发工程师笔试记录--关键路径,浮点数计算,地址变换,中断向量,I/O接口,海明码
    大唐杯在仿真时出现的问题,是里面的参数配置有问题吗,还是别的方面出现了问题,求指导
    跨时钟域问题(一)(建立时间保持时间和亚稳态)
    哈希索引和自适应哈希索引
    Spring/SpringBoot自定义线程池
    XX攻击——反射型 XSS 攻击劫持用户浏览器
    【云原生】Prometheus Pushgateway使用详解
    大厂秋招真题【BFS+DP】华为20230921秋招T3-PCB印刷电路板布线(留学生专场)
  • 原文地址:https://blog.csdn.net/m0_61689418/article/details/134097818