• java面试题


    1.String是基本数据类型么?
    不是基本数据类型,byte int char long flout duable boolem short

    2.int 和integer区别
    int是基本数据类型,integer 是一个包装类


    3..JAVA中几种集合(List、Set和Map)的区别?
    list 和set 都继承了colletion 接口
    lis里包含arraylist 和linklist ,
    区别:arrarylist 采用数组形式保存对象的,对象在连续的位置中,缺点就是插入删除非常麻烦,
    linklist 双链表,对象存在独立的空间中,保存下一个连接的索引,但查询非常麻烦,从第一个索引开始擦寻。

    4.HashMap和Hashtable的区别?
    HashMap线程不安全,效率高。可以存储null键值对,链表中的元素超过了8个后, 会将链表转换为红黑树
    Hashtable线程安全(每个方法中都加入了synchronized),效率低,不可以存储null键值


    5.list中常用的方法

    remove (移除)  add ,adds 添加数组

    6.public,friendly,protected,private的区别?
    public权限最大

    protect不同包的其他类不可用

    friendly子类不能调用

    (什么都不写的时候) private只能本类调用


    7.方法重载和重写的区别?
    重载在一个类里面方法名相同,参数不同的两个方法
    重写是在不同类里面的而且必须是集成关系,返回值类型和参数必须相同

    8.equals方法跟==有什么区别
    equals ():用来检测两个对象是否相等,即两个对象的内容是否相等。.
    ==:用于比较引用和比较基本数据类型时具有不同的功能


    9.静态变量和实例变量的区别
    类的静态变量在内存中只有一个,而实例变量取决于类的实例。
    每创建一个实例,就会生成一个实例变量,而且生命周期也不同

    10.final,finally,finalize,friend的区别?
    friend表示在碧昂辆中没有任何修饰符
    final是一个关键字,定义完变量就不能改变了,
    finally是处理 异常用到的,
    finalize是一个垃圾回收器准备释放内存方法

    11.String能否被继承?

    不能被继承,因为它是final,常量

    12.Final类有什么特点?
    属性常量 方法不可以overridding类 不可以继承

    13.异常和错误的区别
    Error表示系统级的错误和程序不必处理的异常,
    Exception表示需要捕捉或者需要程序进行处理的异常

    14..super()与this()的区别?
    this调用本类的对象,super()调用父类的对象。

    15.java的核心优势是什么?
    电脑和电脑之间通过互联网连在了一起,但是没个电脑的系统都不一样,
    这个时候我们需要一个语言可以在任何的系统上面跑,就出了java语言跨平台么,
    而且java发展悠久所以java遇到的问题比较完善。

    16.解释一下线程和进程?
    一个程序员需要最少需要一个进程,而一个进程最少需要一个线程,所以线程是程序执行的最小单位。


    17.普通类和抽象类有哪些区别?
    普通类不能包含抽象⽅法,抽象类可以包含抽象⽅法。
    抽象类不能直接实例化,普通类可以直接实例化。


    18.String,Stringbuffer,StringBuilder的区别
    String:
    String类是一个不可变的类,一旦创建就不可以修改。
    String是final类,不能被继承
    String实现了equals()方法和hashCode()方法


    StringBuffer:

    继承自AbstractStringBuilder,是可变类。

    StringBuffer是线程安全的
    可以通过append方法动态构造数据。


    StringBuilder:

    继承自AbstractStringBuilder,是可变类。
    StringBuilder是非线性安全的。
    执行效率比StringBuffer高。

    19.Java获取反射的三种方法:
    第一种,使用 Class.forName 静态方法。
    第二种,使用类的.class 方法
    第三种,使用实例对象的 getClass() 方法。


    20.Java 中 hash 值的含义
    hash 值主要是用来在散列存储结构中确定对象的存储地址的,提高对象的查询效率,如HashMap、
    HashTable等;
    如果两个对象相同,那么这两个对象的 hash 值一定相等;
    如果要重写对象的 equals 方法,那么尽量重写对象的 hashCode 方法;
    两个对象的 hash 值相等,并不一定表示两个对象相同。


    21.hashmap 原理
    数据结构是数组和链表的结合,key和value值都允许为空,key为null的键值对永远放在以table【0】
    为结点的链表中。

    22.java多线程中sleep和wait的4个区别
    sleep是线程中的方法,但是wait是Object中的方法,sleep方法不会释放lock,但是wait会释放,
    而且会加入到等待队列中。
    sleep不需要被唤醒,但是wait需要


    23.MVC
    MVC是一种设计模式,将软件分为三层,分别是模型层,视图层,控制器层。其中模型层代表的是数据,
    视图层代表的是界面,
    控制器层代表的是逻辑处理,是连接视图与模型之前的桥梁。降低耦合,便于代码的维护


    24什么是多线程?
    多线程是指程序中包含多个流,即在一个程序中可以同时进行多个不同的线程来执行不同的任务

    25.多线程的优劣?
    ​ 优点:可以提高CPU利用率, 提高了程序的效率, 单个程序可以创建多个不同的线程来完成各自的任务
    ​ 缺点:线程也是程序,需要占据内存.多线程需要协调和管理,所以需要CPU跟踪线程

    26.并发和并行的区别

    并发:多个任务在同一个CPU上,按照细分的时间片段轮流交替执行.
    ​ 并行:单位时间内,多个处理器或者多核处理器同时处理多个任务,真正意义上的同时进行

    27.创建线程的四种方式
    ​ 继承Thread类
    ​ 实现Runnable接口
    ​ 实现Callable接口
    ​ Executors工具类创建线程池

    28.run()方法和start()方法有什么区别
    ​ start()方法用于启动线程, run()方法用于执行线程的运行代码, run()可以反复调用, 而start() 方法只能被调用一次
    ​ 调用start()方法启动线程可以使线程进入就绪状态, 等待运行; run()方法只是thread的一个普通方法调用, 还是在主线程里执行.

    29.sleep()和wait()有什么区别
    ​ 相同:两者都可以使线程进入等待状态
    ​ 不同:sleep()是Thread类下的静态方法, wait()是Object类下的方法
    ​ sleep()不释放锁, wait()释放锁
    ​ wait()常用语线程之间的通信, sleep()常用语暂停执行

    30.IO流是用来处理设备之间传输数据,下载文件,上传文件
    输入流:程序从输入流中读取数据,
    输出流:程序向输出流写入数据。程序将数据输出到外界

    31.SpringMVC运行原理

    客户端请求提交到DispatcherServlet
    由DispatcherServlet控制器查询HandlerMapping,找到并分发到指定的Controller中。
    Controller调用业务逻辑处理后,返回ModelAndView
    DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图
    视图负责将结果显示到客户端

  • 相关阅读:
    STM32CubeMX ADC参数配置页中文注解
    CSDN Meetup 回顾 丨从数据湖到指标中台,提升数据分析 ROI
    关于使用腾讯云HiFlow场景连接器每天提醒签到打卡
    数据库索引种类
    【CVPR 2023】解读VideoFusion:基于噪声共享机制的视频生成
    澳元兑美元预测:美元可能因美国经济衰退担忧而进一步下跌(MogaFX)
    MySQL 学习笔记
    包装类知识点
    IPv6简介
    本地服务访问图片列表,图片403问题解决
  • 原文地址:https://blog.csdn.net/Moonxiyue/article/details/125995391