java面试回顾
文章平均质量分 66
方便日常查看,平时收集,以便丰富自己。
annkee058
工欲善其事必先利其器
展开
-
京东java面试5
第一次面试:问的基本上都是Java基础的知识,简单的问了些问题,问题大致是以下几个方面的:1、Java集合类,ArrayList LinkedList HashMap等 集合类的线程安全问题 底层数据结构 数组和链表的使用场景 还问到了HashMap的源码2、多线程方面:线程生命周期 线程状态 线程池3、Java内存模型 CAS 原子操作 volatile内存语义 功能4、Static final 关键字 类加载机制初始化顺序5、Switch case 击穿现象等第二次面试:问的框架转载 2021-06-22 10:34:22 · 219 阅读 · 0 评论 -
京东java面试4
一面(基础面:约1个小时)自我介绍,主要讲讲做了什么和擅长什么springmvc和spring-boot区别@Autowired的实现原理Bean的默认作用范围是什么?其他的作用范围?索引是什么概念有什么作用?MySQL里主要有哪些索引结构?哈希索引和B+树索引比较?Java线程池的原理?线程池有哪些?线程池工厂有哪些线程池类型,及其线程池参数是什么?hashmap原理,处理哈希冲突用的哪种方法?还知道什么处理哈希冲突的方法?Java GC机制?GC Roots有哪些?Java怎么进行垃转载 2021-06-22 10:33:21 · 190 阅读 · 0 评论 -
京东java面试3
面试流程先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就阿里而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了,现在基本也是这样的。要注意的点简历一到两页为最佳,将项目经历写2-3个左右就差不多了,一定要写最有亮点的项目.工作经历的起始时间要写清楚,另外大公司都有背调,不要合并或省略一些比较短的工作经历,影响的可能不只是这次面试,而是之后可能转载 2021-06-22 10:32:45 · 404 阅读 · 0 评论 -
京东java面试2
京东技术面试(一):算法面试:二叉树怎么实现的知道哪些排序算法快排怎么实现堆排序怎么实现一道算法题:两个有序数组,有相同的元素,找出来集合类和java高级特性面试链表,数组的优缺点,应用场景,查找元素的复杂度hashmap多线程并发情况下有什么问题(就是jdk1.7hashmap成环)Jvm内存模型Tomcat容器了解吗?有做过jvm调优吗Web项目里前后端连接用什么协议线程创建方式Java中都有哪些锁可重入锁的设计思路是什么hashmap转载 2021-06-22 10:31:52 · 167 阅读 · 0 评论 -
京东java面试1
来源1面试流程 先说下面试流程,一般大公司都有3-4轮技术面,1轮的HR面。就阿里而言,我共经历了4轮技术面,前两轮主要是问基础和项目实现,第3轮是交叉面,两个面试官,主要是问项目实现和拓展。第4轮是部门老大面,主要就问一些架构、技术和业务的理解、个人发展比较抽象的东西了。HR面主要就是跟你聊聊天,看看你的个人稳定性、价值观、主动性之类的,一般HR是不会挂人的,但很多人在HR面后挂了,原因其实不是你在HR面的表现不好(少数情况除外),而是你之前几面的表现一般,比60分要高一点(所以没在前...转载 2021-06-22 10:30:55 · 405 阅读 · 0 评论 -
深入理解HTTPS工作原理
深入理解HTTPS工作原理:https://segmentfault.com/a/1190000018992153原创 2021-06-11 14:30:52 · 162 阅读 · 1 评论 -
springcloud相关组件机制
springcloud相关组件机制:http://www.ityouknow.com/spring-cloud.htmlspringcloud注册调用原理:https://blog.csdn.net/qq_41701956/article/details/83829539原创 2021-06-11 14:30:16 · 153 阅读 · 1 评论 -
springMVC的简介和工作机制(工作流程)
原:https://www.pianshen.com/article/4768731925/原创 2021-06-11 14:29:29 · 95 阅读 · 0 评论 -
java如何解决支付高并发,如何解决,什么方式解决
原:https://blog.csdn.net/weixin_29130215/article/details/114551027原创 2021-06-11 14:28:57 · 1009 阅读 · 1 评论 -
rsa加解密
原:https://www.cnblogs.com/mengq0815/p/10596071.html原创 2021-06-11 14:28:26 · 108 阅读 · 0 评论 -
java开发面试大全刷题整理
原:http://www.hellojava.com/a/69255.html原创 2021-06-11 14:27:54 · 259 阅读 · 0 评论 -
MySQL分库分表面试知识总结
原:https://blog.csdn.net/qq_24452475/article/details/79859930原创 2021-06-11 14:25:10 · 211 阅读 · 1 评论 -
MySQL分库分表 看完吊打面试官
前言在互联网项目中比较常用到的关系型数据库是MySQL,随着用户和业务的增长,传统的单库单表模式难以满足大量的业务数据存储以及查询,单库单表中大量的数据会使写入、查询效率非常之慢,此时应该采取分库分表策略来解决。提示:以下是本篇文章正文内容,案例仅供参考一、业务场景介绍假设目前有一个电商系统使用的是MySQL,要设计大数据量存储、高并发、高性能可扩展的方案,数据库中有用户表。用户会非常多,并且要实现高扩展性,你会怎么去设计? OK咱们先看传统的分库分表方式当然还有些小伙伴..转载 2021-06-04 10:48:20 · 146 阅读 · 0 评论 -
详解MYSQL各种优化原理
说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用。MySQL逻辑架构如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。.转载 2021-06-02 09:38:20 · 174 阅读 · 0 评论 -
Mysql面试基础原理问答
目录1.索引是什么?有什么作用以及缺点 2.索引的目的是什么 3.索引对数据库系统的负面影响 4.建立索引的原则 5.主键、外键和唯一索引的区别 6.MySQL底层实现,MySQL有什么引擎 7.InnoDB和MyISAM区别,InnoDB替代了MyISAM,那么MyISAM是否一无是处。 8.什么是事务,事务特性 9.如何设计一个高并发的系统(对于mysql来讲) 10.锁的优化策略 11.优化SQL的方法 12.谈谈三大范式,什么时候使用反范式设计 13.说几个mysql中你原创 2021-06-02 09:37:49 · 149 阅读 · 0 评论 -
MySQL的锁机制和加锁原理
详见:https://blog.csdn.net/qq_38238296/article/details/88362999原创 2021-06-02 09:37:30 · 92 阅读 · 0 评论 -
mysql底层原理面试题
详见:https://blog.csdn.net/aizhupo1314/article/details/112384410原创 2021-06-02 09:35:25 · 195 阅读 · 0 评论 -
rabbitmq 开发过程中会出现的问题
rabbitmq_坑None of the specified endpoints were reachable异常:1、unable to connect to node rabbit@10: nodedown2、Message:Already closed: The AMQP operation was interrupted: AMQP close-reason, initiated by Peer, code=320, text="CONNECTION_FORCED - broker原创 2021-06-02 09:37:19 · 3305 阅读 · 0 评论 -
消息队列MQ-面试题
1.什么是消息队列?2.为什么要使用消息队列?1 解耦2 异步处理、3 削峰3.使用消息队列带来的一些问题4.JMS两种消息模型5.消息队列由哪些角色组成?6.常见消息中间件比较7.如何保证消息队列是高可用的?RocketMQkafka8.如何保证消息不被重复消费(幂等性)9.如何保证生产者的发送消息的可靠性?RabbitMQ1、生产者弄丢了数据2、RabbitMQ 弄丢了数据3、消费端弄丢了数据Kafka1、消费端弄丢了数据2转载 2021-06-02 09:35:12 · 578 阅读 · 0 评论 -
消息队列面试题汇总
1.消息队列的应用场景有哪些?答:消息队列的应用场景如下。应用解耦,比如,用户下单后,订单系统需要通知库存系统,假如库存系统无法访问,则订单减库存将失败,从而导致订单失败。订单系统与库存系统耦合,这个时候如果使用消息队列,可以返回给用户成功,先把消息持久化,等库存系统恢复后,就可以正常消费减去库存了。 削峰填谷,比如,秒杀活动,一般会因为流量过大,从而导致流量暴增,应用挂掉,这个时候加上消息队列,服务器接收到用户的请求后,首先写入消息队列,假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错转载 2021-06-02 09:34:36 · 427 阅读 · 0 评论 -
redis集群的常见面试题
1)简单说一下你对分布式理解?答:一个业务分拆多个子业务,部署在不同的服务器上实现相同的业务就是分布式若是一个字节业务点垮了那么整个项目将无法运行2)简单说一下你对集群理解?为了解决大型网站的访问量大、并发量高、海量数据的问题和对分布式的问题进行解决的一个方案将几台服务器集中在一起,实现同一业务,多个处理相同功能的服务器集合。若一台服务器垮了,其它的服务器可以顶上来。3)说一下分布式和集群联系和区别区别:集群是相当于一个存储数据的地方而分布式就是就是一直工作的...原创 2021-06-02 09:34:24 · 1773 阅读 · 0 评论 -
redis集群架构(含面试题解析)
Replication+Sentinel这套架构使用的是社区版本推出的原生高可用解决方案,其架构图如下!这里Sentinel的作用有三个:监控:Sentinel 会不断的检查主服务器和从服务器是否正常运行。 通知:当被监控的某个redis服务器出现问题,Sentinel通过API脚本向管理员或者其他的应用程序发送通知。 自动故障转移:当主节点不能正常工作时,Sentinel会开始一次自动的故障转移操作,它会将与失效主节点是主从关系 的其中一个从节点升级为新的主节点,并且将其他的从节点指向新的原创 2021-06-02 09:34:10 · 190 阅读 · 0 评论 -
Redis 分布式锁的实现原理看这篇就够了
前言分布式锁相信大家一定不会陌生, 想要用好或者自己写一个却没那么简单想要达到上述的条件, 一定要 掌握分布式锁的应用场景, 以及分布式锁的不同实现, 不同实现之间有什么区别分布式锁场景如果想真正了解分布式锁, 需要结合一定场景; 举个例子, 某夕夕上抢购 AirPods Pro 的 100 元优惠券如果使用下面这段代码当作抢购优惠券的后台程序, 我们一起看一下, 可能存在什么样的问题很明显的就是这段流程在并发场景下并不安全, 会导致优惠券发放超过预期, 类似电商抢购超卖问题.原创 2021-06-02 09:33:52 · 481 阅读 · 0 评论 -
Redis 的原理与应用场景及数据库关系
一、 Redis 是什么?Redis是一个开源的使用ANSIC语言编写、支持网络、单进程单线程、可基于内存亦可持久化的日志型、一个高性能的key-value数据库。Redis 的优点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。二、Redis转载 2021-06-01 10:17:15 · 645 阅读 · 0 评论 -
Redis面试题总结
redis 简介简单来说 redis 就是一个数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快,因此 redis 被广泛应用于缓存方向。另外,redis 也经常用来做分布式锁。redis 提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。为什么要用 redis /为什么要用缓存主要从“高性能”和“高并发”这两点来看待这个问题。高性能:假如用户第一次访问数据库中的某些数据。这个过原创 2021-06-01 10:16:57 · 120 阅读 · 0 评论 -
Redis面试题面经整理+解析
前言本文主要是针对Redis的高频知识点整理出来的面试题,答案大部分参考网上,仅供复习参考。本文中如果出现解答错误希望指出,共同进步,共同学习。正文Q1:你了解Redis,能介绍一下Redis吗?Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,遵守BSD协议。是一个非关系型数据库(NoSQL)。Q2:Redis与其他数据库有什么很大的优势吗?性能原创 2021-06-01 10:17:06 · 344 阅读 · 0 评论 -
Nginx常见的面试题—限流、正向、反向代理、负载均衡策略
1、什么是Nginx,谈谈个人都理解,项目中是否用到,为什么要用,有什么优点?Nginx ,是一个 Web 服务器和反向代理服务器用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。主要功能如下:1、正向、反向代理2、负载均衡、分流3、虚拟主机(绑定host)优点:跨平台、配置简单,非阻塞、高并发连接、内存消耗小、成本低廉。2、正向代理和反向代理的区别是什么?正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个.原创 2021-06-01 10:16:49 · 119 阅读 · 0 评论 -
Nginx负载均衡的算法怎么实现的?为什么要做动静分离?
面试官心理剖析主要是看应聘人员对Nginx的基本原理是否熟悉,需要应聘人员能够根据实际业务场景选择合适的负载均衡(转发)策略。其次,在网站建设上,了解 Nginx 的优劣势,能够找到弥补其不足的方法,使得企业的业务达到***访问状态。问题剖析1. Nginx负载均衡的算法怎么实现的?策略有哪些?负载均衡是 Nginx常用的一个功能,当一台服务器在单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,大家会通过负载均衡的方式来分担服务器原创 2021-06-01 10:16:41 · 195 阅读 · 0 评论 -
tomcat常用配置详解和优化方法
常用配置详解1 目录结构/bin:脚本文件目录。/common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载)。/conf:存放配置文件,最重要的是server.xml。/logs:存放日志文件。/server/webapps:来管理Tomcat-web服务用的。仅对TOMCAT可见,对所有的WEB APP都不可见(使用Catalina类加载器加载)。/shared/lib:仅对所有WEB APP可见,对TOMCAT不可见(使用Shared类...原创 2021-06-01 10:16:31 · 388 阅读 · 0 评论 -
Java多线程-锁机制(volatile、synchronized、CAS)
并发编程的三大特性:可见性、原子性、有序性volatile保证可见性与部分有序性,但是不保证原子性,保证原子性需要借助synchronized这样的锁机制volatile(最底层:lock add)●保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。●禁止进行指令重排序volatile的可见性Java内存模型 JMMJava内存模型,是java虚拟机规范中所定义的⼀种内存模型,Ja转载 2021-06-01 10:16:22 · 304 阅读 · 0 评论 -
Java多线程之深入理解线程池
1 线程池基础1.1 线程池是什么?线程池,就是一个线程的池子,里面有若干线程,它们的目的就是执行提交给线程池的任务,执行完一个任务后不会退出,而是继续等待或执行新任务。案例如下图所示:首先创建了一个线程池,线程池中有 5 个线程,然后线程池将 10000 个任务分配给这 5 个线程,这 5 个线程反复领取任务并执行,直到所有任务执行完毕,这就是线程池的思想。1.2 线程池内部结构?线程池的内部结构主要由四部分组成,如图所示:(1)第一部分是线程池管理器,它主要负责管理线程池的创建、销毁、添转载 2021-06-01 10:16:12 · 532 阅读 · 0 评论 -
100道Java并发和多线程基础面试题大集合(含解答)
1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CP原创 2021-06-01 10:15:55 · 366 阅读 · 0 评论 -
java设计模式
1:什么是设计模式?就是经过实践验证的用来解决特定环境下特定问题的解决方案2:设计模式用来干什么?寻找合适的对象决定对象的粒度指定对象的接口描述对象的实现运用复用机制重复使用经过实践验证的正确的,用来解决某一类问题的解决方案来达到减少工作量、提高正确率等目的 3:什么是对象粒度 对象中方法的多少就是粒度 4:基本的Java编程设计应遵循的规则? 面向接口编程,优先使用对象组合 5:设计模式的应用范围 所能解决的特定的...原创 2021-06-01 10:15:30 · 70 阅读 · 0 评论 -
如何设计一个高并发系统?
如何设计一个高并发系统?面试官心理分析说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万。那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部署了多少台机器原创 2021-05-31 13:21:05 · 84 阅读 · 0 评论 -
JAVA 高频算法面试题汇总
一、字符串(String)类算法面试题1)String, StringBuilder 和 StringBuffer 三者有什么不同?2)为什么String类型在Java中是不可变的?3)在Java语言中,如何split string?4)为什么char数组能比String更好的去存储password?5)写一个函数判断一个字符串是否是回文串?OJ 地址:http://www.lintcode.com/en/problem/valid-palindrome/参考答案:http://w...转载 2021-05-31 13:20:25 · 1804 阅读 · 0 评论 -
hash算法原理详解
1. Hash是什么,它的作用先举个例子。我们每个活在世上的人,为了能够参与各种社会活动,都需要一个用于识别自己的标志。也许你觉得名字或是身份证就足以代表你这个人,但是这种代表性非常脆弱,因为重名的人很多,身份证也可以伪造。最可靠的办法是把一个人的所有基因序列记录下来用来代表这个人,但显然,这样做并不实际。而指纹看上去是一种不错的选择,虽然一些专业组织仍然可以模拟某个人的指纹,但这种代价实在太高了。而对于在互联网世界里传送的文件来说,如何标志一个文件的身份同样重要。比如说我们下载一个文件,文件的下载过转载 2021-05-31 13:18:37 · 4162 阅读 · 0 评论 -
Java集合框架
Arraylist 与 LinkedList 异同1. 是否保证线程安全:ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 2. 底层数据结构:Arraylist 底层使用的是Object数组;LinkedList 底层使用的是双向循环链表数据结构; 3. 插入和删除是否受元素位置的影响:①ArrayList 采用数组存储,所以插入和删除元素的时间复杂度受元素位置的影响。比如:执行add(E e)方法的时候, ArrayList 会默认在将指定的...转载 2021-05-31 13:13:55 · 98 阅读 · 0 评论 -
(2021最新版)Java后端面试题|Java多线程与并发
1、线程的生命周期?线程有几种状态线程通常有五种状态,创建,就绪,运行、阻塞和死亡状态(1) 新建状态(New):新创建了一个线程对象。(2) 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。(3) 运行状态(Running):就绪状态的线程获取了CPU,执行程序代码。(4) 阻塞状态(Blocked):阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进 入就绪状态,转载 2021-05-31 13:11:14 · 228 阅读 · 0 评论 -
java IO流
话不多说,直接上图:IO流分类:按照“流”的数据流向,可以将其化分为:输入流和输出流。按照“流”中处理数据的单位,可以将其区分为:字节流和字符流。在java中,字节是占1个Byte,即8位;而字符是占2个Byte,即16位。而且,需要注意的是,java的字节是有符号类型,而字符是无符号类型!字节流的抽象基类: InputStream,OutputStream字符流的抽象基类: Reader,Writer由这四个类派生出来的子类名称都是以其父类名作为子类..转载 2021-05-31 13:04:35 · 105 阅读 · 0 评论 -
jvm深入剖析
Java运行时数据区:1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。2、虚拟机栈:虚拟机栈是Java执行方法的内存模型。每个方法被执行的时候,都会创建一个栈帧,把栈帧压人栈,当方法正常返回或者抛出未捕获的异常时,栈帧就会出栈。(1)栈帧:栈帧存储方法的相关信息,包含局部变量数表、返回值、操作数栈、动态链接a、局部变量表:包含了方法执行过程中的所有变量。局部变量数组所需要的空间在编译期间完成分配,在方法运行期间不会改变局部变量数组的大小。b、返回值:如果有返回值的话,压入调用者转载 2021-05-31 12:47:52 · 139 阅读 · 0 评论