JAVA 架构面试攻略
文章平均质量分 94
JAVA架构、专家、资深、初级 面试锦集
夏目 "
一个对coding有独特追求的人。
展开
-
手撸架构,网络 面试36问
SYNflood攻击主要利用了TCP三次握手过程中的bug,我们知道TCP三次握手过程是要建立连接的双方发送SYN,SYN+ACK,ACK数据包,而当攻击方随意构造源ip去发送SYN包时,服务器返回的SYN+ACK就不能得到应答(因为ip是随意构造的),此时服务器就会尝试重新发送,并且会有至少30s的等待时间,导致资源饱和服务不可用,此攻击属于慢型dos攻击。因此在发送CC攻击前,我们需要寻找加载比较慢,消耗资源比较多的网页,比如需要查询数据库的页面、读写硬盘文件的等。窗口右边是还未发送的数据。......原创 2022-07-27 16:52:17 · 1196 阅读 · 1 评论 -
手撸架构,MyBatis 面试42问
什么是数据持久化?数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。例如,文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象的模型、XML、二进制流等。 当我们编写应用程序操作数据库,对表数据进行增删改查的操作的时候就是数据持久化的操作。什么是 MyBatis?MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架。它的内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映...原创 2022-02-01 16:19:06 · 2860 阅读 · 0 评论 -
手撸架构,Elasticsearch 面试25问
Elasticsearch 深入浅出,ELKStack及Solr企业级搜索引擎实战。什么是ElasticSearch? Elasticsearch 之(2)Elasticsearch核心概念_vincent-CSDN博客_elasticsearch核心概念 Elasticsearch是一个基于Lucene的搜索引擎。它提供了具有HTTP Web界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎。Elasticsearch是用Java开发的,根据Apache许可条款...原创 2022-02-01 15:49:54 · 991 阅读 · 0 评论 -
手撸架构,Docker 面试25问
什么 Docker?终于有人把 Docker 讲清楚了_vincent-CSDN博客Docker 是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。docker改变了什么面向产品:产品交付 面向开发:简化环境配置 面向测试:多版本测试 面向运维:环境一致性 面向架构:自动化扩容(微服务)docker架构distribution 负责与docker registry交互,上传洗澡镜像以及v2 regi...原创 2022-02-01 15:12:31 · 8211 阅读 · 0 评论 -
手撸架构,Kafka 面试42问
Apache Kafka 是什么?Apach Kafka 是一款分布式流处理框架,用于实时构建流处理应用。它有一个核心 的功能广为人知,即作为企业级的消息引擎被广泛使用。为什么要使用 kafka,为什么要使用消息队列缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。 解耦和扩展性:项目开始的时候,并不能确定具体需求。消息队列可以作为一个接口层,..原创 2022-02-01 11:23:30 · 2657 阅读 · 0 评论 -
手撸架构,Nginx 面试40问
什么是Nginx?Nginx是一个 轻量级/高性能的反向代理Web服务器,用于 HTTP、HTTPS、SMTP、POP3 和 IMAP 协议。他实现非常高效的反向代理、负载平衡,他可以处理2-3万并发连接数,官方监测能支持5万并发,现在中国使用nginx网站用户有很多,例如:新浪、网易、 腾讯等。Nginx 有哪些优点?跨平台、配置简单。 非阻塞、高并发连接:处理 2-3 万并发连接数,官方监测能支持 5 万并发。 内存消耗小:开启 10 个 Nginx 才占 150M 内存。 成..原创 2022-02-01 10:39:39 · 12552 阅读 · 0 评论 -
手撸架构,MongDB 面试50问
什么是RDBMS?关系数据库管理系统(Relational Database Management System:RDBMS)是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据逻辑组织的系统。高度组织化结构化数据 结构化查询语言(SQL) (SQL) 数据和关系都存储在单独的表中。 数据操纵语言,数据定义语言 严格的一致性 基础事务什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作..原创 2022-01-22 15:24:46 · 894 阅读 · 0 评论 -
手撸架构,Mysql 面试126问
为什么要使用数据库数据保存在内存优点: 存取速度快 缺点: 数据不能永久保存数据保存在文件优点: 数据永久保存 缺点:1、速度比内存操作慢,频繁的IO操作。2、查询数据不方便数据保存在数据库数据永久保存 使用SQL语句,查询方便效率高。 管理数据方便什么是SQL?结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。用于存取数据、查询、更新和管理关系数据库系统。什么是MySQL?MySQL是一个关系型数..原创 2022-01-22 11:23:57 · 9316 阅读 · 4 评论 -
手撸架构,RabbitMQ 面试49问
MQ如何选型?特性 ActiveMQ RabbitMQ RocketMQ Kafka 客户端支持语言 JAVA、C、C++、Python、PHP、Pert、net等 官方支持Erlang、Java/Ruby等,社区产出多种语言API,几乎支持所有常用语言 JAVA、C++(不成熟) 官方支持JAVA,开源社区有多语言版本,如PHP,Python,GO,C/C++,Ruby,NodeJS等编程语言 单机吞吐量 万级,吞吐量RocketMQ和..原创 2022-01-19 20:45:53 · 5074 阅读 · 0 评论 -
手撸架构,Zookeeper面试27问
ZooKeeper 是什么?ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的 zookeeper 机器来处理。对于写请求,这些请求会同时发给其他 zookeeper 机器并且达成一致..原创 2022-01-19 19:18:04 · 668 阅读 · 0 评论 -
手撸面试,Spring Boot面试41问
什么是 Spring Boot多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必 须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程 序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现 在必须从头开始做所有事情。 Spring Bo..原创 2022-01-19 15:06:42 · 946 阅读 · 0 评论 -
手撸架构,Dubbo面试49问
Dubbo是什么?Dubo是阿里巴巴开源的基于Java的高性能RPC分布式服务框架,现已成为 Apache基金会孵化项目。官网:http://dubbo.apacheorg为什么要用 Dubbo?因为是阿里开源项目,国内很多互联网公司都在用,已经经过很多线上考验。内部使用了 Netty、Zookeeper,保证了高性能高可用性。使用 Dubbo可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求..原创 2022-01-17 16:00:38 · 2036 阅读 · 0 评论 -
手撸架构,Redis面试41问
什么是Redis?简述它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此R..原创 2022-01-17 11:20:19 · 6902 阅读 · 0 评论 -
吊打面试官,手撸JAVA架构面试offer
技术栈 传送门 JAVA 基础 手撸架构,Java基础面试100问_vincent-CSDN博客 JAVA 集合 手撸架构,JAVA集合面试60问_vincent-CSDN博客 JVM 虚拟机 手撸架构,JVM面试30问_vincent-CSDN博客 并发编程 手撸架构,并发编程面试123问_vincent-CSDN博客 Spring 手撸架构,Spring面试63问_vincent-CSDN博客 Spring cloud 手撸架构,...原创 2022-01-17 09:49:18 · 2281 阅读 · 0 评论 -
手撸架构,Netty 与 RPC 面试48问
IO模型(BIO,NIO,AIO)及其区别先弄清楚同步、异步,阻塞、非阻塞概念。io操作分为两部分,发起io请求,和io数据读写。阻塞、非阻塞主要是针对线程发起io请求后,是否立即返回来定义的,立即返回称为非阻塞io,否则称为阻塞io。同步、异步主要针对io数据读写来定义的,读写数据过程中不阻塞线程称为异步io,否则,称为同步io。BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资..原创 2022-01-15 17:05:22 · 2738 阅读 · 0 评论 -
手撸架构,Spring cloud 面试45问
什么是微服务微服务并没有一个官方的定义,想要直接描述微服务比较困难,我们可以通过对比传统WEB应用,来理解什么是微服务。传统的WEB应用核心分为业务逻辑、适配器以及API或通过UI访问的WEB界面。业务逻辑定义业务流程、业务规则以及领域实体。适配器包括数据库访问组件、消息组件以及访问接口等。一个打车软件的架构图如下:尽管也是遵循模块化开发,但最终它们会打包并部署为单体式应用。例如Java应用程序会被打包成WAR,部署在Tomcat或者Jetty上。这种单体应用比较适合于小项目,优点是:原创 2022-01-14 16:44:23 · 7962 阅读 · 0 评论 -
手撸架构,JAVA集合 面试60问
接口继承关系和实现集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 Iterator:迭代器,可以通过迭代器遍历集合中的数据 Map:是映射表的基础接口ListJava 的 List 是非常常用的数据类型。List 是有序的 Collection。Java List 一共三个实现类:分别是 Arra...原创 2022-01-07 15:27:13 · 8577 阅读 · 0 评论 -
手撸架构,Spring 面试63问
Sping原理Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是它仍然可以和其他的框架无缝整合。Spring 特原创 2022-01-05 20:27:19 · 11283 阅读 · 4 评论 -
手撸架构,JVM 面试30问
系统学习《深入了解JVM》https://blog.csdn.net/wuzhiwei549/category_9275772.html?spm=1001.2014.3001.5482JDK、JRE、JVM的关系是什么?什么是JvM?英文名称( Java Virtual machine),就是JAA虚拟机,它只识别.cass类型文件,它能够将cass文件中的字节码指令进行识别并调用操作系统向上的A完成动作。什么是JRE?英文名称( Java runtime environment),Ja原创 2021-12-23 10:43:26 · 8893 阅读 · 0 评论 -
手撸架构,Java基础 面试100问
面向对象的特征有哪些方面?抽象(Encapsulation):封装的目的是为了保证变量的安全性,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员 如果不进行封装,类中的实例变量可以直接查看和修改,可能给整个代码带来不好的影响 因此在编写类时一般将成员变量私有化,外部类需要同getter和setter方法来查看和设置变量。继承(Inherit):继承实际上也是为了提高代码的复用性和可扩展性,在定义不同类的时候存在一些相同属性,为了方便使用可以将这些共同属性抽象成一个父类,在定义其他子..原创 2021-12-20 19:44:15 · 12009 阅读 · 1 评论 -
手撸架构,并发编程 面试123问
并发编程的优缺点优点:充分利用多核CPU的计算能力:通过并发编程的形式可以将多核CPU的计算能力发挥到极致,性能得到提升方便进行业务拆分,提升系统并发能力和性能缺点:a.上下文切换,要存储当前状态,加载状态,耗时。尽量不使用锁,导致竞争锁的上下文切换(CAS);最少使用线程,避免线程浪费等待。b.死锁,锁没法释放,导致阻塞的线程一直阻塞。避免一个线程获得多个锁。线程间加锁顺序尽量一致。使用定时锁同步异步指调用方法,调动同步,必须阻塞等待其执行结束,才能原创 2021-12-11 16:11:31 · 11445 阅读 · 3 评论