三大面试题、CSS、JS、Vue
css相关
一、什么是盒模型
把所有的网页元素都看成一个盒子,它具有: content,padding ,border,margin 四个属性,这就是盒子模型盒子模型有两种形式:标准盒子模型,怪异盒子模型
两种模式可以利用box-sizing属性进行自行选择:标准模式:box-sizing:content-box;怪异模式:box-sizing:border-box;两种模式的区别:
标准模式会被设置的padding撑开
而怪异模式则相当于将盒子的大小固定好,再将内容装入盒子,盒子的大小并不会被padding所撑
二、BFC
1、什么是BFC?BFC是一块独立的布局环境,保护其中内部元素不受外部影响,也不影响外部。本身BFC是一种css的布局方式,只是我们可以利用它来解决外边距折叠的问题,BFC并不是专门用来解决这个问题而创的;
三、清除浮动
1.为什么要清除浮动?
清除浮动主要是为了解决,父元素因为子级元素浮动引起的内部高度为0的问题当父元素不给高度的时候,内部元素不浮动的时候会撑开,而浮动时父元素会变成一条线,所以这个时候就需要解决浮动
*清除浮动的四种方式*
额外标签法(给最后一个浮动的标签后,新加一个标签,给其设置clear:both;,)(但这种方式是不推荐使用的,因为添加无意义的标签,语义化差)
父元素添加overfiow属性(过触发BFC的方式,实现清除浮动)
使用after伪元素清除浮动
优点:符合闭合浮动思想,结构语义化正确,不容易出现其他为题 缺点:IE6-7不支持伪元素:after,使用zoom:1触发
四、元素居中的方式
方法一:父相自绝后,子分部向左向上移动本身宽度和高度的一半(也可以transform:translate(-50%,-50%))最常用方法
方法二:父元素设置成弹性盒,子元素横向居中,纵向居中
方法三:父向子绝,子元素所有定位为0,margin设置auto自适应。
五、两/三栏布局(圣杯双飞翼)、
1、两栏布局,左边定宽,右边自适应左边左浮动,右边加overflow:hidden;变成BFC清除左侧浮动元素的影响
2、三栏布局,圣杯布局,双飞翼布局首先定义出整个布局的DOM结构,主体部分是由conatiner包裹的center,left,right三列,其中center定义在最前面。(1)假设左侧的固定宽度为200px,y右侧的固定宽度为150px,则首先在container上设置(2)随后分别为三列设置宽度与浮动,同时对footer设置清除浮动:(3)根据浮动的特性,由于center的宽度为100%,即占据了第一行的所有空间,所以left和right背挤到了下一行,接下来的工作是将left放置到之前预留出的位置上,这里使用负外边距:(4)随后使用定位方法
六、flex布局
我在项目中常用到的有九宫格布局,列表布局等,都会经常用到。
Flex 布局,可以简便、完整、响应式地实现各种页面布局,任何一个容器都可以指定为 Flex 布局,行内元素也可以使用 Flex 布局。Flex的属性:lex-directionflex-wrapflex-flowjustify-contentalign-itemsalign-content
七、常见的块级、行级、空元素
(1)、块级元素
- 没有设置宽度时,它的宽度是其容器的 100%;
- 可以给块级元素设置宽高、内边距、外边距等盒模型属性;
- 块级元素可以包含块级元素和行内元素;
- 常见的块级元素有:`<div>`、`<h1>` ~ `<h6>`、`<p>`、`<ul>`、`<ol>`、`<dl>`、`<table>`、`<address>``<form>`
(2)、行内元素
- 行内元素不会独占一行,只会占领自身宽高所需要的空间;
- 给行内元素设置宽高不会起作用,margin 值只对左右起作用,padding 值也只对左右起作用;
- 行内元素一般不可以包含块级元素,只能包含行内元素和文本;
- 常见的行内元素有 `<a>`、`<b>`、`<label>`、`<span>`、**`<img>`**、`<em>`、`<strong>`、`<i>``<input>`
(3)、空元素 ( 在 HTML[1] 元素中,没有内容的 HTML 元素被称为空元素 )
<br/> //换行 <hr> //分隔线 <input> //文本框等 <img> //图片 <link> <meta>
八、Css Hack
由于不同的浏览器和浏览器各版本对CSS的支持及解析结果不一样,以及**CSS优先级对浏览器展现效果的影响**,我们可以据此针对**不同的浏览器情景来应用不同的CSS**。
(1)、选择符
(1)IE6 能识别 `*html .class{}`
(2)IE7 能识别 `*+html .class{}` 或 `*:first-child+html .class{}(2)、属性(1)IE6 能识别下划线" _ "和星号" * "(2)IE7 能识别星号" * ",但不能识别下划线" _ "(3)IE6~IE10 都识别" \9 "(4)firefox 前述三个都不能识别。`(3)、条件(1)所有 IE (注:IE10+ 已经不再支持条件注释)能识别 <!--[if IE]>IE浏览器显示的内容 <![endif]-->(2)IE6及以下版本能识别 <!--[if lt IE 6]>只在IE6-显示的内容 <![endif]-->
这类 Hack 不仅对 CSS 生效,对写在判断语句里面的所有代码都会生效。(3)实际项目中 CSS Hack 大部分是针对 IE 浏览器不同版本之间的表现差异而引入的。
九、src与href的区别
href和src的区别:href是指向网络资源所在位置,建立当前元素或者当前文档之间的链接,用于超链接。例如:a标签 link标签src:是指向外部资源位置,指向的内容会嵌套到当前文档标签所在的位置。例如:img标签 frame标签主要区别:href是网络资源,src是外部资源。href是超链接,src资源会嵌套到当前标签。
十、link与@import区别
两者都是外部引用CSS的方式,但是存在一定的区别:区别1:link除了引用样式文件,还可以引用图片等资源文件,而import只能引用样式文件区别2:link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。区别3:link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。区别4:link支持使用Javascript控制DOM去改变样式;而@import不支持。
十一、css3/H5新特性
一、css3
1、选择器
:last-child /* 选择元素最后一个孩子 */
:first-child /* 选择元素第一个孩子 */
:nth-child(1) /* 按照第几个孩子给它设置样式 */2.背景和边框border-radius: 圆角border-shadow/text-shadow: 阴影border-image: 边框图片
二、html5新特性1. 语义化标签:文档头部:header、文档尾部:footer、文档中的节点:section、导航:nav、侧边栏:aside、独立内容区域:article
2. 增强型表单:HTML5 拥有多个新的表单 Input 输入类型。这些新特性提供了更好的输入控制和验证
十二、浏览器兼容性问题
不同浏览器的标签默认间距不同,所以在网页解析有一定的差异
1、.css3新属性,加浏览器前缀兼容早期浏览
`-moz-` / 火狐浏览器 /`-webkit-` / Safari, 谷歌浏览器等使用Webkit引擎的浏览器 /`-o-` / Opera浏览器(早期) /`-ms-` / IE /2、.IE浏览器div最小高度和宽度的问题加宽高,并且宽高加auto
JS相关
一、 原型和原型链
\1. prototype每个函数都有一个prototype属性,被称为显示原型
2._ _proto_ _每个实例对象都会有_ _proto_ _属性 ,其被称为隐式原型每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype
\3. constructor每个prototype原型都有一个constructor属性,指向它关联的构造函数。
\4. 原型链获取对象属性时,如果对象本身没有这个属性,那就会去他的原型_ _proto_ _上去找,如果还查不到,就去找原型的原型,一直找到最顶层(Object.prototype)为止。Object.prototype对象也有_ _proto_ _属性值为null。
二、 作用域
1、作用域每一个变量、函数都有其作用的范围,超出作用不得使用,这个叫做作用域。
2、全局变量、局部变量:1.全局变量:(1)在全局范围内声明的变量,如var a=1;(2)只有赋值没有声明的值,如a=2; (注:如果a=2在函数环境中,也是全局变量)2.局部变量:写入函数中的变量,叫做局部变量。3.作用:(1)程序的安全。(2)内存的释放。
三、 闭包
1、闭包
闭包是可以访问另一个函数中的变量的函数
2、优点缺点
优点:长期驻留内存,可以缓存数据
缺点:可以隔离作用域,避免全局污染
四、 This的指向
核心点1:谁调用指向谁,全局this指向window(隐含)。
核心点2:两种情况:作为全局函数或在函数中调用->window,作为对象方法调用->对象;普通函数中this指向函数的拥有者构造函数中this指向实例化对象箭头函数中没有this,this拿的是上一级的this来使用
五、 垃圾回收和内存机制
内存泄漏:
要想破坏循环引用,引用DOM元素的对象或DOM对象的引用需要被赋值为null。
1.闭包在闭包中引入闭包外部的变量时,当闭包结束时此对象无法被垃圾回收(GC)。
2.DOM泄露当原有的DOM被移除时,子结点引用没有被移除则无法回收
垃圾回收:
六、宏任务和微任务
宏任务
宏任务指执行栈中待执行的任务,`计时器,事件回调,http回调`都是宏任务。
微任务微任务指执行栈清空后立即执行的任务,`Promise 和 MutationObserver`都是微任务。
七、Js基础
1、数据类型js 中基本数据类型:String(字符串)、Number(数字)、Array(数组)、Boolean(布尔类型)、Object(对象)、null、undefined;(1).堆栈内存:栈内存:用来存储基本数据类型,用来执行函数堆内存:用来存储引用数据类型:对象,函数
2、手写深拷贝(1)、深拷贝和浅拷贝的区别浅拷贝 : 只是将数据中所有的数据引用下来,依旧指向同一个存放地址,拷贝之后的数据修改之后,也会影响到原数据中的对象数据深拷贝: 将数据中所有的数据拷贝下来,对拷贝之后的数据进行修改不会影响到原数据var data = {name:"test", //一会要被拷贝的数据,包含字符串、对象、函数、数组main:{a:1,b:2},fn:function(){},friends:[1,2,3,[22,33]]}function shallowCopy(obj){var data = {};for (var i in obj){if(obj.hasOwnProperty(i)){data[i] = obj[i]}}return data}var obj2 = shallowCopy(data)obj2.name = '修改成功' //由于name是基本数据类型,会开辟一个新的地址来储存我们拷贝的内容,所以原数据的name属性不会被修改obj2.main.a = 100 // main是引用类型,浅拷贝会直接拷贝它的地址,所以原数据的这个值也会改变console.log(data,obj2)
3、类型判断数据类型判断大概有四种typeof、instanceof、constructor、Object.prototype.toString.call()
4、数组方法(1).push() 可以添加一个或多个参数到数组的尾部,添加之后原来的数组会发生改变,返回的是添加后的数组的长度(2).pop() 从数组尾部删除一个元素,原数组会发生改变,返回数组中被删除的元素(3).unshift() 可以添加一个或多个参数到数组的头部,添加后原来的数组会发生改变,返回的是添加后的数组的长度(7).reverse() 数组翻转(8).sort() 数组排序(9).join() 数组拼接(10).isArray() 判断是否是数组(11).toString() 数组转字符串
5、数组去重利用indexOf属性,判断新数组里是否存在原数组中的值,当小于0,证明没有这个元素,就添加其道新数组,从而达到去重的作用
6、数组排序冒泡排序、快速排序—递归排序、选择性排序
7、数组扁平化数组扁平化就是将一个多维数组转换为一个一维数组9
实现基本方式(1)、对数组的每一项进行遍历。(2)、判断该项是否是数组。(3)、如果该项不是数组则将其直接放进新数组。(4)、是数组则回到1,继续迭代。(5)、当数组遍历完成,返回这个新数组。
八、 高频面试题
1、 for···in和for···of的区别(1)、从遍历数组角度来说,for···in遍历出来的是key(即下标),for···of遍历出来的是value(即数组的值)(2)、从遍历字符串的角度来说,同数组一样。(3)、从遍历对象的角度来说,for···in会遍历出来的为对象的key,但for···of会直接报错。(4)、如果要使用for…of遍历普通对象,需要配合Object.keys()一起使用。
2、null和undefined区别但是null和undefined仍然存在一些区别:(1).类型不一样(2).转为数值时,值不一样(3).===运算符可区分null和undefined
3、this, call, apply, bind(1).浏览器里,在全局范围内的this 指向window对象;(2).在函数中,this永远指向最后调用他的那个对象;(3).构造函数中,this指向new出来的那个新的对象;(4).Call、apply、bind中的this被强绑定在指定的那个对象上;
4、继承(1).原型链继承将父类的实例作为子类的原型优点:非常纯粹的继承关系,实例是子类的实例,也是父类的实例父类新增原型方法/原型属性,子类都能访问到简单,易于实现缺点:要想为子类新增属性和方法,必须要在new Animal()这样的语句之后执行,不能放到构造器中无法实现多继承来自原型对象的所有属性被所有实例共享创建子类实例时,无法向父类构造函数传参(2).拷贝继承原理:遍历对象拷贝函数的属性,赋值到当前函数的属性上。再把属性值重新赋值。优点:支持多继承缺点:效率较低,内存占用高(因为要拷贝父类的属性)无法获取父类不可枚举的方法(不可枚举方法,不能使用for in 访问到)
5、设计模式(1).什么是单例保证一个类只有一个实例,并且提供一个访问该全局访问点(2).什么是观察者模式行为性模型:行为型模式关注的是系统中对象之间的相互交互,解决系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。观察者模式,是一种行为性模型,又叫发布-订阅模式,他定义对象之间一种一对多的依赖关系,使得当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。
九、dom操作
一、dom元素获取1.`document.getElementById(id``的值``)` 通过id来获取元素的对象,返回值是一个对象2.`document.getElementsByName(name)` 通过name属性来获取对象的,返回值是一个数组,与getElementById()方法类似,但他是查询的name元素,而不是id属性3.`document.getElementsByTagName()` 通过标签来获取元素的对象, 返回值是一个数组4.`document.getElementsByClassName()` 通过class类名来获取的对象,返回值是一个数组5.`document.querySelector()` css选择器,返回与该模式匹配的第一个元素,结果为一个元素;如果没找到匹配的元素,则返回null6.`document.querySelectorAll()` css选择器,返回与该模式匹配的所有元素,结果为一个类数组二、dom创建
二、dom操作1. 创建:新的标签(元素节点) = document.createElement("标签名")2. 删除:父节点.removeChild(子节点);3. 插入:insertBefore(新插入的节点,参照物节点) 往某个节点的前面插入一个新的节点4. 追加:appendChild(新的节点的名) 当前对象追加一个子节点
十、js操作BOM
什么是Bom?Bom是浏览器对象。它提供与浏览器的交互5大属性。
十一、事件
一、DOM事件三种级别
(1).DOM0级事件DOM0 级时间分两种,一是直接在标签内直接添加执行语句,二是定义执行函数。
(2).DOM2 级事件第一个参数:事件名称第二个参数:执行函数第三个参数:指定冒泡还是捕获,默认是false,冒泡。(3).DOM3 级事件同DOM2级一样,只不过添加了更多的事件类型,鼠标事件、键盘事件。DOM事件两种类型(1).事件类型分两种:事件捕获、事件冒泡事件捕获就是由外往内,从事件发生的顶点开始,逐级往下查找,一直到目标元素。事件冒泡就是由内往外,从具体的目标节点元素触发,逐级向上传递,直到根节点。
二、事件委托事件冒泡:就是事件从最深的节点开始,然后逐步向上传播事件。作用:提高性能:每一个函数都会占用内存空间,只需添加一个事件处理程序代理所有事件,所占用的内存空间更少;
三、封装一个通用的事件绑定函数需要点击每个a,来。弹出他们的内容<div id="div3"><a href="#">a1</a><br><a href="#">a2</a><br><a href="#">a3</a><br><a href="#">a4</a><br><button id='btn1'>加载更多...</button></div>
// 封装通用的事件绑定函数function bindEvent(elem, type, fn) {elem.addEventListener(type, fn) }
//获取父元素const fu = document.getElementById('div3')bindEvent(fu, 'click', function (event) {// console.log(event.target) // 获取触发的元素let target=event.targetevent.preventDefault() // 阻止默认行为//过滤符合条件的子元素,主要是过滤掉 加载更多 if(target.nodeName.toLowerCase()==="A"){alert(target.innerHTML;}})
十二、Ajax
1、原生Ajax的创建过程创建 XMLHttpRequest 对象;注册回调函数;设置连接信息;发送数据,与服务器开始交互;接受服务器返回数据。
2、Jsonp的原理JSONP(JSON with Padding)可用于解决主流浏览器的跨域数据访问的问题)。跟JSON没有关系。JSONP本质上是利用HTML元素的src属性都可以跨域的思路来解决的。
十三、存储
本地存储分为cookie、localStorage、sessionStorage,Cookie设计初衷是用来和服务器通讯,而不是本地存储,他只是被‘借用’到本地存储。Cookie有一些缺点:存储空间小,最大4k、http请求时需要发送到服务器,增加请求数据量、只能用 document.cookie=’…’ 来修改,太过简陋
十四、Es6
1、let、var、const区别(1).变量提升var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否则会报错。(2).重复声明var声明变量时,可以重复声明变量,const和let不能重复声明。(3).初始值设置在变量声明时,var 和 let。而const声明变量必须设置初始值。(4).块级作用域块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:内层变量可能覆盖外层变量用来计数的循环变量泄露为全局变量
2、es6解构赋值最常用的场景是:element-ui,vant-ui按需引入,请求接口返回数据,提取想要数据。常见的几种方式有1.默认值2.交换变量3.将剩余数组赋给一个变量当结构一个数组时,可以使用剩余模式,将数组剩余部分赋值给一个变量4.给新的变量名赋值可以从一个对象中提取变量并赋值给和对象属性名不同的新的变量名
3、箭头函数与普通函数的区别1、函数体内的 this 对象,就是定义时所在的作用域中的 this 值,而不是使用时所在的对象。this 相当于一个普通变量会向作用域链中查询结果,同时定义时所在对象也并不等于所在对象中的 this 值。2、不可以使用 arguments 对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。3、不可以使用 yield 命令,因此箭头函数不能用作 Generator 函数。4、不可以使用 new 命令,因为:没有自己的 this,无法调用 call,apply。没有 prototype 属性 ,而 new 命令在执行时需要将构造函数的 prototype 赋值给新的对象的 __proto__
4、class与class继承class:Class是面向对象的语法的一个实现。Class本质上类似一个模板,通过模板去构建一些东西。可以通过constructor去构建一些东西,构建的时候可以复制一些属性,一些方法。比如我们构建一个学生在这个模板,这个模板呢,可以传入名称、学号等属性,class继承:当我们有很多个class,这些class有一些共用的属性的时候,就可以抽离出来。比如说我们刚才声明的class Student(),还可以声明老师,老师和学生有一些共同点,比如都是人,人都会吃饭,学生可以学习、打招呼,老师可以教课。通过extends去做的里面通过super来执行父类的构造函数,也就是父类的构建过程。扩展或重写的方法
5、promise使用及实现1.传入一个promise的数组,返回一个新的promise,当所有给定的promise都被处理并最终以数组的形式呈现其结果时,新的promise也就被resolve了2.返回的顺序与传入promise的顺序一致,即使第一个promise需要很长的时间来resolve,但它仍然是结果数组中的第一个Promise是一个构造函数 是一种异步解决方案// promise接收一个函数作为参数// 该函数又接收两个函数作为参数// promise 有三个状态 pending表示进行中// resolve 是将promsie从进行中转化为成功的状态的方法(fulfill ed)// reject 是将promsie从进行中的状态转化为失败的状态的方法(rejected)// promise从进行中转化为成功或者失败时就立即结束了
6、async awaitasync 函数返回一个 Promise 对象,当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再接着执行函数体内后面的语句。await后面的语句会立即执行,返回promise时,由于考虑到异步操作,且下一行语句需要知道结果才能执行,所以返回的promise会等后面的同步语句执行完之后放入微队列中
7、generator函数
8、Es6中新的数据类型symbolJavaScript基本数据类型有6种:Undefined、Null、Boolean、String、Number、Object。ES6新增了一种数据类型:Symbol,表示独一无二的值,Symbol最大的用途是用来定义对象的唯一属性名。Symbol不是一个构造函数,如果用new Symbol会报错(Symbol是一个原始类型的值,不是对象)。Symbol值可以显式转为字符串,也可以转为布尔值,但是不能转为数值。
一、状态码
http状态码分类:100-199 提示信息 – 表示请求正在处理200-299 成功 – 表示请求正常处理完毕300-399 重定向 – 要完成请求必须进行更进一步的处理400-499 客户端错误 – 请求有语法错误或请求无法实现500-599 服务器端错误 – 服务器处理请求出错
常见的状态码有哪些?200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中;404:(客户端问题)请求的资源没有找到 400: 语义有误,当前请求无法被服务器理解。401: 当前请求需要用户验证 403: 服务器已经理解请求,但是拒绝执行它。500:(服务端问题)请求资源找到了,但服务器内部发生了不可预期的错误;301/302/303:(网站搬家了,跳转)重定向
二、当url输入到页面发生了什么
**大致过程是:**浏览器的地址栏输入URL并按下回车,查找当前的URL是否存在缓存,并比较缓存是否过期,DNS解析URL对应的IP,根据IP建立TCP连接(三次握手),HTTP发起请求,服务器处理请求,浏览器接收HTTP响应,渲染页面,构建DOM树,关闭TCP连接(四次挥手)。
三、跨域
什么是跨域跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域
JSONP浏览器的script、img、iframe标签是不受同源策略限制的 ,所以通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的callback函数,并把把我们需要的json数据作为参数传入。在服务器端,当req.params参数中带有callback属性时,则把数据作为callback的参数执行,并拼接成一个字符串后返回。
- 优点:兼容性好,在很古老的浏览器中也可以用,简单易用,支持浏览器与服务器双向通信。
- 缺点:只支持GET请求,且只支持跨域HTTP请求这种情况(不支持HTTPS)在vue 中主要是通过vue 脚手架中的vue.config.js 文件来配置的,通过在devServer中的proxy来配置跨域的前缀
四、Git
新增文件的命令:git add file或者git add .提交文件的命令:git commit –m或者git commit –a查看工作区状况:git status –s拉取合并远程分支的操作:git fetch/git merge或者git pull查看提交记录命令:git reflogmaster分支:最为稳定功能比较完整的随时可发布的代码,即代码开发完成,经过测试,没有明显的bug,才能合并到 master 中。请注意永远不要在 master 分支上直接开发和提交代码,以确保 master 上的代码一直可用;develop分支;用作平时开发的主分支,并一直存在,永远是功能最新最全的分支,包含所有要发布 到下一个 release 的代码,主要用于合并其他分支,比如 feature 分支; 如果修改代码,新建 feature 分支修改完再合并到 develop 分支。所有的 feature、release 分支都是从 develop 分支上拉的。feature分支;这个分支主要是用来开发新的功能,一旦开发完成,通过测试没问题(这个测试,测试新功能没问题),我们合并回develop 分支进入下一个 releaserelease分支;用于发布准备的专门分支。当开发进行到一定程度,或者说快到了既定的发布日,可以发布时,建立一个 release 分支并指定版本号(可以在 finish 的时候添加)。开发人员可以对 release 分支上的代码进行集中测试和修改bug。(这个测试,测试新功能与已有的功能是否有冲突,兼容性)全部完成经过测试没有问题后,将 release 分支上的代码合并到 master 分支和 develop 分支hotfix分支;用于修复线上代码的bug。**从 master 分支上拉。**完成 hotfix 后,打上 tag 我们合并回 master 和 develop 分支。
GitFlow主要工作流程
五、http和https的区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
六、三次握手和四次挥手
三次握手:1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。通俗的说法-上面三条的意思client(服务器)----Server(客户端)1)Client:嘿,李四,是我,听到了吗?2)Server:我听到了,你能听到我的吗?3)Client:好的,我们互相都能听到对方的话,我们的通信可以开始了。
四次挥手:1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手通俗的说法-上面四条的意思client(服务器)----Server(客户端)1)Client:我所有东西都说完了2)Server:我已经全部听到了,但是等等我,我还没说完3)Server:好了,我已经说完了4)Client:好的,那我们的通信结束l
七、使用基于token的登录流程
1、客户端使用用户名跟密码请求登录2、服务端收到请求,去验证用户名与密码3、验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端4、客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里5、客户端每次向服务端请求资源的时候需要带着服务端签发的 Token6、服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
八、Get和post
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET在浏览器回退时是无害的,而POST会再次提交请求。
**Get****和post****的选择:**1.私密性的信息请求使用post(如注册、登陆)。2.查询信息使用get。
九、web安全及防护
(1)XSS攻击指的是攻击者往Web页面里插入恶意 html标签或者javascript代码用来窃取cookie中的用户信息解决:对一些输入的字符进行过滤,尽量采用post表单提交的方式
(2)CSRF攻击是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法解决:通过验证码的方式解决
(3)SQL注入攻击就是通过吧SQL命令插入到Web表单递交或输入域名,最终达到欺骗服务器执行恶意的SQL命令。解决:表单输入时通过正则表达式将一些特殊字符进行转换
十、html和XML
HTML:超文本标记语言
XML:可扩展标记语言
1、语法上HTML:语法要求不是很严格,例如:不严格区分大小写,可自动过滤空格,可以不适用引号等。XML:与之相反。
2、标记不同html使用固有的标记;而xml没有固有的标记。Html标签是预定义的;XML标签是免费的、自定义的、可扩展的。
3、作用不同html是用来显示数据的;xml是用来描述数据、存放数据的,所以可以作为持久化的介质。Html将数据和显示结合在一起,在页面中把这数据显示出来;xml则将数据和显示分开。 XML被设计用来描述数据,其焦点是数据的内容。HTML被设计用来显示数据,其焦点是数据的外观。
Vue相关
一、 vue双向数据绑定
VUE实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。
二、 vue虚拟dom,diff算法
虚拟dom
1、**想要理解虚拟****dom****首先要知道什么是虚拟****dom****?**虚拟dom可以简单的用一句话概括,就是用普通的js对象来描述DOM结构,因为不是真实DOM,所以称之为虚拟DOM。
2、为什么要用虚拟DOM来描述真实的DOM呢?创建真实DOM成本比较高,如果用 js对象来描述一个dom节点,成本比较低,另外我们在频繁操作dom是一种比较大的开销。所以建议用虚拟dom来描述真实dom。diff算法diff算法就是进行虚拟节点对比,并返回一个patch对象,用来存储两个节点不同的地方,最后用patch记录的消息去局部更新Dom。
三、 组件通讯
1.****父传子:**在父组件的子组件标签上绑定一个属性,挂载要传输的变量。在子组件中通过props来接受数据,props可以是数组也可以是对象,接受的数据可以直接使用 props:["属性名"] props:{属性名:数据类型}
2.****子传父:**在父组件的子组件标签上通过绑定自定义事件,接受子组件传递过来的事件。子组件通过$emit触发父组件上的自定义事件,发送参数.
3.****兄弟组件传值:**通过main.js初始化一个全局的$bus,在发送事件的一方通过$bus.$emit(“事件名”,传递的参数信息)发送,在接收事件的一方通过$bus.$on("事件名",参数)接收传递的事件
四、 Vuex
vuex :是一个专为vue.js开发的状态管理器,采用集中式存储的所有组件状态,通过vuex我们可以解决组件之间数据共享的问题,后期也方便我们管理以及维护场景:多个组件共享数据或者是跨组件传递数据时
有五种,分别是State , Getter , Mutation , Action , Modules
1. state:vuex的基本数据,用来存储变量
2. getters:从基本数据(state)派生的数据,相当于state的计算属性
3. mutation:提交更新数据的方法,必须是同步的(如果需要异步使用action)。每个mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。
4. action:和mutation的功能大致相同,不同之处在于 ==》1. Action 提交的是 mutation,而不是直接变更状态。 2. Action 可以包含任意异步操作。
5. modules:模块化vuex,可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰,方便管理。
6.高级用法-辅助函数(语法糖)1. 有那几个辅助函数(4大金刚)mapState,mapActions,mapMutations,mapGetters2. 辅助函数可以把vuex中的数据和方法映射到vue组件中。达到简化操作的目的3. 如何使用:Import { mapActions, mapGetters, mapMutations, mapState } from 'vuex'
五、 自定义指令,自定义过滤器
自定义指令:vue中提供了丰富的内置指令,如v-if,v-bind,v-on…,除此之外我们还可以通过全局的自定义指令Vue.directive({})或者局部的自定义指令directives:{}来定义指令
全局指令:在main.js中使用Vue.directive()函数自定义一个v-focus全局指令在其它组件中引入v-focus指令后,表单会自动获取焦点
局部指令:局部指令定义使用directives,我们在某个组件中export default {}中,定义一个设置颜色的指令v-color
钩子函数:自定义指令的生命周期,有5个事件钩子,可以设置指令在某一个事件发生时的具体行为:1、bind(el,binding): 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。2.inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。3、update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新。4、componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。5、unbind: 只调用一次, 指令与元素解绑时调用。
自定义过滤器:过滤器通常用来对即将显示的数据进行进一步处理,如格式化时间戳,内容加《》…,在模板中使用通过“管道符( | )”方式引用
全局过滤器:在main.js中使用Vue.filter()函数自动定义一个capital全局指令,将字母全部转为大写定义一个组件,然后引入capital过滤器,将msg的值hello格式化为HELLO
局部过滤器:使用filters:{},与methods,data同级
六、 vue-router(路由原理?路由守卫?传参)
1、路由原理
通过改变 URL,在不重新请求页面的情况下,更新页面视图。
路由原理分为两种模式:hash模式:在浏览器中符号的“#”,以及#后面的字符称之为hash,用window.location.hashhistory模式:history采用HTML5的新特性;且提供了两个新方法:pushState(),
路由守卫:全局守卫:router.beforeEach((to,from,next)=>{}) 进入之前触发router.afterEach((to,from)=>{}) 进入之后触发(后置钩子函数,不需要next)组件守卫:beforeRouteEnter((to,from,next)=>0{}) 进入路由前调用beforeRouteUpdate((to,from,next)=>{}) 该组件被复用时调用beforeRouteLeave((to,from,next)=>{})导航离开该组件的对应路由时调用单个守卫:beforeEnter((to,from,next)=>{})
传参:分为三种: 分别是query,params,动态路由传参 接收: 通过query方式传递过来的参数一般是通过this.$route.query接收 通过params方式传递过来的参数一般是通过this.$route.params接收 通过动态路由传参方式传递过来的参数一般是通过this.$route.params接收
七、 声明周期(那几个?每一个生命周期的特点,可以做什么)
生命周期让我们在控制整个vue时更容易形成更好的逻辑,可以分为三个阶段,挂载阶段,更新阶段,销毁阶段
分别有:创建前:beforeCreate() 只有一些实例本身的事件和生命周期函数创建后:Created() 是最早使用data和methods中数据的钩子函数挂载前:beforeMount() 指令已经解析完毕,内存中已经生成dom树挂载后:Mounted() dom渲染完毕页面和内存的数据已经同步更新前:beforeUptate() 当data的数据发生改变会执行这个钩子,内存中的数据是新的,页面是旧的更新后:Updated() 内存和页面都是新的销毁前:beforeDestroy() 即将销毁data和methods中的数据此时还是可以使用的,可以做一些释放内存的操作销毁后:Destroyed() 已经销毁完毕
八、 自定义组件
在vue中开发,都是用的组件化的思想开发的,一般在都会在搭建项目的时候,都会先建立组件的模板,把架子搭起来。也就是在组件中定义好`<template>`视图层,`<script>`逻辑层,`<style>`css样式层。
在vue中使用组件封装的方式可以使我们的开发效率提高,能够把页面抽象成相对独立的模块。
九、 常见的指令,修饰符
1、常见的指令在vue中提供了一些对于页面 + 数据的更为方便的输出,这些操作就叫做指令,指令中封装了一些DOM行为, 结合属性作为一个暗号, 暗号有对应的值,根据不同的值,框架会进行相关DOM操作的绑定
v-for(循环)、v-on(绑定事件)、v-if(判断)、v-else(判断是否成功)、v-show(显示隐藏)、v-bind(属性名)、v-model(双向绑定)、
2、修饰符在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理。在Vue中事件修饰符常用
•.stop :阻止事件冒泡:由内而外,通俗的将就是阻止事件将向上级DOM元素传递
•.capture :事件捕获:由外而内,在捕获阶段,事件从window开始,之后是document对象,一直到触发事件的元素
•.self :当事件作用在元素本身时才会触发
•.once :只触发一次
•.prevent: 阻止默认事件
•·passive:告诉浏览器你不想阻止事件的默认行为
•·trim:自动过滤用户输入的首尾空格
语法:@事件名.修饰符=“方法名”
十、 Vue2和vue3的区别
1.vue3新特性:1.数据响应重新实现(ES6的proxy代替Es5的Object.defineProperty)2.源码使用ts重写,更好的类型推导3.虚拟DOM新算法(更快,更小)4.提供了composition api,为更好的逻辑复用与代码组织5.自定义渲染器(app、小程序、游戏开发)6.Fragment,模板可以有多个根元素
2.vue2 vue3响应原理对比1.vue2使用Object.defineProperty方法实现响应式数据2.缺点:无法检测到对象属性的动态添加和删除无法检测到数组的下标和length属性的变更3.解决方案:vue2提供Vue.$set动态给对象添加属性Vue.$delete动态删除对象属性重写数组的方法,检测数组变更
1、Vue 3 的 Template 支持多个根标签,Vue 2 不支持
2、Vue 3 有 createApp(),而 Vue 2 的是 new Vue()
createApp(组件),new Vue({template, render})
十一、 Keep-alive
keep-alive是vue2.0加入的一个特性, 能缓存某个组件,或者某个路由。缓存的好处:1、节省性能消耗,避免一个组件频繁重新渲染,节省开支2、保存用户状态,比如说:我们在填写收货地址的页面,需要跳转到另一个页面通过定位选择地址信息再返回继续填写,这时候需要缓存收货地址页面,避免跳转页面导致用户数据丢失。
十二、 多环境变量
首先是通过在根目录下创建.env.*(配置文件)文件,development 本地开发环境配置、test测试环境配置、production 正式环境配置。我们可以在封装的接口api文件夹中定义baseUrl文件,来区分不同环境下对应的不同的基本路径。
十三、 对axios封装(url统一管理、axios请求拦截、响应拦截、函数封装)
首先要安装axios,一般我会在项目的src目录中,新建一个network文件夹,作为我们的网络请求模块,然后在里面新建一个http.js和一个api.js文件和一个reques.js。http.js文件用来封装我们的axios,api.js用来统一管理我们的接口url,
在request.js中添加请求拦截和响应拦截。在请求拦截中,会给请求头添加token字段,还有loading动画的开启。在响应拦截中,可以做一些loading动画的关闭,还有可以根据后端返回的状态码,做一些检验token是否有效或者过期的操作。接着就是做一些axios进行的api接口的封装,这里我用到了async,await封装请求接口函数,这样可以将异步操作同步化操作,代码更加友好,避免回调地域的出现。
十四、 Element-ui和vant-ui按需引入
首先安装按需引入的插件,在babel.config.js中添加按需引入的配置,创建一个plugin文件夹,定义一个js文件用来存放按需引入的代码,之后在建好的js文件中首先导入vue,再导入需要的vant-ui插件,通过vue.use()全局注入。
修改样式可以用样式穿透 /deep/
十五、 Sass配置
安装node-sass sass-loader
使用lang=”scss”
十六、 Rem、vm/vh设置
1. 通过安装cnpm install lib-flexible postcss-pxtorem --save-dev
2. Main.js 中导入插件
3. 根目录创建.postcssrc.js配置
十八、 Slot插槽
插槽就是父组件往子组件中插入一些内容。
有三种方式,默认插槽,具名插槽,作用域插槽1.默认插槽就是把父组件中的数据,显示在子组件中,子组件通过一个slot插槽标签显示父组件中的数据2.具名插槽是在父组件中通过slot属性,给插槽命名,在子组件中通过slot标签,根据定义好的名字填充到对应的位置。3.作用域插槽是带数据的插槽,子组件提供给父组件的参数,父组件根据子组件传过来的插槽数据来进行不同的展现和填充内容。在标签中通过slot-scope来接受数据。
-十九、 为什么v-for使用key
key是给每一个vnode的唯一id,也是diff的一种优化策略,可以根据key,更7准确, 更快的找到对应的vnode节点
二十、 为什么data是一个函数
1.根据实例对象data可以是对象也可以是函数,不会产生数据污染情况。
如果不是一个函数,每个组件实例的data都是同一个引用数据,当该组件作为公共组件共享使用,一个地方的data更改,所有的data一起改变,如果data是一个函数,每个实例的data都在闭包中,就不会各自影响。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-2757.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
房地产企业记账
...

java学习之运算符及运算符优先级
一:算术运算符 正号;加;连接运算-负号;减*乘/除(取商)%取余自增--自减public class test3 {public static void main(String[] args) {int a5,b4;System.out.println("a is"a); //正号System.out.println…...

我们究竟还要学习哪些Android知识?赶紧收藏!
前言 今年是转折的一年,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想提前准备刷下题。接下来分享…...

来看看移动端小程序技术的前世今生!完整版开放下载
前言 本文想分享的是如何准备阿里面试的以及面试过程的所想所得,希望能帮到你。 首先,可能要让你们失望的是,这篇文章不会有大篇幅的面试题答案。如果想要看这方面的内容,可以看我之前的文章。感谢关注 面试官的问题࿱…...

Vue.js学习日记01
第一个实例 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>Vue 测试实例 - 菜鸟教程(runoob.com)</title> <script src"https://unpkg.com/vue/dist/vue.js"></script> </head> &l…...

Java 集合深入理解 (十二) :HashMap之扩容 功能
Java 集合深入理解 (十一) :哈希表之HashMap原理 前言 上一篇我做了哈希表之HashMap原理的分析包括,整个属性 及构造方法 put方法的整体分析,也有了个大概,这篇文章进一步解析 扩容 红黑树转换 删除的原理…...

微信代运营公司都有哪方面的技术,为企业提供服务
在互联网的发展,一些微信代运营公司不断的涌出,这也是市场的需求,因为现在注册微信公众号的企业、机构、实体越来越多,微信公众号注册是简单,但运营对于企业、机构、实体来说是有一定的难处,这些注册者有两…...

KVM教程(2)KVM虚拟机快照创建与管理
KVM的快照功能和VMware一样,可以实现热备和回滚的功能,在进行快照之前需要确保磁盘格式必须是QCOW2,因为RAW格式是不支持快照的。 1、在宿主机使用qemu-img info命令查看磁盘格式 qemu-img info server1.qcow2 2、在宿主机使用virsh snaps…...

每日词根——muni/mun(责任、服务、功能、恩赐、礼物)
mun(muni) duty,function,gift,service 来自拉丁语的mun 意为duty,function,gift,service。 (*拉丁文munus(service)——英文字根字典) 1.munificent (使成为礼物的mun (gift,service) i fic (make,do) ent (having the quality of) ad…...

C++ 使用CFileDialog选择多个文件
void CFileDemoDlg::OnBnClickedButton1() {CFileDialog log(TRUE, "文件", "*.*", OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, "File(*.*)|*.*||", NULL);if (log.DoModal()IDOK){POSITION pos log.GetStartPosition();while (pos!NULL){CStri…...

联想(Lenovo) G510AM 15.6英寸笔记本电脑
G系列全面支持Windows 8 简体中文版,在秉承了坚实耐用、稳定可靠的产品指纹的同时,金属版本全金属C面令笔记本更加安全可靠。搭载独立显卡在游戏和多媒体方面较上一代显卡最高可实现两倍性能提升,提供更加强大的笔记本体验。杜比环绕立体声音效,轻松拥有影院级高品质享受;…...

金三银四大厂面经总结,java怎么快速创建构造方法
前言 Java作为最全面的语言,国内开发者也是最多的,Java综合起来各方面都不错,在大部分场景下是一种稳健的技术选择。加上近年来安卓的推动,目前也是最流行的一种语言。 现在Java的就业市场看起来还是挺大的,而且工资…...

Dubbo服务注册原理
文章目录1注册步骤2 猜想:3源码分析3.1 DubboComponentScan3.1.1 图片总结3.2 DubboBootstrapApplicationListener.java1注册步骤 使用注解DubboService或Service扫描注解DubboComponentScan 2 猜想: (1)扫描注解 (…...

郝龙山
...

2021-5-20第一篇博客
今天的总结 天杀的男朋友! 还是学习不负我ATM32的ADC 为了完成任务,在原来的基础上优化ADC驱动代码和配置文件。 我做了哪些工作: 首先,八一八正点原子资源库有没有相关代码,发现还真有,而且还有详细的配置说明“…...

格式化输出JSON字符串的两种方式
一.使用阿里的FastJson 1.项目的pom.xml依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.58</version> </dependency> 2.Java示例代码 (1) 导入的包: com.alibaba.fastj…...

我的世界python——绘制时钟(minecraftstuff绘制圆和直线)
前言 这次我们尝试在mc中绘制一个时钟,能按照外界的时间进行移动。 主要使用的是我的世界的python api:mcpi,以及minecraftstuff包(主要是绘制一些形状)。 如果对这些有问题,请看这里。 实现 先贴一下代…...

Vue学习笔记 - 常用的指令
本篇文章用于介绍Vue中常用的指令 目录一、指令定义二、常用指令1.v-cloak2.v-bind:3.v-on4.v-if和v-show一、指令定义 1.指令里除了放变量,还可以放表达式 2.指令都是v-开头的 二、常用指令 1.v-cloak 1.定义:用于解决小型简单的vue项目的闪烁问题…...

python9*9乘法口诀
python9*9乘法口诀 i 1 while i < 9: j 1 while j < i: print("%d*%d%d"%(i,j,i*j), end" “) j 1 print(”\n") i 1...

使用 Github Actions 对 Serverless Framework 进行持续化集成
前言 不熟悉 jamstack 的朋友可以先看一下这篇文章 什么是jamstack 笔者本来想写一篇 Jamstack 实战,技术上主要是以 SSG COS CDN Serverless Framework GitHub Actions 来实现的 然而发现内容有点多,主要分为以下几块: 前端的框架预渲染和静态生成对象存储源…...

标签的状态机
在EPC C1G2协议标准中,标签的行为可以用有限状态机来描述 就绪态(ready state)标签在通电前所处的状态。标签处于就绪态时,不参加询问过程。一个询问过程由阅读器发出的查询命令开始,到下一个查询命令终结。阅读器通过…...

腾讯游戏盒子2013官网页面html代码
腾讯游戏盒子是由腾讯自主研发的一款专为网页游戏用户定制的网页游戏辅助工具,具有智能加速、防掉线、帐号多开、全屏等特点。腾讯游戏盒子官网页面也非常简单明了,这也是目前很多简单介绍型网站所采用的风格。页面下半部分的圆形图标使用了 CSS3 transform 旋转属性,当鼠标…...

NFC的作用
NFC(近场通信)是一种无线数据传输方法,可以检测并使技术靠近,无需互联网连接即可进行通信。它简单,快速并且可以自动运行,几乎是每部手机中的一项功能。 NFC 是在 21 世纪初引入的,它使用特定的…...

Mr.Xiong使用jQuery实现回到顶部的效果
使用jQuery实现回到顶部的效果 首先我们还是先来给页面先布局:我们只需要先给一个div标签,然后再div标签中再放一个img标签,img标签里的 src:的入境就导入图片的入境就好了,这张图片是用来做我们的背景图,接…...

WebSocket前端代码
<!DOCTYPE html> <html><head><meta charset"utf-8"><title>WebSocket</title><script type"text/javascript" src"js/jquery.min.js"></script></head><body><div id"ma...

花之语第十期:木棉花
一、初识 广州市市花;也叫“英雄花”,因为它开得红艳但又不媚俗,它的壮硕的躯干,顶天立地的姿态,英雄般的壮观,花瓣的颜色红得犹如壮士的风骨,色彩就像英雄的鲜血染红了树梢;花期为 …...

Nginx:启动、关闭
...

Python爬虫QQ音乐数据采取,公开数据获取案例之一
工具准备 数据来源: QQ音乐 开发环境:win10、python3.7 开发工具:pycharm、Chrome 效果展示 项目思路解析 搜索你需要的歌名或者歌曲 抓取对应的数据包 提取json数据里的歌曲名字,歌曲的mid,歌手名字 for i in range(1, 10):url…...

Java架构系列让你在大厂的征途上运筹帷幄:高并发+高性能+高可用
前言 很多人做java开发2至3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理。公司的工作节奏又比较快,难有机会学习…...

keras训练一个简单的模型
import numpy as np np.random.seed(1337) from keras.models import Sequential from keras.layers import Dense import matplotlib.pyplot as pltXnp.linspace(-1,1,200) np.random.shuffle(X) Y0.5 * X 2 np.random.normal(0,0.05,(200,)) plt.scatter(X,Y) plt.show()X_t...

python3批量处理文件夹下 exel文档并插入MySQL数据库
文件夹: exel文档格式: python用到的模块: import pymysql import xlrd import os 代码: def readAll(self):folderFile rD:/院校排名/院校排名/for root,dirs,files in os.walk(folderFile):for f in files:exelFile fold…...

浅谈设计模式(三)
前言 之前详细介绍了几种常用的设计模式,最后总结一下附上所有设计模式的类图以及六大设计原则 一、创建型 1.Factory Method(工厂方法) 定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法…...

dubbo:问题记录
一、No application config found or it’s not a valid config! Please add <dubbo:application name"…" /> to your spring config. 明明配置了dubbo:application name,但是启动provider的时候,还是提示这个错误。 错误原因…...

多线程的内容
多线程 程序 一种编程语言写的指令集合体 进程一个程序的运行就是一种进程 线程是进程里的一个执行单元 一个进程中包含着多个线程 创建多线程 继承thread类 重写run方法 运行start方法 public class McxThread extends Thread {Overridepublic void run() {for (int i0;i&…...

MySQL sql_mode修改不生效的原因及解决
前言 近期多次聊到sql_mode的话题,也是多次遇到相关问题,今天就趁热打铁,再给大家带来一个sql_mode的案例分享。 场景模拟 基于业务敏感性的考虑,下面涉及的表、存储过程等均非真实数据,但并不影响排查过程。 &…...

4种激活函数
4种激活函数 1,sigmoid函数 特点:1,输出值落于[0,1]连续区间; 2,输入值从横坐标左侧移动到右侧的过程中,其输出值呈现从平缓到加速再到平缓的特点; 3,sigmoid函数的导数…...

Linux学习-1
目录 Linux发行版,不同发行版的联系与区别 Linux发行版 不同发行版的联系与区别 CentOS-8安装详解 环境准备 开始安装 实现历史命令记录执行命令时间 Linux哲学思想 Linux常用命令使用格式 Linux发行版系统目录名称命名规则及用途 文件系统的目录结构 常…...

【路径规划】改进的蚁群算法机器人避障路径规划【含Matlab源码 126期】
一、简介 1 蚁群算法(ant colony algorithm,ACA)起源和发展历程 Marco Dorigo等人在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称为信息素的生物激素交流觅食信息从而能快速的找到目标,于是在1991年在其博士论文中首次系统地提…...

mediapipe教程2:linux桌面程序编译与运行
一、前言 mediapipe教程1中写了python相关代码,但是因为我最终是安卓系统,不能用python去运行,因此需要继续研究mediapipe; 但是我对安卓系统也一点都没接触过,因此这一个博客主要熟悉mediapipe,研究如何…...

【漏洞复现】Discuz-x3.1 插件漏洞
Discuz-x3.1 插件漏洞 文章目录Discuz-x3.1 插件漏洞一、漏洞背景二、信息收集三、漏洞利用一、漏洞背景 作为国内最大的社区软件及服务提供商,Comsenz旗下的 Discuz! 开发组具有丰富的 web应用程序设计经验,尤其在论坛产品及相关领域,经过长…...

唯品会Gucci腰带被得物、中检鉴定为假后续:消费者被迫法院维权
5月27日消息,对曹女士诉唯品会“售假Gucci腰带”一案,广州市互联网法院认为,唯品会提供的案涉商品来源清晰,因此判决驳回请求。至此,唯品会“售假Gucci腰带”从4月7日被爆出至今,已将近2个月。网友表示&…...

弘辽科技:抖音小店功效虚假宣传行为有哪些?
抖音平台一直打击虚假宣传的行为,其中就包括“功效虚假宣传”,指创作者进行商品分享时,对商品功效进行没有依据、虚假夸大描述,引人误解的营销推广行为。常见于化妆品(美妆)、食品、个护、家纺配饰等品类商品。各位商家和创作者在…...

Codeforces Round #716 (Div. 2)题解+补题
A. Perfectly Imperfect Array: 题目链接:https://codeforces.ml/contest/1514/problem/A 题目大意: 有t组数据,每组数据有n个数,如果这n个数中存在一个数不为完全平方数,则输出YES,否则就输…...

2021-05-26
旁路电容的作用 (1)使输入电压均匀变化,减小噪声对后级的影响 (2)进行储能,当外界信号发生变化过快时,及时进行电压补偿 去耦电容的作用 (1)去耦电容和旁路电容作用差不多…...

[华为机试]素数伴侣 【匈牙利算法:最大二分匹配】
题目链接 百度百科 二分图:将节点分成两组,A和B,边都是横跨在两组之间的,组内是没有边的相连的 判断方法,染色法 匹配:边的集合,任意两个边都没有公共的节点 最大匹配:找出匹配的边集合最大…...

关于树和回溯题目汇总
序言 关于树和回溯题目汇总,好好干饭,好好努力,好好加油哦! 题目一:二叉树返回所有节点值 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点…...

街机模拟器 WinKawaks 及街机 ROM 下载
能看到本文的,是缘分;能知道 WinKawaks 是什么的,我就大概知道了你的年龄。 但不得不说,WinKawaks 是 Windows 平台上一款不错的街机模拟器,其官方网址提供了模拟器下载及对 CPS1 CPS2 NeoGeo 街机 ROM 一网打尽的下载…...

C++对象的内存布局
转载自CoolShell: https://coolshell.cn/articles/12176.html 注: 1. 原文包含实验原理、实验代码与结论;本文只包含实验原理与结论,除去实验代码,目的是更为精简。 2. 本文对原文的行文结构和文字都有较大幅度的更改与删减。 …...

android自学 app天气预报系统
https://www.bilibili.com/video/BV1QE411i7oQ?p2&spm_id_frompageDriver 比较难的是pagerAdapter和Fragment的使用,而且百度的天气地址已经不顶用了,作者用的是juhe的天气地址 如果要对某些展示采用统一风格,可参考 <TextViewandroi…...

jQuery 操作DOM(三)
标签(空格分隔): 前端学习 创建节点 $(a).html(<h1>helloworld</h1>)操作节点 操作方法用法描述append$(#d1).append(h1)[h1是创建的节点]在id为d1的元素中后插入节点appendToh1.appendTo(#d1)将创建的 h1节点插入d1元素prepen…...

Linux Git —— GitLab 忘记密码如何操作
在我们使用GitLab时难免会有忘记密码的时候,那么忘记密码该如何操作呢? 在gitlab web登录窗口,如果密码忘记了登录不进入,可以先尝试点击登录框下方的Forgot your password 来通过邮箱的方式找回,如果邮箱无法找回&am…...

中间件学习
中间件 一个网站源码的执行是无法直接在服务上执行的,需要一个“中间软件”来协调源码和服务器之间的关系,让服务器能够间接的执行源码。 中间件是服务器上负责解析http请求的一组应用程序,负责接收并解析http请求数据包,在服务器…...

【虹科】RTaW-Pegase应用案例 | 构建一个可预测QoS的TSN网络架构
1.设计下一代面向服务的E/E架构 当今汽车上多达数以百计的ECU(电子控制单元),MCU(微控制处理器单元)及其上面运行着的大量的嵌入式软件代码,以及复杂的CAN、LIN、FlexRay等整车通讯网络决定了汽车不同于其…...

2021-05-16
●数组的基本概念及作用 ●数组的创建 ●数组的访问与迭代 ●数组排序 ●二维数组 数组的基本概念及作用 • 数组是相同数据类型元素的集合 • 数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型, 也可以存储引用数据类型。数组的创建 ●数组…...

WPF快速读存图片
//异步方法 private void GetText(object ex) { //Imge_ShowArea.Dispatcher.Invoke(new Action(delegate//begainInvoke好用 //{ FileSystemEventArgs e (FileSystemEventArgs)ex; BitmapImage imag ne…...

水布垭水电站溢洪道闸门电气控制系统改造项目顺利验收
近日,由微特负责的水布垭电厂溢洪道闸门电气控制系统改造项目顺利完工并通过客户验收,为汛期的到来提供了可靠的保障。 水布垭水电站坝址位于清江中游的巴东县水布垭镇,上距恩施117km,下距隔河岩92km, 距清江入长江口153km&#…...

使用glog记录程序崩溃的地方
在程序中添加 #include <glog/logging.h>void SignalHandler(const char* data, int size) {std::ofstream fs("../log/error.log",std::ios::app);std::string str std::string(data,size);fs << str;fs.close();LOG(INFO) << str; }在int main…...

一种新型UUV半实物仿真系统ETest设计与实现
设备组成 Etest_CPS系统主要由硬件部分与软件部分组成。硬件部分由PCI机箱、PCI控制器以及各种PCI接口板卡组成。软件部分由测试设计软件模块、测试执行服务软件模块、测试执行客户端软件模块、设备资源管理软件模块等主要软件模块以及曲线数据生成、CRC插件生成与诊断、测试数…...

分享一些行业经验,专题解析
前言 之前老是看着搞Java的朋友炫耀他的核心知识点笔记,真的,我内心毫无波澜,只有一点点酸 其实Android开发也有很多知识点,我一直以来就想要一份Android核心知识点笔记来帮助自己查漏补缺,后来想想,近两…...

JSP学习总结
JSP简介 JSP(Java Server Pages)一种Java servlet,主要实现Java web应用程序的用户界面部分。标签通常以<%开头 以%>结束。 JSP是一种Java servlet,主要实现Java web应用程序的用户界面部分,结合HTML、XML元素来编写。 J…...

我们究竟还要学习哪些Android知识?赶紧收藏!
前言 今年是转折的一年,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想提前准备刷下题。接下来分享…...

MMSegmentation-Docs-Tutorial 4: Customize Models
MMSegmentation-Docs-Tutorial 4: Customize Models 源文档 https://mmsegmentation.readthedocs.io/en/latest/tutorials/customize_models.html 1 Customize optimizer 假设你想要添加一个名为MyOptimizer的优化器,该优化器有参数a、b和c。首先需要在文件中实现…...

第二讲:基本飞行姿态
四旋翼在其四个轴臂上四个桨的高速转动作用下,会受到四个桨的拉力,拉力方向与机身垂直,当四个桨产生的拉力总和大于机身重力时,飞机处于上升状态;当总拉力小于机身重力时,飞机处于下降状态;当总…...

【内网学习笔记】8、powercat 的使用
1、下载安装 powercat powercat 可以视为 nc 的 powershell 版本,因此也可以和 nc 进行连接。 powercat 可在 github 进行下载,项目地址为:https://github.com/besimorhino/powercat 下载下来 powercat.ps1 文件后,直接导入即可…...

[HDU2520]我是菜鸟,我怕谁(每日一题5.30)
题目链接:Problem - 2520 (hdu.edu.cn) 乍一看这个题,发现不就是匀加速直线运动么,于是写出了如下的代码: #include <iostream>using namespace std;int d(int t);int main() {int T;cin >> T;while(T--){int t;cin …...

个性化个人主页html5模板
介绍: 个性化个人主页html5模板 网盘下载地址: http://kekewl.net/tARDuX5n02U0 图片:...

倒计时10天!不填这个信息,你的货物将无法入库!
近日,亚马逊再次通知卖家:“2021年6月11日之前:您必须在负责人控制面板中填报 CE 标志商品的欧盟负责人,否则FBA入库货件将无法进入欧盟/欧洲经济区。” 从现在算起,就只剩下10天时间了!因为是欧盟颁布的法…...

NPDP资格认证机构为什么广受市场欢迎
NPDP资格认证又称为产品经理国际资格认证,通过认证可以取得非常专业的资格证书。近年来不断有考生为了通过这一认证而进入一些深受欢迎的NPDP资格认证培训机构学习。那么,这些NPDP资格认证机构为什么会如此受市场的欢迎? 一、证书本身的含金…...

推荐系统之局部敏感哈希(LSH)
推荐系统之局部敏感哈希(LSH) 前言 局部敏感哈希的基本思想:是希望让相邻的点落入同一个“桶”,这样在进行最近邻搜索时,我们仅需要在一个桶内,或相邻几个桶内的元素中进行搜索即可。如果保持每个桶中的元…...

3年以上测试工程师,你的出路在哪里?
说起软件测试,很多人看好这个行业,觉得钱多事少加班少。 但我周围很多工作3年的测试小伙伴都很焦虑: 明明是各个公司必备技术岗,却处于业务边缘。明明是个技术岗位,每天只是“点点点”,能力上不去&#x…...

带你一起探究Android事件分发机制,使用指南
导语 2020年是转折的一年,2021年算是收获的一年,趁着金三银四开始找工作。先分享一下offer的情况 阿里高德(offer)爱奇艺(offer)腾讯视频(offer)小米(被拒)今日头条(被拒) 在面试的过程中我深深的感受到,对于一个优秀的安卓开发来说&#…...

Xshell 连接不上Linux Centos 7的解决方法之设置静态IP
前序 最近在开发项目,需要在服务器部署数据库、ftp文件管理等相关内容时,为了方便操作,使用Xshell会话管理工具进行服务器操作。出现连不上服务器网络的问题,就所遇问题进行学习解决方案及总结记录。 配置虚拟机网络 1.在虚拟机…...

互联网大佬“退休”轶事:马云摸着石头过河,有一人则笑到最后!
人们习惯靠趋势预测未来,可事关人性的观察,变化的可能性大都写在历史里。 已故的李敖先生,本世纪初,在中国三座最高学府留下了三场“刀尖上舔血”的演讲。谈及未来,他丢出一句话:“形势大好,人…...

来自天堂的连枷
来自天堂的连枷主要内容 《来自天堂的连枷》讲述的是:一个农夫将角长得越来越大的两头牛卖给屠户,他们商定的支付方式是,农夫给屠夫一配克油菜籽,然后由屠夫点数,一粒油菜籽付一块金币。途中农夫掉了一粒油菜籽&#…...

Dicom Resample and Save as nii
""" convert dcm 2 nii 1. read dicom series 2. clarify and sort series 3. skip scout series 4. convert series to 3d 5. resample and save as nii## usage ## --------------------------------- -- parent(root)|-- Folder1(subdir)| || -- DICO...

Chia FullNode RPC 奇亚全节点
获取区块链状态 请求地址: https://localhost:8555/get_blockchain_state 参数: {"":""} 执行: curl --insecure --cert ~/.chia/mainnet/config/ssl/full_node/private_full_node.crt --key ~/.chia/mainnet/config…...

java IO教程《三》
缓冲区流讲解(Buffered) 什么是缓冲区? 缓冲流,也叫高效流,是对4个基本的File流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream字…...

springcloudAlibaba nacos配置(解决jmenv.tbsite.net错误)
错误信息: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net 数据库配置: 数据库配置: ### Count of DB: db.num1 ##…...

AndroidUtilCode 最强大的工具类
一、前言: AndroidUtilCode 是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完善的 Demo 和单元测试,利用其封装好的 APIs 可以大大提高开发效率,如今它主要包括两部分模块,其一是…...

VIA标注工具_一款在线的数据标注工具,支持矩形,多边形,关键点
https://www.robots.ox.ac.uk/~vgg/software/via/via_demo.html 界面如下图所示:...

学习响应式BootStrap来写融职教育网站,Bootsrtap第三天nav布局
nav导航布局 <!DOCTYPE html> <html lang"zh_CN"> <head><meta charset"UTF-8"><title>融职教育</title><!-- 移动设备优先--><meta name"viewport" content"widthdevice-width, initial…...

第一章 gitee学习之安装
安装链接链接 gitee下载链接: https://git-scm.com/downloads. 有三种系统可供选择,选择想要的即可,我是windows64位的:下载好了后直接一直下一步安装即可,安装完成后右键菜单如下图: 如上,git安装完毕...

基于域名访问网站1(作业)
搭建一个基于http://www.zuoye.com:22222访问的web网站,网站首页在/www/http/,内容为zuoye 结果 过程: 创建网页的根目录,并编辑网页内容为zuoye 编辑/etc/httpd/conf.d/zuoye.conf 关闭防火墙 关闭selinux 重启httpd 编辑/…...

外连接查询与内连接的不同
外连接的语法如下: SELECT 字段名称 FROM 表名1 LEFT|RIGHT|FULL| [OUTER] JOIN 表名2ON 表名1.字段名1表面2.字段名2 左外连接 左外连接的结果集包含左表的所有记录和右表中满足连接条件的记录,结果集中那些不符合连接条件的来源于右表的列值为null。…...

写给互联网大厂员工的真心话,面试必问
越来越多的人在提“移动端的下半场”、“Android 开发的焦虑”之类的,也有人在喊“技术天天在变,学也学不完”,“昨天 Kotlin 今天 Flutter”。其实我却认为,如果你技术达到了一定程度,你无需太过在意这些。 移动端真…...

返利网拼团小程序,10人拼团7人返利
最火项目—拼团返利商城 你是否看过这样一则视频,全新模式的拼团小程序、半年20亿的销售神话!现在它来了,拼团返利商城完整源码,上传即可使用,➕Liyeruly,包安装。 玩法介绍: 根据商品可自由…...

为什么基类析构函数一般写成虚函数
目录 析构函数不是虚函数: 析构函数是虚函数: 由于类的多态性,基类指针可以指向派生类的对象,如果删除该基类的指针,就会调用该指针指向的派生类析构函数,而派生类的析构函数又自动调用基类的析构函数&am…...

拉伯配资6月1日策略
5月回想:在5月份的战略中,我们认为其时胶着的商场可能在5月会有所改动。从实践表现来看,5月下旬商场明显出现了一些活泼做多的信号,商场也选择了向上打破。上证指数上涨超4%,深圳成指上涨近3%。 行情判别:从…...

git 命令
git 命令 git init 作用是初始化一个能让git进行管理的仓库 使用 attrib -h .git可以释放出隐藏文件.git 创建出自己的项目文件 打开项目文件夹 然后在文件夹中打开git命令窗git add ‘文件名称’ 提交单个文件 git add . 提交所有修改的文件git status 可以查看当前git所处的…...

什么样才能叫“技术很牛”?
近日,在某论坛上,有人提出了“一直不懂一个问题,什么叫‘技术很牛’?”的问题。详细提问称“说实话,我从本科到硕士,我觉得计算机的技术很多都是看看就会了,多操练下就熟了。可能有些设计问题需…...

Thread类的常用方法
Thread类的常用方法 void start(): 启动线程,并执行对象的run()方法run(): 线程在被调度时执行的操作static Thread currentThread(): 返回当前线程。在Thread子类中就 是this,通常用于主线程和Runnable实现类String getName(): 返回线程的名…...

Linux下安装sqlite3
文章目录前言安装步骤测试安装成功前言 sqlite3的安装 安装步骤 依次执行以下命令: 1)wget http://www.sqlite.org/sqlite-3.5.6.tar.gz 2)tar -xzvf sqlite-3.5.6.tar.gz 3)cd sqlite-3.5.6 4)./configure 5)make 6)make install测试安装成功 出现红色方框信息…...

Labview需求(部分)
本人从事工控行业多年,有一些资源,目前labview的单子干不过来了,想找几个靠谱的labview工程师跟我合作,想做兼职,接单的labview工程师可以私聊我,另外我有一些项目还需要跟单片机工程师,plc工程师,fpga工程师合作,欢迎大家找我合作!以下是手里比较着急的项目,需要外包 需求1&am…...

EVB-6ULX TF卡硬件设计
TF卡启动Linux EVB-P6UL可选用MfgTools或Linux主机(PC,x86平台)烧录TF卡。Linux内核镜像包括u-boot、zImage、DTB和根文件系统。u-boot裸写到TF卡,zImage与DTB存储到u-boot之后的FAT分区,根文件系统存储到内核分区之后…...

机试学习笔记03 --排版问题与日期问题
1 排版类问题 1.1 字符菱形变体 右下直角三角:先空格,再字符。 #include<bits/stdc.h> using namespace std;int main() {int n;scanf("%d", &n);for(int i 1; i < n; i){for(int j 1; j < n - i; j){printf(" &quo…...

不同层级的Android开发者的不同行为,分享一点面试小经验
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: 音视频是什么,视频为什么需要压缩 心理分析:很多人对音视频的概念停留在 苍老师的小电影上,只能理解他是一个视频文件。面试官考的对…...

阿里P8成长路线!2021必看-Java高级面试题总结
前言 了解 JVM 是对 Java 开发人员的基本要求,JVM 的相关内容自然也成了现在 Java 程序员面试的重要考点。不过估计很多小伙伴和我一样,长时间醉心于 CRUD,却忘了去了解一下更底层、更基础的东西,殊不知这些才是决定你能在这条路…...

不了解这些多线程的基础知识,很难学懂Android!系列教学
简单介绍下背景 笔者双非末流渣渣一本毕业,工作已有6年多。年前从一家小公司CTO离职。准备年后“金三银四”换个更大的舞台。 疫情爆发,市场经济遭到沉重打击,大批企业裁员,整个三月都居家隔离。期间,阿里第一次电话…...

万字Android技术类校招面试题汇总,Android岗
前不久听我一个字节的朋友说了一个神转折的故事。 一名大专生,异常执着地向他们公司投简历,屡战屡败,屡败屡战,前前后后向字节跳动投了九次简历。 你猜后面怎么着?还真让他成功了,第九次居然拿到了offer&…...

AR增强现实让科技贴近生活
AR也叫增强现实,它是在1990年被正式提出的,在时间上要比VR虚拟现实技术晚一些,它的实现主要通过三维空间、场景交融、现实视频等技术相互作用、融合实现的。 AR增强现实技术在工业领域中,有着超强的适用性,假设某件工…...

React基础整理
前端一直流传着三大框架一大抄的说法,在中国的你或许无时不在感受这vue的强大,但其实react才是三大框架中世界使用了最大的 react官方地址 : http://react.html.cn/docs/getting-started.html 在这里我必须说明,react和vue谁更好是个争论不休…...

阿里P7大牛手把手教你!java上传zip文件到服务器
前言 很多程序员都会担心35岁的职业危机,而数据也显示,40岁以上的程序员几乎不存在,大都转了管理岗,余下的只能被迫离职或者转行。然而,太久待在舒适区,可能连小公司的面试,都很难通过了。 程…...

阿里P7大牛亲自教你!阿里面试100%会问到的JVM
前言 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十…...

浅谈设计模式(三)
前言 之前详细介绍了几种常用的设计模式,最后总结一下附上所有设计模式的类图以及六大设计原则 一、创建型 1.Factory Method(工厂方法) 定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法…...

Spring Cloud + Feign实现微服务负载路由
项目的启动顺序为 spring-cloud-eureka 提供注册服务:节点两个【resumer-eurake-9001、resumer-eurake-9002】 微服务(提供服务):节点两个【resumer-user、resumer-user2forTest】 spring-cloud-feign调用微服务(服务消…...

原子累加器
package com.lx.top;import java.util.ArrayList; import java.util.List; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.LongAdder; import java.util.function.Consumer; import java.util.function.Supplier;/*** 测试原子累加器*/ …...

ThreadLocalRandom 是线程安全的吗?
来源:https://zhenbianshu.github.io 前言 最近在写一些业务代码时遇到一个需要产生随机数的场景,这时自然想到 jdk 包里的 Random 类。 但出于对性能的极致追求,就考虑使用 ThreadLocalRandom 类进行优化,在查看 ThreadLocalR…...

测试总结:如何做接口测试
目录 一、接口测试须知 1、接口测试了解 (3)Http接口的组成 (3)为什么要做接口测试 (1)接口测试常用 (2)接口测试完整图 (3)接口测试参考计划图 3、企…...

CCF 2014-09-1 相邻数对
题目链接: 2014-09-1 相邻数对. code #include <iostream> #include <algorithm> //引入sort函数using namespace std;int main() {int n;cin >> n;int* nums new int[n];for (int i 0; i < n; i)cin >> nums[i];sort(nums, nums n);int coun…...

学习前端的第十天
这几天深受鼠标双击的折磨,非常痛苦,正好趁618换个鼠标。闲聊就到这吧,今天说说布局方式和浏览器兼容问题。 一、宽高自适应 1、自适应介绍:在以往的开发过程中,大家发现某个区域如果宽度或者高度固定好的话ÿ…...

网络规划-连接网络
文章目录网络规划-连接网络1 连接到广域网1.1 广域网连接方式2.2 专业术语2 点到点连接(PPP)2.1 PPP身份验证协议(PAP)2.2 配置PPP身份验证3 IPv4网络地址转换(NAT)3.1 NAT术语4 VPN4.1 VPN优点4.2 站点到站点VPN(GRE)4.2.1 GRE隧道配置4.2.2 GRE隧道检验4.3 远程访问VPN4.3.1 …...

阿里Java开发手册!阿里java电话面试
前言 不知道大家有没有这样的经历,明明感觉自己这个技术掌握的还行,能写在简历里肯定是有点自信的,但是被面试官一问,就感觉啥也不是 当我从面试的大楼里出来的时候脑袋里还是昏昏沉沉的,你压根不知道我经历了什么&a…...

Java-ArrayList修改和删除(泛型)
import java.util.ArrayList; import java.util.List;//泛型:给集合指定具体存放的数据类型,只能存放自定义数据类型。加了< >的可以使用泛型。 public class Demo3 {public static void main(String[] args) {//集合中只能存放自定义数据类型,不能…...

金三银四大厂面经总结,java怎么快速创建构造方法
前言 Java作为最全面的语言,国内开发者也是最多的,Java综合起来各方面都不错,在大部分场景下是一种稳健的技术选择。加上近年来安卓的推动,目前也是最流行的一种语言。 现在Java的就业市场看起来还是挺大的,而且工资…...

这操作真香!java结合redis秒杀功能
前言 分布式事务主要解决分布式一致性的问题。说到底就是数据的分布式操作导致仅依靠本地事务无法保证原子性。与单机版的事务不同的是,单机是把多个命令打包成一个统一处理,分布式事务是将多个机器上执行的命令打包成一个命令统一处理。 MySQL 提供了…...

RecyclerView实现长按弹出菜单
public class AddressListAdapter extends BaseQuickAdapter<AddressListResult.Address, AddressListAdapter.ViewHolder> {private int position;public AddressListAdapter(Nullable List<AddressListResult.Address> data) {super(R.layout.item_addressshow,...

可以拖拽的元素如何在iframe 中释放(无法触发drop事件)?
可以拖拽的元素如何在iframe 中释放(无法触发drop事件)? 最简单的解决方式:通过css 方式在iframe 上覆盖一层同等宽高的div 并设置透明! 然后在这成div上绑定 drop事件 <tempalte><div dragover"dragover($event)">可…...

Uncaught TypeError: Cannot read property ‘push‘ of undefined
最近项目部署, 把前端项目部署到服务器上之后,我的react里面重定向用的是window.location,但是部署到服务器上之后就没有办法定向了。 于是我想着把重定向改成this.props.history.push, 但是改成这个之后本机也报错了,…...

还在等机会?网关开发java
引言 做了5年开发的我,阿里一直是我心之所向,如今我如愿以偿进入了国内互联网巨头——Alibaba! 其实,今年下半年我面试不少互联网企业,像涂鸦智能,百度,京东,腾讯,字节…...

leetcode算法刷题记录之颜色分类
/*** 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。* 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。* * * 示例1&am…...

VS2019连接Linux
1>将Linux系统设置为静态IP 原来设置: auto eth0 iface eth0 inet dhcp dhcp表示动态获取ip 1>查看ip 在Linux下输入 ip addr 2>查看网关 在Linux下输入 ip route show 3>修改/etc/network/interfaces 地址配置文件 vi /etc/network/interfaces iface eth0…...

第三天基础框架篇
一、介绍一下spring spring的核心作用是框架整合,简化开发; spring通过IOC与AOP两大核心实现以上效果: 1.首先说IOC,Spring提供了一个容器,用来创建对象,初始化对象,管理对象,也就是对象的控制权…...

new和malloc两个函数详细实现与原理分析
1.申请的内存所在位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函数从堆上动态分配内存。自由存储区是C基于new操作符的一个抽象概念,凡是通过new操作符进行内存申请,该内存即为自由存储…...

CUDA编程(二):核函数与线程层级
核函数与线程层级CUDA核函数线程层级线程排布blockId和threadId的计算CUDA核函数 在GPU上并行执行的函数称为CUDA核函数(Kernel Function),它属于CUDA编程中最为重要且核心的一个环节。 核函数用__global__符号声明,在devie(GPU…...

断点调试与零钱通系统
目录 断点调试 基本介绍 断点调试的一些快捷键 断点调试例题 简易版零钱通系统 面向对象版 面向过程版 断点调试 基本介绍 1.断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试&a…...

人工智能专业就业方向盘点
今年无论是chatgpt还是扩散模型,都成功火爆出圈,让曾被质疑进入“寒冬期”的AI重新回到了大众的视野。巨大的市场潜力背后是对人才的渴求,AI专业又成为了热门。 今天就来盘点一下AI专业毕业后的就业方向,给同学们做个参考。 1.机…...

浮点数的加减乘除运算及流水线
浮点数的加减运算 设两个浮点数如下: x2Ex∗Mxy2Ey∗MyE表示阶码,M表示尾数x2^{E_x}*M_x\\y2^{E_y}*M_y\\ E表示阶码,M表示尾数\\ x2Ex∗Mxy2Ey∗MyE表示阶码,M表示尾数 两个浮点数的加减运算规则是 xy(Mx∗2Ex−EyMy)∗…...

docker安装以及springboot项目打包运行
我们都知道docker是一个非常好用的虚拟化容器,所谓虚拟化容器其实就是说可以将各个应用都隔离开来,每个应用都可以有自己的独立的运行时环境,这对于我们程序开发是非常有好处的,可以不需要去配置环境,每个组件都有独立…...

977. 有序数组的平方
977. 有序数组的平方 力扣题目链接(opens new window) 给你一个按非递减顺序排序的整数数组 nums,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:nums [-4,-1,0,3,10] 输出:[0,1,9,16,10…...

FrIf - Fr驱动收发器和状态管理
总目录链接==>> AutoSAR入门和实战系列总目录 总目录链接==>> AutoSAR BSW高阶配置系列总目录 文章目录 1FlexRay 收发器驱动程序2 FlexRay 状态管理器1FlexRay 收发器驱动程序 FlexRay 收发器的不同状态由 FlexRay 接口通过 FlexRay 收发器驱动程序 控制,上…...

springboot自动配置浅析
springboot本质上就是一个spring脚手架,其实仍然是spring,只是springboot帮我们做了我们使用spring时需要进行的那些配置。本文就简单讨论一下sprigboot是如何帮我们配置spring的。 参考:https://www.bilibili.com/video/BV1eD4y1w7Rp?p2&am…...

chatgpt实际是怎样工作的?
文章翻译自: https://www.assemblyai.com/blog/how-chatgpt-actually-works/ ChatGPT 是 OpenAI 的最新语言模型,比其前身 GPT-3 有了重大改进。与许多大型语言模型类似,ChatGPT 能够为不同目的生成多种样式的文本,但具有更高的精…...

项目开发——企业软件项目开发流程《项目开发的流程是怎样的》
软件项目开发流程:需求分析、设计、编码、测试、上线运维 一般而言,软件项目开发流程包括以下步骤: 需求分析:对客户需求进行分析和理解,明确软件项目的目标和功能。 规划阶段:确定项目的范围、时间和预算…...

嵌入式编程中的 __attribute__ 到底是什么
嵌入式编程中的 attribute 到底是什么 相信阅读嵌入式代码的老铁经常看到一些类型定义、变量、函数有 attribute 标识符,这个标识符号到底是做什么的?有哪些用法,咱们今天就来聊一聊。 attribute 可以指定编译时的细节。其可作用于变量、函…...

基于LiFePO4和硅/还原氧化石墨烯纳米复合材料的锂离子电池
A lithium-ion battery based on LiFePO4 and silicon/reduced graphene oxide nanocomposite highlights: 硅纳米颗粒(nSi)和还原氧化石墨烯(RGO)作为阳极;微波辐射,对混合物进行热处理,合成nSi/RGO复合物;通过不同充…...

CAS问题
CAS🔎什么是CAS🔎伪代码解析🔎CAS是如何实现原子性的🔎CAS的应用🌻实现原子类🌻实现自旋锁🔎ABA问题🌻ABA问题可能引起的BUG🌻ABA问题的解决方案🔎结尾&#…...

java入门-W2
一. 输入输出 输入的作用,就是由使用者告诉程序要操作的数据 例如,我要通过饿了么订餐,你得告诉程序你要吃什么,送货地址是什么吧 输出的作用,就是由程序向使用者展现执行的结果 还是订餐的例子,程序向你展…...

Windows下配置Golang开发环境,并安装配置GoLand IDE
作者:非妃是公主 专栏:《Golang》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录一、安装Go编译器1. 下载GoLang2. 安装GoLang3.…...

从零开始学架构——高性能NoSQL
高性能NoSQL 关系数据库经过几十年的发展后已经非常成熟,强大的SQL功能和ACID(Atomicity原子性、Consistency一致性、Isolation隔离性、Durability持久性)的属性,使得关系数据库广泛应用于各式各样的系统中,但是关系数…...

cannot re-initialize CUDA in forked subproess
该问题描述了pytorch 中使用cuda 初始化时, 与 DataLoader 中使用num_worker 多进程, 这两者之间发生了冲突, 根据错误提示, 在DataLoader 中使用 multiprocessing_context 该参数,并设置为spawn, 由…...

Kafka3.0.0版本——生产者回调异步发送消息 (API代码示例)
目录一、回调函数的异步发送消息概述二、生产者带回调函数的异步发送消息(API代码示例)2.1、pom文件导入依赖2.2、API代码2.3、在 kafka集群服务器上开启 Kafka 消费者一、回调函数的异步发送消息概述 回调函数会在 producer 收到 ack 时调用࿰…...

【Python】《我的世界》简简单单就可以完成?OMG~(附教学)
文章目录前言一、准备二、运行及操作三.代码解读与自定义总结前言 《我的世界 Minecraft》大家应该都听说过,但你有没有想过自己写一个这样的游戏呢?太难、太复杂了?也许吧,但是不试一试你怎么知道能不能成呢? 国外有…...

Scala 中的foreach和map、flatMap方法比较
Scala中的集合对象都有foreach和map、flatMap方法,都是用来遍历当前集合,但他们都有不同点。这几个方法的共同点在于:都是用于遍历集合对象,并对每一项执行指定的方法。而他们的差异在于:foreach无返回值(准…...

【nacos优化】定时删除access日志
按理说 Nacos 作为服务注册中心,不会应该会产生太多日志的,本身涉及的服务也不多,但几天就会产生 1G 以上的日志,的确有点疯狂。这篇文章就聊聊 Nacos 的日志系统。 经过排查,其中输出最多的日志为 /usr/local/nac…...

哪款蓝牙耳机打电话好用,盘点几款口碑不错的骨传导耳机
骨传导耳机是通过骨头振动传递声音,而不是通过耳道或鼓膜,因此它具有许多优势,比如可以在运动过程中保持对环境的感知,并避免对听力造成伤害。随着科技的进步和用户需求的增加,骨传导耳机也在不断更新。目前市面上的骨…...

JS中的事件监听
详解事件监听事件监听的基本概念事件类型事件处理函数事件传播事件对象移除事件监听器总结JavaScript中的事件监听是Web开发中非常重要的一个概念。它允许我们在特定的事件发生时执行特定的代码,从而实现交互效果和动态行为。本篇博客将详细介绍JavaScript事件监听的…...

SpringBoot 异步与线程池的关系
目录 1、简介 1、Async ① 使用方法: ② 注意事项: 2、parallelStream 并发遍历数组 ① 使用方法: ② 注意事项: 3、自定义线程池 ① 使用方法: ② 注意事项: 1、简介 SpringBoot 中基本上存在三种异步的关系,分别为 1、 使用 Async,标记在方法上 2…...

《版本特性百事通》
《版本特性百事通》 注:数据截至日期2021年 常见jdk种类 常见的JDK版本主要包括以下几种: Oracle JDK:Oracle公司的官方JDK,是商业授权,支持Java SE和Java EE平台。Oracle JDK包含了完整的Java类库和工具ÿ…...

英语——疑问词
疑问词可以分为: 疑问代名词: who /what/which 疑问副词:when/where/why/how 1 疑问代名词 当主词补语 Who is singing in the room? What makes you laugh so? 当受词 Which of these singers do you like. What do you think of my new hat? …...

谷歌的Bard和OpenAI的GPT4的对比
前言 随着上个月21日谷歌面向公众开放人工智能聊天机器人Bard的访问权限,同样是上个月的14日OpenAI为聊天机器人ChatGPT发布的最新语言模型:GPT-4的问世,可以说关于ChatGPT应用的推出进入了百家争鸣的情况,而且竞争变得激烈起来&a…...

云端数据科学平台Deepnote,相当于云上的Jupyter Note
Deepnote是一个先进的云端数据科学平台,可以帮助数据科学家和开发者轻松创建、管理和共享他们的数据科学项目。它提供了一个易于使用的界面,可以轻松编写代码、访问数据和执行任务,而无需管理服务器或编写复杂的部署代码。 1、Deepnote概述…...

钉钉协作Tab前端进化之路
作者:马赟 阿里云钉钉业务平台团队 技术人应当发挥对业务前瞻性的理解,好的架构设计背后一定是对于业务的高度认知与抽象,过程中要对业务关键指标有正确的理解,而不是简单纯功能的堆砌。 钉钉新版协作Tab作为千万级访问量下前端新…...

架构整洁之道-22章-整洁架构
按照更好架构设计出的系统特点: 独立于框架可被测试独立于UI独立于数据库独立于任何外部机构 外层的变化不影响内层的逻辑 外层变化同时修改对应适配器么 层次划分-按需划分并非固定多少层 图22.1中所显示的同心圆只是为了说明架构的结构,真正的架构很可…...

Redis高可用之主从复制 哨兵 集群
Redis高可用之主从复制 哨兵 集群一、Redis主从复制1、主从复制概念2、主从复制的作用3、Redis主从复制原理二、搭建Redis主从复制1、安装Redis,三台机子都需要安装2、编译安装三、修改节点配置文件1、修改Redis配置文件(Master节点、Slave1节点、Slave2…...

轻松拿结果-第二部分 同力 -第五章 用制度保障业绩
第五章 用制度保障业绩 制度的保障,体现的是管理者的监管能力,也是守护胜利果实的有力保障。 只有铁的纪律,才能拿到铁的结果 商场如战场,在公司您们就是带兵打仗的将军。 有一个销售员踢球时伤到了腿,在他休息的两个月里,业绩却没有落下一点,都是整个团队的人在帮他…...

Github + Sphinx+Read the docs 实战入门指南(二)
目录引言Sphinx渲染文档托管到Github部署到Read the docs网站继续阅读引言 接上一篇Github SphinxRead the docs 实战入门指南(一),这一篇主要讲解如何自动将指定文档内容部署到Read the docs中。对于文档,一般有以下基本要求: 只维护一份&…...

模拟实现常见的strlen、strcpy、strcmp库函数,深入理解它们的原理
⛩️博主主页:威化小餅干📝系列专栏:【C语言】藏宝图🎏 绳锯⽊断,⽔滴⽯穿!一个编程爱好者的学习记录! 文章目录🚀模拟实现strlen高仿版my_strlen函数🚀模拟实现strcpy高仿版my_st…...

mysql主从复制原理及一主一从搭建过程—2023.04
文章目录一、MySQL主从复制介绍1、主从复制概念2、为什么要做主从复制3、主从复制原理4、主从复制形式5、主从复制主要用途二、MySQL一主一从搭建1、准备工作2、MySQL主从复制部署流程1. 关闭防火墙,两台主机都操作2. 修改配置文件,两台主机都操作3. 修改…...

MongoDB 6.0 (五)索引操作
一、 什么是索引 1. 索引概念 索引对文档部分内容进行排序的数据结构 合适的索引可以极大的提升数据库的搜索性能 2. 单键索引 db.accounts.find({name:”alice”}) 对姓名经过索引之后,对姓名进行排序。下面的就是索引,通过索引指向上面原文档位置。 3. 复合键索引(多…...

页面替换算法
1.FIFO页面替换算法(先进先出) 需要向内存页中加载不存在的数据时,如果内存页已经没有空余,那么就需要按目前所有页中的数据谁先被加载进来的,谁就被替换掉的原则,来将最先被加载进来的数据替换为新的数据。 1.1例题 有一个虚拟存储器,主存有4个实页,页号为0-3;程序有…...

Metasploit入门到高级【第五章】
来自公粽号:Kali与编程预计更新第一章:Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章:Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章:Metasploi…...

由于链接地址长度过长引起的”HTTP Error 400. The request URL is invalid”错误解决办法:修改注册表
网站中,设计了一个批量搜索的功能,用户可以输入多个关键词进行批量查询搜索,但不出意外的话还是出意外了,有些用户可能会输入 N 多个关键词,我为了性能等考虑,会限制个数,比如每次批量查询仅限 …...

个人说说vue组件
模仿B站评论样式 vue.js支持表情输入 个人说说vue组件 好看的评论组件 - undrawui组件库 Talk.vue <template><div style"width: 632px;box-sizing: border-box;margin: 0 auto;"><talk-item/></div> </template><script> i…...

C#,初学琼林(03)——计算数组最小、最大值(Min, Max)的源程序
搜索数组的最小/最大元素 假设我们有一个 n 元素数组,我们想在其中找到一个最小(或最大)元素。a 是一个索引从 0 到 n-1 的数组 。它的元素将被标记为:a[0], a[1],a[2],a[3],...,a[…...

Linux基础操作 常用命令 Centos
Linux 1.Linux的引言 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持…...

【2D标注】cvat-canvas重写polyline拖拽交互方式
一、场景概述 在cvat-canvas中,针对polyline的拖拽默认相应区域是polyline头尾连线组成的闭合区域,这也是svg>polyline默认的hover响应区域,具体如图: 这样的响应方式,在一些场景下是极其难选择的,例如…...

出售Steam上线游戏的完整开发资源包
我开发了一款Steam上的小游戏: 《述途路人团乐之国》(英文名称:《As Talk As Walk Wayfarer Team - Land of Music》) https://store.steampowered.com/app/2332050/_/ 发行日期:2023年3月13日。 发行平台:…...

【从零开始学习 UVM】9.1、UVM Config DB —— UVM Resource database 资源库详解
文章目录 resource 是一个参数化的容器,可以保存任意数据。资源可用于配置组件、为序列提供数据或在TestBench不同部分之间启用信息共享。它们使用作用域信息(scope)存储,因此其可见性可以限制在TestBench的某些部分中。您可以将任何数据类型放入资源数据库中,并使另一个组…...

八爪鱼采集器使用笔记
Author: Lycan Date: 2023/3/26 22:01 八爪鱼官网: 数阔八爪鱼采集器 - 免费网络爬虫软件_网页大数据抓取工具 下载地址: 免费下载-Windows大数据采集软件下载 - 八爪鱼采集器 采集步骤简述: 1、输入待采集的网址; 2、根据需…...

LLaMA:Open and Efficient Foundation Language Models
LLaMA:Open and Efficient Foundation Language ModelsIntroductionApproachPre-training DataArchitectureIntroduction 在大规模数据下训练的大模型,已经展示了很好的表现,当模型足够大的时,模型会出现一个涌现的能力ÿ…...

Java-如何使用Java将图片和文字拼接在一起(并非是给图片加水印)
之前有遇到一个问题 问题背景:项目中,有一个功能,管理端可以将客户创建的小程序码下载到本地,方便客户将对应门店的小程序码打印出来并张贴到门店,做门店的引流和会员入会。 具体问题:当小程序码的数量较少…...

[综]Review of bike-sharing system studies using bibliometrics method
Review of bike-sharing system studies using bibliometrics method 文献计量学方法在自行车共享系统研究中的应用 article{2022reviewbikesharing, title {Review of bike-sharing system studies using bibliometrics method}, journal {Journal of Traffic and Transport…...

c语言实现通讯录(动态)
目录动态通讯录和静态通讯录的差别contact.h(通讯录函数的声明)test.c(测试通讯录)contact.c(通讯录函数的实现)初始化通讯录销毁通讯录检查通讯录当前容量并决定是否扩容添加通讯录成员打印通讯录删除通讯录指定成员查找通讯录成员修改通讯录成员排序通讯录删除通讯录全部联系…...

Linux 网络编程学习笔记——十一、定时器
目录 网络程序需要处理的第三类事件是定时事件,比如定期检测一个客户连接的活动状态。服务器程序通常管理着众多定时事件,因此有效地组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要逻辑,对于服务器的性能有着…...

又一家车企上线城区NCA,堪比“老司机”?看实测结果如何
今年豪华智能电动车最大的看点是什么,当然是城区NOA(每家车企名称各有差别)。 截至目前,各大车企纷纷释放了其城区NOA上线的时间表,极少数率先在深圳、广州等个别城市上线了城区NOA功能,但2023年绝对是一个…...

一本通 3.4.1 图的遍历
图的遍历 1341:【例题】一笔画问题 【题目描述】 如果一个图存在一笔画,则一笔画的路径叫做欧拉路,如果最后又回到起点,那这个路径叫做欧拉回路。 根据一笔画的两个定理,如果寻找欧拉回路,对任意一个点执…...

Ubuntu设置清华源
本文为自己安装记录回顾用 下面的是ubuntu20.04Ubuntu 更换镜像源 Ubuntu默认的服务器是在国外,连接很慢。 更换成国内的镜像源,使用清华镜像源,连接就会快一点 下面介绍更换清华镜像源的方法 1.打开Ubuntu的控制台(快捷键ctrlAlt…...

深入了解防火墙与IDS
目录 1. 防火墙如何处理双通道协议? 2. 防火墙如何处理nat? 3. 防火墙支持哪些NAT技术,主要应用场景是什么? 4. 当内网PC通过公网域名解析访问内网服务器时,会存在什么问题,如何解决? 5. 防…...

Visual Testing
软件质量保障:所寫即所思|一个阿里质量人对测试的所感所悟。 视觉测试也称为视觉 UI 测试。用于验证开发的软件用户界面 (UI) 是否符合预期。视觉测试不仅要验证开发的网页设计正确地遵循 UI 元素的空间、大小、形状和位置,还要验证网页元素在各种设备和…...

设计模式之发布-订阅模式
参考资料 曾探《JavaScript设计模式与开发实践》;JavaScript设计模式之发布-订阅模式 定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都将得到通知。。在JavaScript开发中,我们一般用事件…...