面经
文章平均质量分 92
追光而遇
这个作者很懒,什么都没留下…
展开
-
面试准备0918
AQS是一个抽象类,可以用来构造锁和同步类,如ReentrantLockAQS的原理是,AQS内部有三个核心组件,一个是state代表加锁状态初始值为0,一个是获取到锁的线程,还有一个阻塞队列。当有线程想获取锁时,会以CAS的形式将state变为1,CAS成功后便将加锁线程设为自己。当其他线程来竞争锁时会判断state是不是0,不是0再判断加锁线程是不是自己,不是的话就把自己放入阻塞队列。这个阻塞队列是用双向链表实现的。原创 2023-09-17 22:01:31 · 195 阅读 · 0 评论 -
Redis面试题总结
Redis是一个基于Key-Value存储结构的Nosql开源内存数据库。它提供了5种常用的数据类型,String、Map、Set、ZSet(有序集合)、Listredis5.0之后引入Stream3种特殊的数据结构类型:Geospatial、Hyperloglog、BitmapBitmaps :用一个比特位来映射某个元素的状态,在 Redis 中,它的底层是基于字符串类型实现的 ,可以把 bitmaps 成作一个以比特位为单位的数组针对不同的结构,可以解决不同场景的问题。原创 2023-09-05 14:43:16 · 114 阅读 · 0 评论 -
MySQL面试题总结2
内连接(inner join):取得两张表中满足存在连接匹配关系的记录。外连接(outer join):取得两张表中满足存在连接匹配关系的记录,以及某张表 (或两张表)中不满足匹配关系的记录。交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选, 也被称为:笛卡尔积。原创 2023-09-04 17:14:32 · 217 阅读 · 0 评论 -
面试题
这个需要结合 JVM 的相关知识,静态方法是属于类的,在类加载的时候就会分配内存,可以通过类名直接访问。而非静态成员属于实例对象,只有在对象实例化之后才存在,然后通过类的实例对象去访问。在类的非静态成员不存在的时候静态成员就已经存在了,此时调用在内存中还不存在的非静态成员,属于非法操作。如果说大家研究过框架的底层原理或者咱们自己写过框架的话,一定对反射这个概念不陌生。反射之所以被称为框架的灵魂,主要是因为它赋予了我们在运行时分析类以及执行类中方法的能力。原创 2023-08-31 13:46:28 · 143 阅读 · 0 评论 -
面试题总结
保护方法,实现对象的浅复制,只有实现了 Cloneable 接口才可以调用该方法,否则抛出CloneNotSupportedException 异常,深拷贝也需要实现 Cloneable,同时其成员变量为引用类型的也需要实现 Cloneable,然后重写 clone 方法。配合 synchronized 使用,该方法唤醒在该对象上等待队列中的某个线程(同步队列中的线程是给 抢占 CPU 的线程,等待队列中的线程指的是等待唤醒的线程)。该方法使用频率非常高。1/ 其他线程调用了该对象的 notify 方法;原创 2023-08-20 23:53:19 · 156 阅读 · 0 评论 -
Java异常面试题
注意:在 finally 中改变返回值的做法是不好的,因为如果存在 finally 代码块,try中的 return 语句不会立马返回调用者,而是记录下返回值待 finally 代码块执行完毕之后再向调用者返回其值,然后如果在 finally 中修改了返回值,就会返回修改后的值。在程序中,通常不会自定义该类异常,而是直接使用系统提供的异常类。但是,使用 try 代码块是有原因的,一般调用一个或多个可能抛出异常的方法,而且,你自己也可能会抛出一个异常,这意味着代码可能不会执行到 try 代码块的最后部分。原创 2023-08-14 23:28:10 · 78 阅读 · 0 评论 -
Java集合容器面试题
这样我们就可以将拥有相同哈希值的对象组织成一个链表放在hash值所对应的bucket下,但相比于hashCode返回的int类型,我们HashMap初始的容量大小DEFAULT_INITIAL_CAPACITY = 1原创 2023-08-14 23:27:38 · 59 阅读 · 0 评论 -
Java基础知识面试题
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。原创 2023-08-14 23:26:33 · 205 阅读 · 0 评论 -
MySQL数据库面试题
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。作用:用于存取数据、查询、更新和管理关系数据库系统。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。原创 2023-08-14 23:02:01 · 445 阅读 · 0 评论 -
网络编程面试题
HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方;而非对称加密是指使用一对非对称密钥,即公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性;但是和对称加密比起来,非常的慢。原创 2023-08-14 22:17:32 · 59 阅读 · 0 评论 -
MyBatis面试题
MyBatis 是一款优秀的持久层框架,一个半 ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。原创 2023-08-14 22:01:58 · 71 阅读 · 0 评论 -
Spring面试题
Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。原创 2023-08-14 21:31:19 · 115 阅读 · 0 评论 -
JVM面试题总结
CMS 是英文 Concurrent Mark-Sweep 的简称,是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动 JVM 的参数加上“-XX:+UseConcMarkSweepGC”来指定使用 CMS 垃圾回收器。原创 2023-08-14 20:58:38 · 167 阅读 · 0 评论