
面试题
文章平均质量分 86
面试题
爪蛙毁一生
6
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java面试题-设计模式基础
需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:1.类图中的符号+:表示public-:表示private#:表示protected2.泛化关系(继承)用带空心三角箭头的实线来表示3.依赖关系使用带箭头的虚线来表示//添加配料。原创 2023-09-24 16:07:11 · 758 阅读 · 0 评论 -
java面试题-MySQL相关面试题
*候选人:**嗯,索引在项目中还是比较常见的,它是帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗好的~,聚簇索引主要是指数据与索引放到一块,B+树的叶子节点保存了整行数据,有且只有一个,一般情况下主键在作为聚簇索引的非聚簇索引值的是数据与索引分开存储,B+树的叶子节点保存对应的主键,可以有多个,一般我们自己定义的索引都是非聚簇索引。原创 2023-09-05 17:29:02 · 329 阅读 · 0 评论 -
java面试题-RabbitMQ面试题
嗯!我们当时MYSQL和Redis的数据双写一致性就是采用RabbitMQ实现同步的,这里面就要求了消息的高可用性,我们要保证消息的不丢失。主要从三个层面考虑第一个是开启生产者确认机制,确保生产者的消息能到达队列,如果报错可以先记录到日志中,再去修复数据第二个是开启持久化功能,确保消息未消费前在队列中不会丢失,其中的交换机、队列、和消息都要做持久化。原创 2023-09-10 17:02:47 · 557 阅读 · 0 评论 -
java面试题-集合类面试题
候选人好的在添加元素或初始化的时候需要调用resize方法进行扩容,第一次添加数据初始化数组长度为16,以后每次每次扩容都是达到了扩容阈值(数组长度 * 0.75)每次扩容的时候,都是扩容之前容量的2倍;扩容之后,会新创建一个数组,需要把老数组中的数据挪动到新的数组中没有hash冲突的节点,则直接使用 e.hash & (newCap - 1) 计算新数组的索引位置如果是红黑树,走红黑树的添加。原创 2023-09-24 14:02:40 · 291 阅读 · 0 评论 -
java面试题-Redis相关面试题
候选人嗯~~,我想一下缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。这种情况大概率是遭到了攻击。解决方案的话,我们通常都会用布隆过滤器来解决它面试官候选人嗯,是这样~布隆过滤器主要是用于检索一个元素是否在一个集合中。我们当时使用的是redisson实现的布隆过滤器。它的底层主要是先去初始化一个比较大数组,里面存放的二进制0或1。原创 2023-09-04 20:40:15 · 1208 阅读 · 0 评论 -
java面试题-学成在线项目
媒资管理系统是每个在线教育平台所必须具备的,查阅百度百科对它的定义如下:媒体资源管理(Media AssetManagement,MAM)系统是建立在多媒体、网络、数据库和数字存储等先进技术基础上的一个对各种媒体及内容(如视/音频资料、文本文件、图表等)进行数字化存储、管理以及应用的总体解决方案,包括数字媒体的采集、编目、管理、传输和编码转换等所有环节。原创 2023-09-24 17:48:56 · 1211 阅读 · 0 评论 -
java面试题-常见技术场景
单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统在以前的时候,一般我们就单系统,所有的功能都在同一个系统上。单体系统的session共享登录:将用户信息保存在Session对象中如果在Session对象中能查到,说明已经登录如果在Session对象中查不到,说明没登录(或者已经退出了登录)注销(退出登录):从Session中删除用户的信息后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。原创 2023-09-24 17:48:44 · 928 阅读 · 0 评论 -
java面试题-微服务面试题
提供了两种方式:1,创建类实现IRule接口,可以指定负载均衡策略,这个是全局的,对所有的远程调用都起作用2,在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略,只是对配置的这个服务生效远程调用服务雪崩是指一个服务失败,导致整条链路的服务都失败的情形,一般我们在项目解决的话就是两种方案,第一个是服务降级,第二个是服务熔断,如果流量太大的话,可以考虑限流。原创 2023-09-10 15:46:24 · 640 阅读 · 0 评论 -
java面试题-jvm基础知识
难易程度:☆☆☆出现频率:☆☆☆☆程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。javap -verbose xx.class 打印堆栈大小,局部变量的数量和方法的参数。 java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。原创 2023-09-24 14:15:35 · 274 阅读 · 0 评论 -
java面试题-并发编程基础
CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。在JUC( java.util.concurrent )包下实现的很多类都用到了CAS操作AbstractQueuedSynchronizer(AQS框架)AtomicXXX类例子:我们还是基于刚才学习过的JMM内存模型进行说明线程1与线程2都从主内存中获取变量int a = 100,同时放到各个线程的工作内存中。原创 2023-09-24 16:06:35 · 306 阅读 · 0 评论 -
java面试题-并发编程相关面试题
候选人好的。CAS的全称是: Compare And Swap(比较再交换);它体现的一种乐观锁的思想,在无锁状态下保证线程操作数据的原子性。CAS使用到的地方很多:AQS框架、AtomicXXX类在操作共享变量的时候使用的自旋锁,效率上更高一些CAS的底层是调用的Unsafe类中的方法,都是操作系统提供的,其他语言实现AQS的话,其实就一个jdk提供的类AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。原创 2023-09-18 11:07:35 · 266 阅读 · 0 评论 -
java面试题-spring与mybatis框架面试题
候选人aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,一般比如可以做为公共日志保存,事务处理等面试官。原创 2023-09-06 16:53:07 · 303 阅读 · 0 评论 -
java面试题-jvm面试题
嗯,是这样~~java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。并且这个线程的执行时间用完了,接着处理器就会又来执行被挂起的这个线程。这时候程序计数器就起到了关键作用,程序计数器在来回切换的线程中记录他上一次执行的行号,然后接着继续向下执行。面试官好的~Java中的堆术语线程共享的区域。主要用来保存对象实例,数组。原创 2023-09-18 20:58:43 · 265 阅读 · 0 评论 -
java面试题-集合类基础
数组(Array)是一种用连续的内存空间存储相同数据类型数据的线性数据结构。我们定义了这么一个数组之后,在内存的表示是这样的:现在假如,我们通过arrar[1],想要获得下标为1这个元素,但是现在栈内存中指向的堆内存数组的首地址,它是如何获取下标为1这个数据的?二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。二叉树每个节点的左子树和右子树也分别满足二叉树的定义。原创 2023-09-24 16:05:45 · 373 阅读 · 0 评论