![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面经
文章平均质量分 89
万小猿
这个作者很懒,什么都没留下…
展开
-
常考的面试问题----Java基础(超全的)
一、Java基础1.1面向对象和面向过程的区别面向过程:面向过程的性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考虑因素的时候,比如单片机,嵌入式一般采用面向过程开发。面向对象:面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。1.2JAVA语言有那些特点1.简单易学2.面向对象3.平台无关性(一次编译,到处运行)4.可原创 2021-04-24 14:16:35 · 18924 阅读 · 27 评论 -
面试必掌握之JVM
四、JAVA 虚拟机(JVM)4.1介绍下 JAVA内存区域(运行时数据区)Java虚拟机在执行Java程序的过程中会把它管理的内存分成若干个不同的数据区域。JDK1.8 和之前的版本略有不同,下面会介绍到。JDK1.8之前:JDK1.8:线程私有的:虚拟机栈 本地方法栈 程序计数器线程共有的:堆 方法区 直接内存(非运行时数据区的一部分)程序计数器程序计数器是一块较小的内存空间,可以看做是当前线程所执行的字节码(.class)的行号指示器。字节码...原创 2021-02-07 01:56:43 · 2807 阅读 · 1 评论 -
操作系统面试常问问题
十二、操作系统12.1 (1次)进程与线程12.1.1进程进程是程序的一次执行过程,是系统运行的基本单位,因此进程是动态的(很多次执行)。系统运行一个程序是一个进程创建、运行到消亡的过程。在JAVA中,当我们启动Main函数其实就是启动了一个JVM的进程,而Main函数所在的线程就是这个进程中的一个线程,也称为主线程。在Windows中,我们可以通过任务管理器看我们电脑运行着这那些进程。12.1.2线程线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其...原创 2021-04-24 12:16:43 · 2179 阅读 · 0 评论 -
24届秋/春招最新面经答案总结(Java基础、数据库、JVM、计网、计操、集合、多线程、Spring)持续更新
一、引言(秉持开源的想法) 经过残酷的春招实习面试,自己从中也从牛客和各个大神那些收集了很多面经,我再次深感谢谢(尤其是JavaGuide),秉持开源的想法。 话不多说直接上干货,有没有用自己点进去看就知道了,如果你看了我总结的面经后,得到满意的OFFER记得过来留言哦!毕竟不做白嫖党二、目录1.计算机网络 链接:面试必掌握之计算机网络_万小猿的博客-CSDN博客2.Java基础 链接:Ja...原创 2021-04-23 23:30:24 · 28176 阅读 · 12 评论 -
Java多线程讲解,超详细!可获取相关笔记
七、多线程7.1什么是线程和进程?7.1.1进程进程是程序的一次执行过程,是系统运行的基本单位,因此进程是动态的(很多次执行)。系统运行一个程序是一个进程创建、运行到消亡的过程。在JAVA中,当我们启动Main函数其实就是启动了一个JVM的进程,而Main函数所在的线程就是这个进程中的一个线程,也称为主线程。在Windows中,我们可以通过任务管理器看我们电脑运行着这那些进程。7.1.2线程线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行过程中可以产生多个线程.原创 2021-03-23 21:10:24 · 4526 阅读 · 2 评论 -
Java集合笔记,实用!!
六、Java集合6.1 List,Set,Map三者的区别?List(对付顺序的好帮手):存储的元素是有序的、可重复的。Set(注重独一无二的性质):存储的元素是无序的、不可重复的。Map(用Key来搜索的专家):使用键值对(key-Value)存储,里面key-value映射的规则是Hash函数映射,一个key只能映射到一个Value。6.2 Arraylist与LinkedList区别?1.是否保证线程安全:ArrayList和LinkedList都是不同步的,也就是不保证线程安原创 2021-02-21 19:37:55 · 4105 阅读 · 4 评论 -
快速突破算法之位运算
一、前言:什么是位运算位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。从现代计算机中所有的数据二进制的形式存储在设备中。计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即符号位共同参与运算的运算。举一个简单的例子来看一下是如何进行计算的,比如这行代码:int a=30;int b=42;int c=a+b;计算两个数的和,因为在计算机中都是以二进制来进行运算,所以上面我们所给的int变量会在原创 2021-02-10 21:48:56 · 797 阅读 · 0 评论 -
看完不后悔系列,SQL语句执行慢怎么办,原因总结!!
一、开始装逼:分类讨论1.大多数情况是正常的,只是偶尔会出现很慢的情况。2.在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。二、针对偶尔很慢的情况一条SQL大多数情况正常,偶尔才能出现很慢的情况,针对这种情况,我觉得这条SQL的书写本来是没有问题的,而是其他原因导致,那会是什么原因呢?1.数据库在刷新4脏页(flush)我也无奈啊当我们要往数据库插入一条数据、或者更新一条数据的时候,我们知道数据会在内存中把对应字段的数据更新了,但是更新之后,这些更新的字段并...原创 2021-02-10 14:46:01 · 2035 阅读 · 1 评论 -
Java对象创建过程
STEP1:类加载检查虚拟机遇到一条 new指令的时候,首先去常量池中检查该对象的符号引用,并检查该引用是否被加载过、初始化过、解析过。如果没有,就要去执行类加载过程。STEP2:分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定。分配方式有两种:”指针碰撞”和“空闲列表”两种,选择那种分配方式由Java堆是否规整决定,而 Java堆是否规整又由所采用的垃圾收集器是否带有压缩整理功能所决定。指针碰撞:适用场合:堆内存规整(没有内存...原创 2021-02-10 14:37:38 · 190 阅读 · 2 评论 -
三次握手四次挥手必掌握,看了绝对不吃亏!
TCP三次握手和四次挥手三次握手TCP是运输层的协议,所以该协议为了保证运输的准确性。然后进行三次握手。SYN(确认发送到接收):同步序列编号,是TCP/IP建立连接时使用的握手信息。ACK(确认接收到发送):确认字符,表示发来的数据已经确认无误。既然是传输的TCP报文,那么我们来看看TCP报文长什么样子!第一次客户端发送:客户机发起连接请求,将SYN(同步序列编号)位设置为1,同时客户端选择了一个初始序列号x,并存在TCP报文段的序号中。第二次服务端发送:服务端接收原创 2021-02-10 14:13:37 · 233 阅读 · 0 评论 -
面试必掌握之计算机网络
五、计算机网络5.1 OSI与TCP/IP各层的结构与功能,都有哪些协议?其中表示层和会话层都会归结到应用层,从下到下的层级解释:5.1.1应用层应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的应用进程间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,比如域名系统DNS,万维网的HTTP协议,邮件系统的SMTP协议。我们把应用层交互的数据称为报文。5.1.2运输层运输层的主要任务就是负责向两台主机进程之间的通信提...原创 2021-02-08 22:16:13 · 5008 阅读 · 2 评论 -
面试必掌握的redis的问题
三、数据库:redis(原文PDF获取详情见文字末尾)3.1 redis的简介Redis是一个非关系型数据库,但是与传统的数据库相比,Redis的数据是存在内存中的, 所以读写速度非常快,因此 redis被广泛应用于缓存方向。另外,redis也经常用来做分布式锁。Redis提供了多种数据类型来支持不同的业务场景。除此之外,redis 支持事务、持久化、Lua脚本、LRU驱动时间,多种集群方案。为什么要用redis/为什么要用缓存为什么用一个东西,肯定是以前的东西不好,所以出了这...原创 2021-02-04 23:40:22 · 2946 阅读 · 0 评论 -
面试必掌握的Mysql的11个问题
二、数据库:Mysql2.1.Mysql的简介Mysql是关系型数据库管理系统(DBMS),Sql是结构化查询语言。DBMS负责执行SQL去操作数据库(DB,一般存储在硬盘上)中的数据。2.2.存储引擎(1)常用的指令Show engines; 查看MySql提供的所有存储引擎 可以看出有9个引擎,但是只有InnoDB具有事务。Show table status like “表名”:查看表的存储引擎(2)MyISAM和InnoDB的区别MyISA...原创 2021-01-30 16:00:31 · 4742 阅读 · 5 评论 -
对象三大特性:封装、继承、多态。通俗易懂!!看完还不懂来打我!!!超详细!!涉及各种重要基础
请大家仔细看完,学习要慢慢来,基础要仔细打牢!! 看完这篇面向对象还不懂的,来打我!!一.面向对象:封装、继承、多态。1.1、封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。好处:1.只能通过规定的方法访问数据 2.隐藏该类的实例细节,方便修改和实现。A.访问修饰符B.Java中的内部类:内部类就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。那么问题来了:那为什...原创 2021-01-26 10:13:53 · 1072 阅读 · 0 评论 -
C++的智能指针
每日面经–10.14C++的智能指针想要弄清楚智能指针就要明白它为什么会产生,动态管理、动态数组、动态内存分配等都需要在堆上申请一块内存去保存自己的东西。你可能会觉得你自己用不到,我随便举一个栗子:比如说你下午要去买水果,但是不知道自己想买多少水果,但是由于现在必须出门,所以你要带多大的口袋是不知道的。在C++中你知道要保存一些数据到一个数组,你又想刚好数组的大小是你这些数据的大小。所以你就可以申请一个动态数组,当前面计算好了数据的大小,你这边直接赋值,比如下列程序:如果p不申请为动态数组的话,那么原创 2020-10-15 22:03:07 · 157 阅读 · 0 评论 -
**inline**与**volatile**关键字
每日一面经C++(inline与volatile关键字)–10.13 不知不觉面临找实习的处境,仔细回顾自己学习的内容,大多都很零散,日历做了慢慢的安排,不知之后能否坚持下去,但是不开始做是永远不会进步。inline 关键字 inline是声明内联函数的声明,因为用函数名调用的话,会进入栈空间,返回的时候也会从栈空间出来,这里影响时间效率。如果对代码程序内存的变量存储区与各个区域不是很熟悉,可以看看这篇文章https://blog.csdn.net/j原创 2020-10-14 11:11:06 · 439 阅读 · 0 评论