首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
面试题-Java基础
扎心柯
创建于2023-01-30
订阅专栏
面试题-Java基础
暂无订阅
共19篇文章
创建于2023-01-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
(面试题)并发的三大特性
其实这个问题过于简洁了,应该叫做代码在并发情况下是线程安全必须要满足的三大特性 原子性:一个或多个操作,要么都做要么都不做,执行过程中不能被打断 解决方案:(1)CAS
(面试题)项目中使用到的日志框架
使用到的门面日志框架是Slf4j 使用到的真实日志框架就是SpringBoot框架默认的logback日志框架
(面试题)反射的作用、常用API、使用场景
定义:反射能够在程序运行时获取一个类的所有信息,比如属性和方法,并且能够使用这个类的所有属性和方法 作用:让代码更灵活,降低耦合度 常见API: 获取Class对象,使用xxx.getClass()方
(面试题)HashMap树化条件+为什么
树化条件:链表长度大于8,并且数组长度大于64 为什么: 链表长度大于8,是因为泊松分布。 数组长度大于64,是因为防止扩容带来反树化。
(面试题)HashMap的容量为什么是2的n次方
这个可以看一下HashMap的源码,我看的版本是jdk1.8版本的 put方法:需要判断这个元素应该放到哪个桶里,使用的算法是(n-1) & 这个元素的hash值。这里的n指的是hashmap的大小,
(面试题)对线程安全的理解
线程安全,应该说是内存安全,堆是共享内存,可以被所有线程访问 用一段《深入理解jvm虚拟机》中的话来说 解释: 同步控制:比如ThreadLocal、CAS、Synchronized和Lock锁 正确
(面试题)sleep和wait区别
是否持有锁:sleep会持有锁进行睡觉,但是wait会放开锁进行睡觉 是否可以自己醒来:sleep可以自己醒来,但是wait不能自己醒来,必须别的线程使用notify唤醒 设计目的:sleep设计是让
(面试题)Java中的异常体系
顶级接口是Throwable,下面有两个实现类 Error是程序无法处理的错误,一旦出现这个错误,程序将被迫中止,比如内存溢出OOM Exception是程序可以处理的异常,可以进行捕获处理,就不会导
(面试题)HashMap 和 Hashtable的区别
线程安全:Hashtable是线程安全的,看源码可以看到Hashtable每个方法上都加了synchornized来进行同步。HashMap是线程不安全的,方法上没有进行同步措施,再jdk1.7版本h
(面试题)ArrayList和LinkedList区别
首先,底层数据结构不同 ArrayList底层是一个动态数组,源码中使用System.arrayCopy进行扩容,扩容后的数组就是当前数组的长度 + 当前数组右移一位,也就是1.5倍 LinkedLi
(面试题)hashCode和equals方法
hashCode方法如果不重写的话,默认根据对象地址返回一个int类型的hash码,我们一般重写根据对象的属性返回hash码 equals方法如果不重写的话,默认根据对象在堆中的地址进行比较,我们一般
(面试题)接口和抽象类的区别
区别: 一个类只能继承一个抽象类,但是可以继承多个接口 抽象类中的成员变量可以是任意型的,接口中的成员变量必须是public abstract final修饰的 抽象类中可以存在普通的成员函数,接口中
(面试题)重载和重写的区别
重载:发生在一个类中,方法名相同,参数类型不同,个数不同,顺序不同。满足前面的条件后,方法的返回值和访问修饰符可以不同。 重写:发生在父类和子类之间,方法名和参数列表必须相同
(面试题)String、StringBuilder、StringBuffer的区别
String是不可变的,准确来说是String内部的char数组是不可变的。 区别: StringBuffer是线程安全的,如果点开源码查看,会看到所有方法上面都加了synchronized关键字来同
(面试题)为什么局部内部类和匿名内部类都只能访问final修饰的局部变量
这是因为局部内部类和匿名内部类 和 方法的生命周期不一致造成的,方法的生命周期结束后局部变量就会被销毁。但是此时局部内部类和匿名内部类还没有完成任务,所以局部变量还不能销毁,否则会造成空指针。 为了解
(面试题)Final关键词作用
final如果修饰类,则该类不可被继承 final如果修饰方法,则该方法不可以被重写 final如果修饰变量,则该属性一旦被赋值就不可以被更改
(面试题)==和equals区别
==如果比较的是基本数据类型,那么比较的是字面量。如果比较的是引用类型,那么比较的是该对象在堆中的内存地址。 equals是一个方法,如果该对象没有重写这个方法,源码中默认采用的就是==比较,所以通常
(面试题)JDK,JRE,JVM的关系
- JDK:就是Java Development kit,翻译过来就是Java开发工具包,这是给开发人员使用的,包含着JRE以及一些Java工具,比如Jstack打印堆栈信息。 - JRE:就是Jav
(面试题)谈谈你对面向对象的理解
既然谈到面向对象,就必须要说面向过程,面向过程注重的是问题的具体执行步骤,面向对象注重的有哪些参与者(对象)、各个参与者的负责的功能 然后聊一下面向对象的三大特性: 封装: 外界必须通过该对象允许的方