面试
文章平均质量分 64
菜鸟老文
这个作者很懒,什么都没留下…
展开
-
正则表达式-学习-与网络相关的正则表达式--利用Apifox生成网络相关数据:
改笔记用来记录,自己使用过,正则和解释1,与域名相关的:(1)MAC地址:生成MAC地址:^[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}$Apifox写法:@regexp(/^[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}:[A-Fa-f\d]{2}$/)生成数据:"MAC":原创 2022-04-20 20:54:18 · 806 阅读 · 0 评论 -
JDK源码阅读-集合01:List接口的设计逻辑?List接口源码解析?附上完整无注释源码
如果你读List源码还是从头开始,那么我推荐你读一下这篇文章。原创 2021-12-18 00:29:02 · 564 阅读 · 0 评论 -
数据库-MySQL:数据库设计01-字段长度记录->varchar能够存多少个汉字?varchar(100)和char(100)的区别
场景介绍:我们在设计数据库时候,总是不可避免的使用的varchar来作为表的字段,但是表长度应该多少呢?我们很多时候使用varchar来做字段,为什么不用char?每个字段类型可以表示的数据是多少?设置多长字段符合业务需求?在网上找到了,一些文章,所以写下自己的一些日记。1,varchar(100)能存多少个汉字?具体还是要看版本的,一个字符占用3个字节 ,一个汉字(包括数字)占用3个字节=一个字符(1)MySQL 4.0版本以下varchar(100),指的是100字节,如果存放原创 2021-11-03 15:54:20 · 2622 阅读 · 0 评论 -
大前端-React08:组件实例三大属性之state(实例数据表示组件状态)&&点击页面文字发生变化。
特别说明只有类的实例对象才有state,函数创建组件没有state01-代码02-解释1,类中的state(1)state表示一种状态,(2)this 指向,类实例。(3)Render()中的数据视图(4)点击事件:(5)绑定:绑定this为组件对象01-代码<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>07_component_state</title&g原创 2021-10-25 00:22:40 · 179 阅读 · 0 评论 -
大前端-React07:React创建组件的两种方式---函数创建和类创建&&React组件怎么实例化?类中this指向谁?Render()方法
01-代码:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>03_component_basic</title></head><body> <div id="example1"></div> <div id="example2"></div> <script原创 2021-10-24 17:17:59 · 219 阅读 · 0 评论 -
大前端-React7.5:React类的相关知识的复习
01-代码:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>1_类相关值知识复习</title></title></head><body> <div id="example1"></div> <script type="text/javascript" src="../js原创 2021-10-24 12:40:26 · 1061 阅读 · 0 评论 -
大前端-React06:组件和模块化之间的区别?拆分的力度不同
这里写目录标题01- 模块(全称:js模块)1,向外提供特定功能的 js 程序, 一般就是一个 js 文件。2,为什么而诞生的?3,这样做的好处?02-组件1,概念:用来实现特定(局部)功能效果的代码集合(html/css/js)2,为了什么而诞生的?3,这样做的好处03-模块化1,概念:当应用的 js 都以模块来编写的, 这个应用就是一个模块化的应用04-组件化:1,概念:当应用是以多组件的方式实现, 这个应用就是一个组件化的应用2,在React中的组件。(1)相似组件,使用React组件之前:(2)相似原创 2021-10-24 00:31:36 · 186 阅读 · 0 评论 -
大前端-React05:关于JSX小练习遍历数组&&map函数和箭头
主要看3,箭头函数那一块01-完整代码:02-代码解释:03-代码段解释:map+箭头函数(1)首选调用了,myId中map方法(2)map方法里面有啥?(3)结果-解惑01-完整代码:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>JSX练习</title> </style></head><body> &原创 2021-10-23 23:33:25 · 453 阅读 · 0 评论 -
大前端-React04:JSX语法-7大规则&&(虚)根级>标签级>内容级>样式级:1+3+1+2
规则介绍,看目录也可以01-完整代码:02-代码解释-7大规则:1,创建虚假DOM不要使用单引号:‘ ’2,引入变量(标签中混入js表达式使用"{}"):3,修改样式(类名样式不要用Class,用ClassName)a,样式代码:b,代码:c,输出:4,内联样式,要用style={{key:value}}a,代码:b,输出错误:c,修正:解释:为什么要写两个括号?5,虚拟DOM只能有一个根标签:6,jSX中的标签必须闭合7,标签首字母(1)若首字母是小写,那么就会将标签转换成html同名的元素(2)若首字母原创 2021-10-23 22:19:32 · 202 阅读 · 0 评论 -
大前端-React03:什么是虚假DOM?虚假DOM和真实DOM的区别?
浏览器解析效果:01-代码:(1)打印输出虚拟DOM是什么?<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>01_HelloWorld</title></head><body> <div id="test"></div> <!-- react核心库 --> <script原创 2021-10-23 21:15:38 · 295 阅读 · 0 评论 -
大前端-React02:React第一个样例程序&&React 15x核心库介绍
01-代码:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>01_HelloWorld</title></head><body> <div id="test"></div> <!-- react核心库 --> <script type="text/javascript" sr原创 2021-10-23 20:39:42 · 122 阅读 · 0 评论 -
大前端常识01:XML和Json是什么?有什么区别?为什么使用大量使用json而不是xml?
1,XML和Json是用于存储和传输数据2,XML和Json有什么区别xml示例:<student> <name>Tom</name> <age>19</age></student>json示例(常用):"{"name":"Tom","age":19}"3,为什么使用大量使用json而不是xml?(1)xml的缺点:在上述示例中我们可以看到,我们有时候只需要Tom和19的真实数据,但是标签的内容比真实数据还要多原创 2021-10-23 20:11:34 · 433 阅读 · 0 评论 -
微服务学习01:架构演变过程
架构演变从:单体架构,集群架构,单体架构:前后端一体,前后端分离集群架构;垂直架构;SOA架构;微服务架构1。单体架构:(1)前后端不分离:也就是那个使用jsp的古老年代,那个时候前后端交互是不分离,甚至一部分逻辑层代码还是写在Jsp中(2)前后端的分离:前后端的分离,标志在于Node.js 的诞生,这意味JavaScript不仅仅只是一个辅助的语言了,也可以单独构建项目了,这个时候前后端的职责开始分离,后端只需要进行数据传输,接口即可。这个时代也就是现在最火React和Vue语言开始了。原创 2021-10-19 23:17:23 · 229 阅读 · 0 评论 -
多线程基础02:面试真题---线程有多少种状态?哪7种?
4种常态+三种中间态=7种常态 1,New---------------线程刚被创建常态 2,Ready------------线程就绪中间态(1):TimeWaiting----限时等待中间态(2):Waiting-----------需要手动释放中间态(3):Blocked----------阻塞(上锁)常态 3,Running--------运行常态 4,Teminate-------销毁中间态就是处于就绪和运行之间,线程的状态(中间态,是作者自己为了便于记忆自己取的)常态 1,New-----原创 2021-10-11 00:26:39 · 89 阅读 · 0 评论 -
多线程基础01:面试:wait和sleep,yield和join有什么区别;怎么保证的多线程顺序执行?
看目录啦1, wait-Object方法---等待----释放资源2,sleep-Thread方法--睡眠--不释放资源3,yield-Thread方法--重回消息队列---重新竞争4,join-Thread方法---让另外一个线程执行完再执行(1)面试题:怎么让线程ABCD顺序执行?方法A:在主线程按照顺序方法B:在线程内部调另外一个线程1, wait-Object方法—等待----释放资源2,sleep-Thread方法–睡眠–不释放资源3,yield-Thread方法–重回消息队列—重新竞争也原创 2021-10-11 00:05:58 · 129 阅读 · 0 评论 -
JVM虚拟机06:JSR内存屏障
JSR内存屏障有四种,LoadLoad,StoreStore,LoadStore,StoreLoad。Load,表示读指令,Store,表示写指令,两两组合,标识两个指令之间不可以进行重排序。1,LoadLoad屏障:对于这样的语句Load1;LoadLoad;Load2,在Load2及后续读取操作要读取的数据被访问前,保证Load1要读取的数据被读取完毕、2,StoreStore屏障:对于这样得语句Store1;StoreStore;Store2,在Store2及后续写入操作执行前,保证原创 2021-10-09 11:57:08 · 224 阅读 · 0 评论 -
java多线程03:Volatile作用---保持线程可见性&&禁止CPU指令重排序
1,测试实验,测试有无volatile的区别:(1)volatile保证线程可见性,public class T01_HelloVolatile{ /*volatile*/ boolean runing=true; void m(){ System.out.println("线程开始"); while (runing) { //这里包含了刷新内存的操作 //System.out.print原创 2021-10-09 00:51:01 · 89 阅读 · 0 评论 -
java多线程面试题01:进程和线程有什么区别?
1,进程(资源分配单位)2,线程(最小执行单位)原创 2021-10-09 00:10:14 · 90 阅读 · 0 评论 -
java多线02:synchronize四个层级实现(代码,java 字节码,执行过程,汇编)
1,java代码层面:直接在需要上锁的代码中添加代码:synchronize源代码: public static void main(String[] args) { Object o=new Object(); System.out.println(ClassLayout.parseInstance(o).toPrintable()); synchronized(o) { System.out.pr原创 2021-10-08 23:37:38 · 113 阅读 · 0 评论 -
Java多线程&&JVM内存布局01:Java对象在内存中存储的布局
1添加JOL(Java Object Layout)依赖: <dependencies> <!-- https://mvnrepository.com/artifact/org.openjdk.jol/jol-core --> <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol原创 2021-10-08 22:45:43 · 140 阅读 · 0 评论 -
JVM虚拟机04:JVM调优怎么选择垃圾回收器(GC)?垃圾回收器(GC)发展历史
对于以下,新生代,老年代不了解的朋友可以看我往期文章:JVM虚拟机03:什么是GC(垃圾回收机制)?什么是新生代和老年代?内存分代模型1,根据应用场景选择垃圾回收器(GC):GC的演化历史:GC是随着内存大小的不断增长而演进的场景:从几兆(M)到几十兆(M)Serial :单线程STW垃圾回收 年青代 老年代场景:几十兆—上百兆(1G)parallel 并行多线程 (JDK1.8默认垃圾回收器 )场景:几十个G的内存(当增加再多的线程的时候,都已经没有用得时候。)Con原创 2021-10-07 10:40:28 · 506 阅读 · 0 评论 -
JVM虚拟机05-什么是三色标记算法?使用在并发标记阶段?CMS针对三色标记漏标怎么解决?CMS天生Bug
1,三色标记的应用场景:三色标记算法是应用于并发标记阶段,用标记判断是不是垃圾。(1)什么是并发标记阶段。七个阶段中第二阶段:并发标记阶段的主要工作是,通过遍历第一个阶段(Initial Mark)标记出来的存活root对象,继续递归遍历老年代,并标记可直接或间接到达的所有老年代存活对象。可以参考这篇文章:Java之CMS GC的7个阶段(2)什么是三色?三色标记中的,三色分别代表着,垃圾回收的扫描程度和节点的标记状态,黑色:表示该节点及其子节点已经完全扫描标记完成了,所以不再需要标记灰色原创 2021-10-07 09:39:05 · 750 阅读 · 0 评论 -
JVM虚拟机03:什么是GC(垃圾回收机制)?什么是新生代和老年代?内存分代模型
1,什么是GC(Garbage Collection)?GC就是垃圾回收器,在上面一篇文章中,我们说到一件事,在一直所有垃圾回收算法里面,标记清除(Mark-Sweep),Coping(复制),标记压缩(Mark—Compact),各有特点,也各有优点,想要进一步了解,可以这篇文章:JVM虚拟机02:学习GC回收期必备前置知识-----什么是Java的垃圾?定位垃圾方式有哪些?GC回收的清除算法有哪些?在这里就不再多说。垃圾回收器,则是个根据各种情况,使用上述三种清除算法机制。2,看一下垃圾回收机原创 2021-10-06 15:46:21 · 240 阅读 · 0 评论 -
JVM虚拟机02:学习GC回收期必备前置知识-----什么是Java的垃圾?定位垃圾方式有哪些?GC回收的清除算法有哪些?
1,什么是垃圾(Garbage)?JVM虚拟机01:程序的栈(栈帧stack frame)和堆首先我们之前就可以,GC(垃圾回收机制)是针对于内存在堆中的回收的?所以什么是垃圾?垃圾就是内存中无用实例。看下图,如果对象B还指向对象实例B的话,那么就说明,对象B是被引用的,不是垃圾,但是在图中,变量B已经没有引用对象了,所以实例没有被引用,也就是我们垃圾2,定位垃圾方式有哪些?GC回收方式一共有两种:(1)引用计数(Reference Count)Python参考文章:引用计数-百度百科原创 2021-10-06 13:06:18 · 145 阅读 · 0 评论 -
计算机基础恶补-03:UMA和NUMA-为解决多核CPU抢占内存地址的浪费的架构解决方案
1什么是NMA?Uniform Memory Access:均匀访存模型(英语:Uniform MemoryAccess)通常简称UMA,亦称作统一寻址技术或统一内存存取架构,指所有的物理存储器被均匀共享,即处理器访问它们的时间是一样的。这种系统因为高度的资源共享也被称为紧耦合系统(Tightly Coupled System)。(2)缺点如上图:CPU数量增多有什么后果?CPU数量增多后引起内存访问冲突加剧。这样做直接导致什么?CPU的很多资源花在争夺内存地址上面的一般来说多少颗原创 2021-10-02 11:36:47 · 2596 阅读 · 0 评论 -
计算机知识恶补-02:计算机硬件基础-CPU
1,计算机基本组成:2,CPU制作基本流程:具体视频:从沙子到芯片,Intel英特尔处理器制作过程视频:晶体管是如何工作的?文章:晶体管的结构与工作原理3,CPU与内存CPu的运算本质是通过晶体管,在内部形成逻辑电路,再一次通电和放电的过程中,进行运算,(1)那么内存作用是啥的呢?内存可以简单理解为,cpu的数据和程序运算过程的一个仓库内存作用就是作为一个存储充电放电(电信号)这样只需要将里面信息加载进去即可。...原创 2021-10-02 09:57:05 · 197 阅读 · 0 评论 -
计算机操作系统恶补-01:汇编语言的操作过程
1,什么是汇编语言的?1.1概念(1)汇编语言是一个注记语言。(2)汇编语言也就是机器语言,计算机能够直接读懂代码。1.2 解释(1)机器码本质即是01001,只有零和一,但是为了记忆,人们将一段指定01010数字描述为某个指定字符,也就是我们常说关键字。比如说(瞎扯的,只是为了举例)0110011这一段机械码指定为了sum,那么在汇编中就是sum关键字(2)用0和1表示开始和结束这样的一个过程,通电和端点,无数个0和1的组合就是无数个通电和断电,开或者关的过程。2,汇编语言(机器码)执行流程原创 2021-10-01 15:30:45 · 313 阅读 · 0 评论 -
Java面试题:Semaphare 和lock的区别?
Semaphere:是一个流程控制级别,Lock是锁定代码。区别在于,lock是占用锁,semaphere是释放一个信号。Semaphare的应用场景有,比如银行取钱,开放一个窗口就是permits为1,予许一个线程进行执行,一个线程得到信号之后就进行执行,...原创 2021-10-01 14:59:52 · 525 阅读 · 0 评论 -
Mysql笔记:索引监控_06
关键字:show status like 'Handler_read%';上图:原创 2021-09-20 16:33:13 · 158 阅读 · 0 评论 -
Mysql面经:SQL索引优化——05(建议收藏)
一,准备工作:导入mysql为我们准备的Sql表:Mysql测试数据下载下载压缩包之后,解压,运行其中的sql语句:进入sakila数据库之后:use sakila查看数据库中的表show tables二,索引优化细节:1,当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层select actor_id from actor where actor_id=4;(1)引用主键索引(正确使用): explain select actor_id f原创 2021-09-20 16:30:55 · 237 阅读 · 0 评论 -
Mysql面经:索引分类和索引匹配问题——04
全职匹配匹配最左前缀匹配列前缀匹配范围值精确匹配某一列并范围匹配另一列只访问索引查询原创 2021-09-20 00:41:15 · 210 阅读 · 0 评论 -
Mysql面经:什么是MRR和FIC?--03
1,什么是MRR?MRR,全称「Multi-Range Read Optimization」。简单说:MRR 通过把「随机磁盘读」,转化为「顺序磁盘读」,从而提高了索引查询的性能。他的过程其实这样的,再上一遍中,使用回表的过程中,二级索引返回大量数据,比如一千条,数据取出来是随机乱序的,所以呢,这一千条数据进行排序,那么我们在主键索引中就可以对他进行范围查询了,而不是重新在根节点中一个个遍历。就是一个针对优化的优化。还是不理解的,可以去看知乎大佬的文章:MySQL 的 MRR 到底是什么?2,原创 2021-09-18 23:01:30 · 1095 阅读 · 1 评论 -
Mysql面经:-----索引进阶02
Mysql入门:回表什么情况下Mysql会使用,回表呢?答:在使用二级索引(辅助索引)的时候。解释:现在有一个主键索引B+树,一个索引B+树当我们执行:select * from table where name = ?的时候,他会现在索引B+树中,找到对应的键值,之后再跳到的主键B+树中进行根据主键进行,主键索引一个好问题,使用二级索引(产生回表)的时候会不会很慢?假设,走一个B+树需要3次I/O,那么走两个B+树(主键索引和二级索引)需要6次。所以,一共要走6次I/O结原创 2021-09-18 22:30:57 · 136 阅读 · 0 评论 -
Mysql面经:数据库索引——01
从0构建索引1,为什么要设计索引?索引是为了能够让我们更快得到我们想要的数据。类比于字典,索引就是我们的边旁指引一样;就像是,一本书一样,能够根据他的目录而找到他相关内容,只是索引关联的更加紧密,搜寻密度更大。索引-数据2,如果是你,如何设计索引一般人才的思路:1,关键值:key2,文件名称:3,偏移量:offset但是一个缺点就是很慢,根本达不到我们能够快速找到目的首先我们要知道我们需要设计一个什么样的数据库:也就是所谓了OLTP和OLAP之间我们选谁?好了一个小问题?什原创 2021-09-18 10:14:54 · 279 阅读 · 0 评论 -
面试:什么是TCP/IP协议?三次握手;数据传输;四次分手的具体过程。
前置知识:为了方便与理解和架构解耦,所以人们将网络分为 七层参考模型1,OSI 7层参考模型这个是TPC的网络的原型,在TCP中呢,表示层与会话层一起合并到应用层中。2TCP/IP网络模型从上面我们可以看到,我们程序员使用的程序员只占用的应用层,其他层均是归属于操作系统内核来操作。也就是(敲黑板):并不是程序进行通信,是程序依赖于操作系统内核进行通讯不同主机间通讯正文开始我们可以看到这样的一个事实:1,应用层传输到传输控制层协议,2,传输控制层有两种协议:TCP和UDP3,TC原创 2021-09-16 09:44:24 · 206 阅读 · 0 评论 -
排序-数字排序和非数字排序(常见排序算法和比较器使用)
排序的两种情况1,也就是我们的常见根据数据大小进行排序2,当我们的排序的对象,不再是单纯数字的,时候,我们就需要用到比较器(comparator)1,数字排序(1)快排//做个筛选判断 public static void quickSort(int[] arr) { if (arr==null || arr.length<2) { return; } //这里就说明需要进行所有排序原创 2021-09-15 09:52:36 · 559 阅读 · 0 评论 -
堆与栈在数据结构和内存的区别
在数据结构中:在数据结构中存放有两种对数据结构,堆和栈栈就像装数据的桶或箱子-后进先出我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。堆像一棵倒过来的树-二插堆而堆就不同了,堆是一种经过排序的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也原创 2021-09-15 08:07:34 · 96 阅读 · 0 评论 -
2022-八月最新面试题:MySQL锁----MySQL锁有几种?
面试官进程问:所以在这里记录一下,面试官你自己看讲一下mysql有多少种锁?我们可以了解到,有死锁,活锁,共享锁,排它锁,行锁,表锁,记录锁,临建锁,间隙锁,意向共享锁,意向排它锁。一堆记起来,其实对人不是很友好的,所以我们可以先开始做个分类:锁的分类从状态划分:共享锁,排它锁从粒度来划分:行锁,表锁,记录锁,间隙锁,临建锁从状态来划分:意向共享锁,意向排它锁。**注意:**死锁和活锁,其实编程方面,并发编程方面,所以这里不录入01-状态锁-解释:共享锁,也就是我们常说“ 读锁”,可以共原创 2021-08-07 00:01:59 · 192 阅读 · 0 评论