
java面试
凐滅
这个作者很懒,什么都没留下…
展开
-
Java基础面试-BeanFactroy和ApplicationContext
ApplicationContext是BeanFactory的子接口。原创 2023-10-13 19:34:49 · 353 阅读 · 0 评论 -
Java基础面试-IOC
IOC有三个概念:容器概念、控制反转、依赖注入。原创 2023-10-13 18:35:57 · 326 阅读 · 0 评论 -
高并发优化
通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。原创 2023-10-10 11:18:25 · 121 阅读 · 0 评论 -
Java基础面试-多线程
不是线程安全,应该是内存安全,堆是共享内存,可以被所有线程访问和单线程执行的结果一样,就是线程安全的栈:每个线程相互独立,保证代码执行顺序堆:每个进程会被分配独立的内存空间,里面有一块堆内存,进程内的所有线程都可以访问到这块堆内存,这就是造成线程安全问题的潜在原因。原创 2023-10-13 12:11:46 · 287 阅读 · 0 评论 -
Java基础面试-HashMap和HashTable
jdk8开始链表高度到8、数组长度超过64,链表转变为红黑树,元素以内部类Node节点存在。原创 2023-10-12 18:42:26 · 255 阅读 · 0 评论 -
Java基础面试-ArrayList和LinkedList的区别
基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制: 因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并指定初始容量可以极大提升性能、甚至超过linkedList (需要创建大量的node对象)原创 2023-10-12 15:59:20 · 210 阅读 · 0 评论 -
Java基础面试-hashCode与equals
hashCode( 的作用是获取哈希码,也称为散列码,它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引引位置,hashCode0 定义在]DK的Object.java中,Java中的任何类都包含有hashCodel 函数。散列表存储的是键值对(keyvalue),它的特点是: 能根据键”快速的检索出对应的“值”。这其中就利用到了散列码!(可以快速找到所需要的对象)原创 2023-10-12 15:28:06 · 196 阅读 · 0 评论 -
Java基础面试-List和Set
List和Set的区别List:有序,按对象进入顺序保存。可重复,允许多个Null元素对象,可以使用Iterator取出所有元素,可以获取指定下标的元素Set:无序,不可重复,最多允许有一个Null元素对象,取元素时只能用Iterator接口取得所有元素,再逐一遍历各个元素原创 2023-10-12 14:56:47 · 62 阅读 · 0 评论 -
Java基础面试-接口和抽象类的区别
当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。而A减B的部分,留给各个子类自己实现。接口的核心是定义行为,即实现类可以做什么,至于实现类主体是谁、是如何实现的,接口并不关心。接口的设计目的,是对类的行为进行约束(更准确的说是一种“有”约束,因为接口不能规定类不可以有什么行为),也就是提供一种机制,可以强制要求不同的类具有相同的行为。使用场景:当你关注一个事物的本质的时候,用抽象类,当你关注一个操作的时候,用接口。原创 2023-10-12 14:26:06 · 161 阅读 · 0 评论 -
Java基础面试-重载和重写的区别
发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private则子类就不能重写该方法。:发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可。以不同,发生在编译时。原创 2023-10-12 11:05:43 · 527 阅读 · 0 评论 -
Java基础面试-String、StringBuff、StringBuilder
场景: 经常需要改变字符串内容时使用后面两个优先使用StringBuilder,多线程使用共享变量时使用StringBuffer。原创 2023-10-12 10:58:51 · 68 阅读 · 0 评论 -
Java基础面试-final
final(最终的)原创 2023-10-12 10:39:37 · 171 阅读 · 0 评论 -
Java基础面试-JDK JRE JVM
JVM是Java虚拟机,是Java程序运行的核心组件。它是Java的关键特性之一,允许Java程序在不同的平台上独立运行,实现了Java的"一次编写,到处运行"的理念。这样一来,只需要编写一次Java程序,就可以在任何支持Java的平台上运行。JRE是Java运行时环境,它是在计算机上运行Java程序所必需的最小环境。JDK是Java开发工具包,它是Java开发者用于编写、编译、调试和运行Java程序的核心组件。JDK包含了Java编程语言的开发工具和工具集,以及Java标准库和其他一些必要的文件。原创 2023-10-11 17:37:22 · 756 阅读 · 0 评论 -
Java基础面试-面向对象
对比面向过程,是两种不同的处理问题角度面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象),及各自需要做什么比如洗衣机洗衣服面向过程会将任务拆解成一系列的步骤(函数)1、打开洗衣机–.-2放衣服.-3放洗粉–.4、清洗—5烘干面向对象会拆出人和洗衣机两个对象:人:打开洗衣机 放衣服 放洗衣粉洗衣机:清洗 烘干从以上例子能看出,面向过程比较直接高效,而面向对象更易于复用、扩展和维护。原创 2023-10-11 16:21:04 · 260 阅读 · 0 评论 -
Redis持久化方案 RDB,AOF
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化,也是保证redis的稳定性,防止意外发生数据恢复问题。原创 2023-10-10 15:04:26 · 252 阅读 · 0 评论 -
缓存穿透,击穿,雪崩
高并发场景下出现的问题之一。原创 2023-10-10 12:31:04 · 116 阅读 · 0 评论