笔面试
文章平均质量分 61
记录一些关于面试的博文
喜欢前端的后端MelodyJerry
喜欢前端的全栈攻城狮的MelodyJerry,奋斗在全栈路上
【个人三大博客汇总】:
https://www.cnblogs.com/melodyjerry/p/13305991.html
展开
-
面试回答,JVM内存模型/内存空间:运行时数据区
发布于个人公众号,打开微信,搜索MelodyJerry即可本文由作者原文 [JVM|内存模型] Java虚拟机的内存模型?也就这7个而已 修改而来,可点击左下角阅读原文。JVM内存模型/内存空间Java虚拟机JVM运行起来,就会给内存划分空间,这块空间成为运行时数据区。运行时数据区主要划分为以下 6个 :① 程序计数器 (Program Counter Register)一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器线程私有的内存值得注意的是:《Java虚拟机.原创 2021-08-29 15:28:51 · 7789 阅读 · 3 评论 -
[面试|算法] 三种不同组合情况,还原二叉树
前序字节秋招一面(提前批,商业化技术,base深圳)和美团秋招(base上海),都出现了差不多的算法题:根据数组形式的二叉树的前序序列和中序序列,假设树种没有重复元素,现要求还原该二叉树,并返回该二叉树的层次序列、后序序列。当时手撕算法,是以牛客ACM模式,要求自己建立数据结构,传入数组,实现算法。但只是懂的根据前序序列和中序序列来还原二叉树还是不够的,其他的组合情况也要掌握,在后文一并解决这个。还原二叉树✔4种遍历方式先来确定二叉树的4种遍历方式:层次序列/层次遍历:访问根节点从上到下、从左到右,一次遍历原创 2021-08-25 13:30:42 · 7713 阅读 · 2 评论 -
[LeetCode-53] 最大子序和
发布于个人公众号,打开微信,搜索MelodyJerry即可## 53. 最大子序和LeetCode官方的难度定位为简单,个人觉得可以达到中等的!!!难度简单通过率54.64%(571,167/1,045,196)给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 .原创 2021-07-17 23:17:12 · 7552 阅读 · 0 评论 -
[剑指Offer-42] 连续子数组的最大和
剑指 Offer 42. 连续子数组的最大和❝LeetCode官方的难度定位为简单,个人觉得可以达到中等的!!!❞难度简单通过率60.29%(182,636/302,898)输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1原创 2021-07-17 23:12:23 · 7533 阅读 · 1 评论 -
[算法|LeetCode] 数组系列(持续更新ing)
难度:简单26. 删除有序数组中的重复项难度简单通过率54.01%(718,156/1,329,468)题目描述:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想原创 2021-07-10 22:12:08 · 7577 阅读 · 3 评论 -
利用栈的特性,逆序打印链表
题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000题解思路题目要求 “逆序” 打印,逆序?那不就是可以用栈来做?栈的特性:先进后出、后进先出。链表节点全部进栈后再依次出栈,这不就是逆序结果了吗?是吧,可以好好利用 栈的特性 解决这题。题解代码/** * Definition for singly-linked list. *原创 2021-06-04 17:34:05 · 7655 阅读 · 0 评论 -
[Java|面试] 面试被问Java的动态代理机制,能说说吗
Java的动态代理机制文章目录Java的动态代理机制0. 什么是代理1.动态代理和静态代理的区别2. 使用代理的情况3. 动态代理的构成4. JDK中的动态代理5. 手写一个JDK动态规划的demo6. 总结0. 什么是代理代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替“实际”对象的对象。这些操作通常涉及与“实际”对象的通信,因此代理通常充当着中间人的角色。代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。从Java面向对象编程的角度,代理模原创 2021-05-26 15:59:16 · 9884 阅读 · 47 评论 -
论软件设计中的“内聚”及“耦合”
内聚性又称块内联系指 模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。特性内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。耦合性也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。特性原创 2021-05-22 23:24:11 · 9066 阅读 · 3 评论 -
初步理解“同步、异步、阻塞、非阻塞”
老实说,玩电脑也玩了好几年了;印象中看到"同步和异步" 关键字的次数已经记不清了,总感觉自己知道点什么,但却又说不出来什么东西,这是为啥? —— 因为没有深入理解,没有总结;也应了那句古话:纸上学来终觉浅,绝知此事要躬行。 不卖关子了,开始进入正题。"同步"就好比:你去外地上学(人生地不熟),突然生活费不够了;此时你决定打电话回家,通知家里转生活费过来,可是当你拨出电话时,对方一直处于待接听状态(即:打不通,联系不上),为了拿到生活费,你就不停的 oncall 、等待,最终可能不能及时要到生活费,原创 2021-05-09 21:34:54 · 8087 阅读 · 0 评论 -
[面试|算法|二叉树] 面试官:利用4种遍历方式实现“翻转二叉树”
题目描述如题,翻转一棵二叉树。输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1/* Definition for a binary tree node. */public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode()原创 2021-05-08 20:34:20 · 8097 阅读 · 0 评论 -
[面试|面经] 人生的第一次面试,凉经吧
字节飞书Java实习一面,凉凉~全程43min左右,在飞书上视频面试面试官很年轻,自称也是实习生人还挺好交流的,我紧张4、5次,他让我别紧张,也允许我重新组织语言回答。自我介绍计算机网络:TCP的三次握手、四次挥手TCP和UDP的区别UDP如何实现可靠传输了解过滑动窗口吗?具体说说Java:知道Java有什么锁,具体说明说说单例模式SpringBoot:IOC的原理?好处?AOP的原理?好处?自动装载机制的原理说说SpringBoot的事务处理MySQL:原创 2021-05-07 20:51:50 · 8372 阅读 · 0 评论 -
[面试|HTTPS] 面试官:对比HTTP和HTTPS,说说他们的区别
文章目录概念区别工作原理HTTPS的优缺点如何将网站从HTTP切换到HTTPS更多HTTPS的加密过程HTTPS的安全通信机制概念HTTP:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即 HTTP 下加入 SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 SS原创 2021-05-05 10:37:44 · 8324 阅读 · 0 评论 -
[面试|OOM|JVM] 网易互娱一面:什么是OOM?为什么会出现OOM?怎么解决?
什么是OOM?为什么会出现OOM?文章目录什么是OOM?为什么会出现OOM?概念原因JVM内存模型OOM的error类型OOM分析参考资料概念OOM,全称“Out Of Memory”,意思是“内存用完了”来源于 java.lang.OutOfMemoryError这是个特别严重的问题,因为这个问题已经 严重到应用程序自己无法处理了。原因官方的文档称,当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出 java.lang.OutOfMem原创 2021-05-04 22:05:34 · 8438 阅读 · 0 评论 -
[JVM|内存模型] Java虚拟机的内存模型?也就这7个而已
JVM内存模型Java虚拟机所管理的内存包括以下 7个 运行时数据区域:1. 程序计数器 (Program Counter Register)一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器线程私有的内存值得注意的是:《Java虚拟机规范》中,唯一一个没有规定任何OutOfMemoryError情况的区域!!!2. Java虚拟机栈 (VM Stack)Java方法执行的线程内存模型为虚拟机执行Java方法(也就是字节码)服务线程私有的内存其生命周期与线程相同原创 2021-05-04 21:06:26 · 8311 阅读 · 0 评论 -
[面试|Map] 网易互娱提前批问:能说说不同场景下,不同遍历Map集合方式的效率吗
在准备网易互娱的提前批时,看到有同学被问:能说说不同场景下,不同遍历Map集合方式的效率吗详细源码过程见 3种场景不同方法遍历Map集合的效率比较map的key采用简单形式和复杂形式时,查找的效率是不同的,简单的key值效率更高当我们只需要取得value值时,采用values来遍历效率更高当数据量大的时候,采用entrySet遍历key+value的效率要高于keySet(这也是为什么“大家建议使用entrySet,认为entrySet对于大数据量的查找来说,速度更快”)...原创 2021-05-04 17:01:07 · 8176 阅读 · 0 评论 -
[面试|Map|红黑树] 网易面试官问HashMap、TreeMap和HashTable的区别,怎么回答?
HashMap、TreeMap和HashTable的区别Map接口有三个比较重要的实现类,分别是TreeMapHashMapHashTableTreeMap有序的线程不安全TreeMap是SortedMap的实现类基于红黑树每个key-value对作为红黑树的一个节点没有调优选项,因为该树总是处于平衡状态存储key-value对时,需要根据key对节点进行排序(两种排序方式)自然排序:TreeMap的所有key必须实现Comparable接口,而且所有的key应该是同一个原创 2021-05-04 12:44:05 · 8314 阅读 · 0 评论 -
[面试|操作系统] 网易面试官:操作系统将一切资源当作文件来表示,你了解原理吗?这样做有什么好处?
在准备网易笔试时,看到上一批有同学被面试官问:有人说操作系统将一切资源当作文件来表示,你了解原理吗?这样做有什么好处?概念所谓一切皆文件就是指计算机操作系统将一切计算机的可用资源都映射成文件形式向使用者提供统一的操作方式。普通文件、目录、键盘、鼠标、打印机、显示器、内存页、字符设备、块设备、操作系统调度状态、网络设备(套接字)等等,在Unix/Linux都被当做文件来对待。虽然他们的类型不同,但是Linux系统为它们提供了 “一套统一的文件操作接口。”原理这里引入一个叫VFC的概原创 2021-05-03 21:17:36 · 8564 阅读 · 0 评论 -
[面试|Git] 面试官问会不会git上拉取指定分支?
git branch -r # 列出远程跟踪分支git branch -a # 查看所有分支git clone 默认 会把远程仓库 整个 给clone下来;但只会在本地默认创建一个master分支如果远程还有其他的分支,此时用git branch -a查看所有分支。# clone用参数-b指定分支git clone -b 分支名 https://github.com/用户名/仓库名.git...原创 2021-05-03 16:38:52 · 8248 阅读 · 0 评论 -
[面试|HTTP] 面试官:说说对Request和Response的了解
摘自我之前写过的一篇关于HTTP的博文:《 回顾Request请求信息数据》request 对象和 response 对象的原理request 和 response 对象是由服务器创建的。接着我们来使用它们request 对象是来获取请求消息,response 对象是来设置响应消息其基本原理,如下图 ????request 对象继承体系结构ServletRequest – interface,接口↓| 继承HttpServletRequest – interface,接口↓| 实现原创 2021-05-03 16:27:01 · 8337 阅读 · 0 评论 -
[面试|操作系统] 面试官:什么情况会导致处理器从用户态(目态)向内核态(管态)转换?
面试官:什么情况会导致处理器从用户态(目态)向内核态(管态)转换?大多数计算机系统将CPU执行状态分为管态和目态。管态又称为特权状态、系统态或核心态。通常,操作系统在管态下运行。目态又叫做常态或用户态,用户程序只能在目态下运行,如果用户程序在目态下执行特权指令,硬件将发生中断,由操作系统获得控制,特权指令执行被禁止,这样可以防止用户程序有意或无意的破坏系统。从目态转换为管态的唯一途径是中断。以下这三类情况都是通过中断机制发生,可以说中断和异常(应用程序自身引起or出错)是用于态到内核态转原创 2021-05-03 16:11:07 · 9815 阅读 · 0 评论 -
[面试|HTTPS] 面试官:对比HTTP和HTTPS,说说他们的区别
文章目录概念区别工作原理HTTPS的优缺点如何将网站从HTTP切换到HTTPS更多HTTPS的加密过程HTTPS的安全通信机制概念HTTP:超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即 HTTP 下加入 SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要 SS原创 2021-05-02 22:33:27 · 9265 阅读 · 0 评论 -
[面试|依赖冲突] 什么是Jar包版本冲突?怎么解决?
什么是依赖冲突/版本冲突?Maven的依赖机制会导致Jar包的冲突。举个例子,在项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C。这时Maven会采用最短路径优先原则(即,根据寻找到的依赖路径中最短的),来决定使用哪个版本的Jar包,而另一个无用的Jar包则未被使用,这就是所谓的依赖冲突。原创 2021-05-02 21:20:08 · 8424 阅读 · 0 评论 -
Git笔记-部分命令
京东“薅羊毛”活动eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'}原创 2021-02-03 16:47:20 · 699 阅读 · 0 评论 -
Swagger的跨域问题和Nginx部署问题
CROS跨域原理跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。跨域资源共享( CORS )机制允许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。现代浏览器支持在 API 容器中(例如 XMLHttpRequest 或 Fetch )使用 CORS原创 2021-02-23 15:00:46 · 2573 阅读 · 1 评论 -
[Linux] 查看Linux系统版本信息
一、查看Linux内核版本命令(两种方法)1、cat /proc/version[root@S-CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 20132、uname -a原创 2021-04-21 10:58:23 · 9353 阅读 · 0 评论 -
Linux命令-查看端口的占用情况
常用命令lsof -i:端口号netstat -tunlp|grep 端口号lsof -i用以显示符合条件的进程情况lsof(list open files)是一个列出当前系统打开文件的工具lsof输出的每列的意义是:COMMAND:进程的名称或者进程开启的方式PID:进程idUSER:进程所有者FD:文件描述符TYPE:协议类型DEVICE:端口号SIZE/OFF:偏移NODE:协议名NAME:节点名netstat -tunlp用于显示tcp原创 2021-03-02 11:15:49 · 1989 阅读 · 0 评论 -
Linux的root模式
第一种方式:sudo(暂时的)输入sudo,然后显示可以输入的命令sudo-b:在后台执行指令-h:帮助-H:将HOME环境变量设为新身份的HOME环境变量-k:结束密码的有效期限,即下次再执行sudo时需要输入密码-l:列出目前用户可执行与无法执行的指令-p:改变询问密码的提示符号-s:执行指定的shell-u<用户>:以指定的用户作为新的身份-v:延长密码有效期限5分钟-V :显示版本信息这里我们输入sudo -i,再输入你的用户密码,就会进入root模式原创 2020-12-13 17:28:22 · 950 阅读 · 0 评论 -
Linux下删除普通用户步骤
先用命令 cat /etc/passwd 查看一下所有的用户 可以看到片你需要删除的用户名用命令 who 查询当前登录的用户用命令 ps -u 用户名 查看该用户的pid用命令 kill pid 杀掉他的sshd或者是shell进程再用命令 userdel -r 用户名 删除用户...原创 2020-09-22 22:41:57 · 1010 阅读 · 0 评论 -
Linux运维常用的150条命令
命令功能说明线上查询及帮助命令(2个)man查看命令帮助,命令的词典,更复杂的还有info,但不常用。help查看Linux内置命令的帮助,比如cd命令。文件和目录操作命令(18个)ls全拼list,功能是列出目录的内容及其内容属性信息。cd全拼change directory,功能是从当前工作目录切换到指定的工作目录。cp全拼copy,其功能为复制文件或目录。find查找的意思,用于查找目录及目录下的文件。mkdir全拼...原创 2020-09-10 15:59:27 · 2108 阅读 · 0 评论 -
[SSL] [Nginx] 开启SSL之后,解决访问不了域名带端口号的问题
问题描述http://域名:2123 可以访问开启SSL之后,带端口号就访问不了了https://域名:2123 不可以访问请问这是为什么呢,怎么才能让https://域名:2123也可以访问呢解决SSL方案:1、NGINX做SSL握手,其与TOMCAT之间仍旧HTTP协议(当NGINX和TOMCAT在同一相对安全的内网时这样做可以减少SSL握手次数)。NGINX的代理转发(proxy_redirect:反向替换proxy_pass或上游,如TOMCAT返回的URL),从HTTP的替换成HTT原创 2021-04-22 11:26:21 · 14051 阅读 · 11 评论 -
[面试|HashMap|红黑树] 转载:HashMap到8时转为红黑树到6转为链表 原因详解
来源:HashMap到8时转为红黑树到6转为链表 原因详解原创 2021-04-27 15:15:08 · 11320 阅读 · 0 评论 -
[面试|SpringMVC] “是大佬鸭”问我怎么“朴素”地表达SpringMVC工作流程
如题,三天前的晚上,鸭鸭大佬问我怎么“朴素”表达SpringMVC?以下是我当时的回答,记录一下。日后面试(面经),再做修改或补充【简单的描述流程】:浏览器发起请求,例如GET方式请求的/request,首先会被前端控制器(DispatcherServlet)拦截到。拦截后,交给处理器映射器(HandlerMapping),处理器映射器拿到GET方式的/request请求,会去IOC容器里寻找能够处理它的控制器,然后将找到的具体控制器告诉前端控制器(DispatcherServlet)。前端控制原创 2021-04-26 17:36:19 · 9231 阅读 · 1 评论