欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java面试集锦(一)

程序员文章站 2022-05-29 14:46:20
...

计算机网络

摘要:1. 在浏览器中输入url地址 显示主页的过程,整个过程会使用哪些协议 image.jpeg总体来说分为以下几个过程: DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束 在浏览器中输入网址之后执行会发生什么? DNS解析,找到对应ip地址 客户 阅读全文

 

操作系统

摘要:1. 进程的常见状态?以及各种状态之间的转换条件? 就绪:进程已处于准备好运行的状态,即进程已分配到除CPU外的所有必要资源后,只要再获得CPU,便可立即执行。 执行:进程已经获得CPU,程序正在执行状态。 阻塞:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态。 阅读全文

 

Redis相关

摘要:1. 为啥在项目里要用缓存呢 用缓存,主要是俩用途,高性能和高并发 高性能image.png 高并发image.png 2.介绍 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key Value 数据库,并提供多种语言的 API的非 阅读全文

 

Spring/Spring mvc

摘要:1. 介绍spring框架 Spring是一套为了解决企业应用开发的复杂性而创建的框架,特点是分层的架构,允许用户在不同层面使用不同的组件进行组合。同时通过IOC容器来降低耦合,简化开发。利用AOP来进行切面编程统一管理通用模块。 2.Spring中AOP的应用场景、Aop原理、好处? 主要是两种, 阅读全文.

 

RabbitMQ

摘要:RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 ①.通过异步处理提高系统性能image.jpeg通过异步处理提高系统性能 如上图,在不使用消息队列服务器的时候,用户的请求数据直接写入数据库,在高并发的情况下数据库压力剧增,使得响应速度变慢 阅读全文

 

分布式

摘要:1. 分布式事物 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交 阅读全文

 

Nginx

摘要:简单介绍一下Nginx Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 Nginx 主要提供反向代理、负载均衡、动静分离(静态资源服务)等服务。下面我简单地介绍一下这些名词。 反向代理 谈到反向代理,就不得不提一下正向代理。无论是正向代理,还是反向 阅读全文

 

Spring Cloud

摘要:1. 什么是微服务 以前的模式是 所有的代码在同一个工程中 部署在同一个服务器中 同一个项目的不同模块不同功能互相抢占资源 微服务 将工程根据不同的业务规则拆分成微服务 微服务部署在不同的机器上 服务之间进行相互调用 Java微服务的框架有 dubbo(只能用来做微服务),spring cloud( 阅读全文

 

Linux

摘要:1. 软链接: 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式 软链接可以跨文件系统 ,硬链接不可以 软链接可以对一个不存在的文件名进行链接 软链接可以对目录进行链接 2. 硬链接: 硬链接,以文件副本的形式存在。但不占用实际空间。 不允许给目录创建硬链接 硬链接只有在同一个文件 阅读全文

 

SpringBoot

摘要:1.简介 Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 1.1简化Spring开发的一个框架1.2整合Spring全家桶(整合ssh,ssm,安全,d 阅读全文

 

秒杀系统设计

摘要:1.主要做到以下两点: 尽量将请求过滤在上游。 尽可能的利用缓存(大多数场景下都是查多于写)。 如果流量巨大,导致各个层的压力都很大可以适当的加机器横向扩容。如果加不了机器那就只有放弃流量直接返回失败。快速失败非常重要,至少可以保证系统的可用性。 业务分批执行:对于下单、付款等操作可以异步执行提高吞 阅读全文

 

设计模式

摘要:1. 原则 1. 单一职责原则单一职责原则,就一个类而言,应该仅有一个引起它变化的原因。解释: 如果一个类职责过多,就等于把这些职责耦合在一起; 软件设计正在要做的许多内容,就是发现职责并把那些职责分离; 如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个职责,就应该考虑类的职责分离 阅读全文

 

数据库(Mysql)

摘要:1. 数据库范式 第一范式:列不可分,eg:【联系人】(姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF;第二范式:有主键,保证完全依赖。eg:订单明细表【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,Qu 阅读全文

 

Java Web

摘要:1.Ajax AJAX = Asynchronous JavaScript and XML(异步 JavaScript 和 XML)。 Ajax 的原理简单来说通过 XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后用 Javascript 来操作 DOM 而更新页面。这 阅读全文

 

JavaIO

摘要:1. 图解 image.pngimage.jpeg 2.BufferedReader属于哪种流,它主要是用来做什么的,它里面有那些经典的方法 属于处理流中的缓冲流,可以将读取的内容存在内存里面,有readLine()方法 3. 什么是节点流,什么是处理流,它们各有什么用处,处理流的创建有什么特征 节 阅读全文

 

JVM(Java虚拟机)

摘要:1. 垃圾回收机制 Stop the World: JVM由于要执行GC而停止了应用程序的执行称之为Stop the World,该情形会在任何一种GC算法中发生。当Stop the world发生时,除了GC所需的线程以外,所有线程都处于等待状态直到GC任务完成。事实上,GC优化很多时候就是指减少 阅读全文

 

JAVA集合

摘要:1.集合 image.png1. List:有序、可重复。可以通过索引快速查找,但进行增删操作时后续的数据需要移动,所以增删速度慢。 2. Set:无序、不可重复。 3. Map:键值对、键唯一、值不唯一。Map 集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对 map 集合遍历时先得 阅读全文

 

Java异常

摘要:什么是Java内存模型 前面介绍过了计算机内存模型,这是解决多线程场景下并发问题的一个重要规范。那么具体的实现是如何的呢,不同的编程语言,在实现上可能有所不同。 我们知道,Java程序是需要运行在Java虚拟机上面的,Java内存模型(Java Memory Model ,JMM)就是一种符合内存模 阅读全文

 

Java多线程

摘要:1. 多线程 image.png 新建状态: 一个新产生的线程从新状态开始了它的生命周期。它保持这个状态直到程序 start 这个线程。 运行状态:当一个新状态的线程被 start 以后,线程就变成可运行状态,一个线程在此状态下被认为是开始执行其任务 就绪状态:当一个线程等待另外一个线程执行一个任务 阅读全文