首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Java面试题集锦 - 有序号
lfsun666
创建于2023-02-23
订阅专栏
为什么叫“Java面试题集锦”?因为涵盖了好多好多面试题!嘿嘿嘿 那不是废话吗!!!
等 21 人订阅
共999篇文章
创建于2023-02-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【440、浏览器输入 URL 过程】
浏览器输入 URL 的过程通常可以概括为以下几个步骤: DNS 解析:当用户在浏览器中输入 URL 后,浏览器会先尝试将 URL 中的主机名部分解析成对应的 IP 地址,这个过程称为 DNS 解析。如
【439、用户登录密码存储,哈希和加盐的过程是在前端还是后端】
用户登录密码存储的哈希和加盐的过程应该在后端进行,因为前端是不安全的,存在被攻击者篡改的风险。如果将密码哈希和加盐的过程放在前端,那么攻击者可以通过修改前端代码来绕过哈希和加盐的保护,直接将明文密码发
【438、高并发场景下评论点赞功能的设计(点赞数量须持久化到db)】
在高并发场景下设计评论点赞功能,需要考虑以下几个方面: 缓存设计:为了避免频繁地访问数据库,可以使用缓存技术,将点赞数量存储在缓存中。常见的缓存方案有 Redis 和 Memcached,可以根据具体
【437、如何处理分布式锁因为超时被提前释放的问题】
分布式锁因为超时被提前释放可能会导致多个客户端同时持有锁,从而破坏了锁的互斥性,进而影响系统的正确性。为了解决这个问题,我们可以采取以下几种方式: 设置锁的超时时间足够长:如果锁的超时时间足够长,那么
【436、如果需要一个严格的分布式锁,需要怎么做】
要实现一个严格的分布式锁,需要考虑以下几个方面: 选择适合的分布式锁算法:常见的分布式锁算法包括基于ZooKeeper的实现、Redis的实现、基于数据库的实现等等。每种实现方式都有自己的优缺点,需要
【435、如何保证缓存和数据库的一致性】
要保证缓存和数据库的一致性,可以考虑以下几种方法: 1.缓存穿透检查:对于缓存中没有的数据,在访问数据库之前,可以先检查一下该数据是否存在,如果不存在,则不会查询数据库并直接返回一个默认值,这样可以防
【434、tcp协议的连接、断开过程】
TCP协议的连接和断开过程分别为"三次握手"和"四次挥手"。 三次握手 在TCP连接过程中,客户端和服务器端需要通过三次握手来建立连接。 首先,客户端发送一个SYN包(同步包)给服务器端,其中包含一个
【433、线程安全的数组和链表有哪些】
线程安全的数组和链表可以分别通过以下数据结构实现: 线程安全的数组 CopyOnWriteArrayList:实现了可变数组的线程安全版本,基于写时复制的思想,在写操作时会先复制一份原数组,在新数组上
【432、阻塞队列里锁的如何实现的,设计阻塞队列时,主要阻塞在哪些操作上】
阻塞队列是一种常用的并发数据结构,它可以实现多线程之间的数据交换和通信。阻塞队列需要在添加元素或者移除元素时进行线程同步,以保证数据的一致性和正确性。其中锁的实现方式可以有多种,包括 synchron
【431、java多线程下的变量可见性有什么解决方案】
在 Java 中,多线程下的变量可见性问题是指一个线程修改了某个共享变量的值,但是由于指令重排序、缓存、编译器优化等原因,其他线程无法立即看到这个变量的修改结果,导致程序出现错误。 解决多线程下的变量
【430、想要map里的value在gc时可以被及时回收,应该对map做什么样的改造呢】
在 Java 中,Map 的值类型是对象,如果这些对象不再被使用,垃圾回收器会自动回收它们的内存。但是,如果你想要确保这些对象在不使用时能够及时被回收,可以考虑使用 WeakHashMap。 Weak
【429、类的static变量时gc root吗,一个普通map对象的key,value可以被回收吗】
类的 static 变量本身不是 GC Root,但是如果这些 static 变量引用了某些对象,而这些对象又引用了其他对象,那么这些对象就可以被视为 GC Root。 对于普通的 Map 对象,如果
【428、可达性分析里哪些对象可以作为gc root】
在可达性分析中,以下对象可以作为GC Root: 虚拟机栈中引用的对象:虚拟机栈是线程私有的,它包含了局部变量和正在执行的方法的引用。因此,在虚拟机栈中引用的对象都是活跃的对象,可以作为GC Root
【427、Java gc算法了解哪些】
Java 的垃圾回收算法主要有以下几种: 标记-清除算法(Mark-Sweep) 标记-清除算法是一种最古老的垃圾回收算法,其基本思想是先标记出所有需要回收的对象,然后统一回收这些对象。但是标记清除算
【426、BIO、NIO、AIO的区别是什么】
BIO、NIO、AIO 是三种不同的 I/O 模型,它们之间的区别如下: BIO(Blocking I/O)阻塞 I/O BIO 是一种同步阻塞的 I/O 模型,指的是在进行 I/O 操作时,必须等待
【425、递归实现单链表反转】
在递归函数 reverseList 中,首先检查链表是否为空或只有一个节点。如果是,则直接返回原始链表。否则,使用递归函数 reverseList 反转除头节点之外的其余节点,并将其返回。接下来,将头
【424、单例实现的策略模式】
在上面的示例中,SingletonStrategy 类实现了单例模式,PaymentStrategy 接口定义了支付策略,CreditCardPayment 和 PayPalPayment 类实现了不
【423、介绍乐观锁、悲观锁、重入锁、排他锁】
乐观锁 乐观锁是一种基于数据版本的锁机制,假设在并发情况下,不会有大量的写冲突,因此多个事务可以同时读取同一数据,但在写入时必须先判断该数据是否被其他事务修改过,如果没有修改过,则可以进行写入操作。如
【422、MySQL 里行锁和表锁及其特性】
在 MySQL 中,锁是一种用于协调并发访问数据库资源的机制。MySQL 支持两种类型的锁定:行级锁和表级锁。 行级锁 行级锁是指在数据库表中对某一行进行独占访问,防止其他事务对该行进行修改或删除。行
【421、优化 if-else 方法】
以下是一些在 Java 中优化 if-else 的代码示例: 使用多态 使用状态模式 使用数据结构 总之,在 Java 中优化 if-else 的关键是要理解需求,选择合适的技术和策略,并保持代码简洁
下一页