云和数据吧
关注: 2,278 贴子: 3,235

在云和,再出发!

  • 目录:
  • IT业
  • 17
    云和java培训怎么样?有学过的没有。
  • 1
    仅用4年时间,它如何成为高端IT培训行业的一匹黑马? 在国家大力提倡大众创业、万众创新的号召下,一大批创业投资者纷纷投入这个时代浪潮。 中原之地从来不缺乏创新、创业的基因,在河南郑州,就有着这样一个资深IT技术男,放弃了近百万年薪的安稳工作,一头扎入了滚滚的创业大潮中。 (郭凯) 他就是河南云和数据创始人郭凯,仅仅4年的时间,他所创办的云和数据就成为河南地区规模和影响力较大的高端IT教育培训机构,成为IT培训行业的
  • 0
    wangxu 2023-03
    什么是AOP? AOP(Aspect Oriented Programming),面向切面编程,AOP不是单独指某一种技术,而是一种编程思想,AOP是OOP的一种补充,用于处理各个业务逻辑中的横切关注点,比如日志记录,事务处理,性能统计,异常处理等等。 AOP的主要功能是将大量的通用行为从业务逻辑中抽取出来,将这些行为封装成独立的非业务方法,用于横向切入,这些行为不会对已有的业务逻辑产生任何影响。 AOP是一种设计思想,而Spring AOP则是符合AOP思想的一种框架实现。 spring
    wangxu 3-7
  • 0
    作用域 指代码当前上下文,控制着变量和函数的可见性和生命周期。最大的作用是隔离变量,不同作用域下同名变量不会冲突。 作用域链 指如果在当前作用域中没有查到值,就会向上级作用域查询,直到全局作用域,这样一个查找过程所形成的链条就被称之为作用域链。 作用域可以堆叠成层次结构,子作用域可以访问父作用域,反之则不行。 作用域具体可细分为四种:全局作用域、模块作用域、函数作用域、块级作用域 全局作用域: 代码在程序
    pwwww1992 1-13
  • 0
    1、可快速构建独立的Spring应用 Spring Boot主要是通过注解和自动化配置的方式推出的全新框架,旨在快速、敏捷的开发新一代基于Spring框架的应用程序。在构建Spring Boot项目时,只要根据需求选择对应的场景依赖,Spring Boot会自动添加该场景所需要的全部依赖并提供自动化配置,在无需额外手动添加配置的情况下可以快速构建出一个独立的Spring应用程序。 2、直接嵌入Tomcat、Jetty和Undertow服务器(无需部署WAR文件) Spring Boot项目不需要像传统的Spring应用一样
    wangxu 1-13
  • 0
    1、首先进行哈希值的扰动,获取一个新的哈希值。(key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); 2、判断tab是否位空或者长度为0,如果是则进行扩容操作。 if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize()).length; 3、根据哈希值计算下标,如果对应小标正好没有存放数据,则直接插入即可否则需要覆盖。tab[i = (n - 1) & hash]) 4、判断tab[i]是否为树节点,否则向链表中插入数据,是则向树中插入节点。 5、如果链表中插入节点的时候,链表长度大
  • 0
    SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事先定义好的 SQL 语句中添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步获取到数据信息。 简而言之,SQL 注入就是在用户输入的字符串中加入 SQL 语句,如果在设计不良的程序中忽
    wangxu 1-12
  • 0
    为什么要引入Promise? 异步处理在我们日常开发中是很常见的场景,在Promise出现之前,我们都是通过回调来处理异步代码的结果,但是出现了一些问题: 回调地狱,在有多个异步逻辑存在依赖关系时,我们只能在回调里嵌套,这些深度嵌套的代码让代码难以阅读和维护,业界称之为回调地狱 回调也没用标准的方式来处理错误,大家都凭自己的喜好来处理错误,可能我们使用的库跟api都定义了一套处理错误的方式,那我们把多个库一起搭配使用时,就
    pwwww1992 1-12
  • 0
    JDK1.7的数据结构是数组+链表; JDK1.8的数据结构: JDK1.8的数据结构是数组+链表+红黑树。 数据结构示意图如下: 其中,桶数组是用来存储数据元素,链表是用来解决冲突,红黑树是为了提高查询的效率。 数据元素通过映射关系,也就是散列函数,映射到桶数组对应索引的位置 如果发生冲突,从冲突的位置拉一个链表,插入冲突的元素 如果链表长度>8&数组大小>=64,链表转为红黑树 如果红黑树节点个数<6 ,转为链表 更多技术分享,请持续关
  • 0
    ArrayList是基于数组的集合,数组的容量是在定义的时候确定的,如果数组满了,再插入,就会数组溢出。所以在插入时候,会先检查是否需要扩容,如果当前容量+1超过数组长度,就会进行扩容。 ArrayList的扩容是创建一个1.5倍的新数组,然后把原数组的值拷贝过去。 更多技术分享,请持续关注云和数据!
  • 0
    Spring是一个非常优秀的开源框架,项目源码中所使用的设计模式随处可见,这篇文章主要记录一下Spring中常见的设计模式: (1)工厂模式:工厂模式是把创建对象的任务交给工厂,从而来降低类与类之间的耦合。Spring最主要的两个特性就是AOP和IOC,其中IOC就是控制反转,将对象的控制权转移给Spring,并由Spring创建实例和管理各个实例之间的依赖关系,其中,对象的创建就是通过BeanFactory 和 ApplicationContext 完成的。 (2)单例模式:在Spring中的Bean默认
    wangxu 1-11
  • 0
    TCP 发送一个数据,如果需要收到确认应答,才会发送下一个数据。这样的话就会有个缺点:效率会比较低。 “用一个比喻,我们在微信上聊天,你打完一句话,我回复一句之后,你才能打下一句。假如我没有及时回复呢?你是把话憋着不说吗?然后傻傻等到我回复之后再接着发下一句?” 为了解决这个问题,TCP 引入了窗口,它是操作系统开辟的一个缓存空间。窗口大小值表示无需等待确认应答,而可以继续发送数据的最大值。 TCP 头部有个字段叫 wi
  • 0
    跨窗口通信同源 同源策略会限制 窗口(window) 和 frame 之间的通信,因此首先要知道同源策略。 同源策略目的是保护用户信息免遭信息盗窃:加入小王有两个打开的页面:一个是 shop.com,一个是 email.com。小王不希望 shop.com 的脚本可以读取 mail 的邮件,这时同源策略就起作用了。 如果两个 URL 具有相同的协议,域,和端口,则称它们是同源的。 以下几个URL是同源的: site.com site.com/ site.com/a/index.htm… 以下是不同源的: https://site.com http://bbs.site.com site.com:8
    pwwww1992 1-10
  • 0
    开闭原则: 1、基本介绍 1) 开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则。 2) 一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节 3) 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化,软件中的对象(类、模块、函数等等)应该对于扩展是开放的,但是对于修改时封闭的。 4) 编程中遵循其它原则,以及使用设计
    wangxu 1-10
  • 0
    nextTick:在下一次DOM更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM。它有两个参数:第一个参数是回调函数,不传时提供promise调用;第二个参数是执行环境上下文,不传默认是自动绑定到调用它的实例上。我们可以看出nextTick就是一个方法,方法有两个参数:fn和this,fn就是需要传的回调函数,this就是所说的执行环境上下文。那么问题来了,在Vue中是如何实现在下一次DOM更新结束之后才会执行延迟回调的?从上
    pwwww1992 1-9
  • 0
    TCP 提供了一种机制,可以让发送端根据接收端的实际接收能力控制发送的数据量,这就是流量控制。 TCP 通过滑动窗口来控制流量,我们看下简要流程: 首先双方三次握手,初始化各自的窗口大小,均为 400 个字节。 假如当前发送方给接收方发送了 200 个字节,那么,发送方的SND.NXT会右移 200 个字节,也就是说当前的可用窗口减少了 200 个字节。 接受方收到后,放到缓冲队列里面,REV.WND =400-200=200 字节,所以 win=200 字节返回给发送方。接收方会在 ACK
  • 0
    依赖倒转原则(DIP): 1、基本介绍 1) 高层模块不应该依赖低层模块,二者都应该依赖其抽象 2) 抽象不应该依赖细节,细节应该依赖抽象 3) 依赖倒转(倒置)的中心思想是面向接口编程 4) 依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在java中,抽象指的是接口或抽象类,细节就是具体的实现类 5) 使用接口或抽象类的目的是制定好规范,而不涉及任何具
    wangxu 1-9
  • 0
    单一职责原则: 1、基本介绍 对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2 2、单一职责原则注意事项和细节 1) 降低类的复杂度,一个类只负责一项职责,这个需要结合实际的开发需求。 2) 提高类的可读性,可维护性 3) 降低变更引起的风险 4) 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级
    wangxu 1-6
  • 0
    TCP主要提供了检验和、序列号/确认应答、超时重传、最大消息长度、滑动窗口控制等方法实现了可靠性传输。 1、连接管理:TCP使用三次握手和四次挥手保证可靠地建立连接和释放连接,这里就不用多说了。 2、校验和:TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果接收端的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段。 3、序列号/确认应答:TCP 给发送的每一个包进行编号
  • 0
    路由懒加载 适用于SPA应用 路由懒加载,即按需加载或延迟加载,要将路由进行拆分,优先保证首页加载。 由于Vue是SPA(单页面)应用,他在打包之后会有一个巨大的js包,我们进入首页的时候为了加载资源就会造成一个白屏的情况,即使是做了加载动画,添加了Loading,用户的体验也不是很好,会觉得网站很卡,所以我们将其进行拆分,用到的时候,让他加载,没有用到的时候,就不用加载,这样加载的资源少了,速度自然就提高了。 服务端渲染 SSR
    pwwww1992 1-6
  • 0
    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于
    pwwww1992 1-5
  • 0
    16 位端口号:源端口号,主机该报文段是来自哪里;目标端口号,要传给哪个上层协议或应用程序 32 位序号:一次 TCP 通信(从 TCP 连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号。 32 位确认号:用作对另一方发送的 tcp 报文段的响应。其值是收到的 TCP 报文段的序号值加 1。 4 位首部长度:表示 tcp 头部有多少个 32bit 字(4 字节)。因为 4 位最大能标识 15,所以 TCP 头部最长是 60 字节。 6 位标志位:URG(紧急指针是否有效),ACk(
  • 0
    1、设计模式的目的 编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好 1) 代码重用性 (即:相同功能的代码,不用多次编写) 2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 3) 可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护) 4) 可靠性 (即:当我们增加新的功能后,对原来的功能没有影响) 5) 使程序呈现高内聚,低耦合的特
    wangxu 1-5
  • 0
    vm vh1.按照设计稿的尺寸,将px按比例计算转为vw和vh1.可以动态计算图表的宽高,字体等,灵活性较高 2.当屏幕比例跟 ui 稿不一致时,不会出现两边留白情况1.每个图表都需要单独做字体、间距、位移的适配,比较麻烦scale1.通过 scale 属性,根据屏幕大小,对图表进行整体的等比缩放1.代码量少,适配简单 2.一次处理后不需要在各个图表中再去单独适配1.因为是根据 ui 稿等比缩放,当大屏跟 ui 稿的比例不一样时,会出现周边留白情况 2.当缩放比例过大时
    pwwww1992 1-4
  • 0
    TIME_WAIT 状态过多会导致什么问题? 如果服务器有处于 TIME-WAIT 状态的 TCP,则说明是由服务器⽅主动发起的断开请求。 过多的 TIME-WAIT 状态主要的危害有两种: 第⼀是内存资源占⽤; 第⼆是对端⼝资源的占⽤,⼀个 TCP 连接⾄少消耗⼀个本地端⼝; 怎么解决TIME_WAIT 状态过多? 服务器可以设置SO_REUSEADDR套接字来通知内核,如果端口被占用,但是TCP连接位于TIME_WAIT 状态时可以重用端口。 还可以使用长连接的方式来减少TCP的连接和断开,在长连接的业务里
  • 0
    1、保存的位置不同 cookie保存在浏览器端,session保存在服务端。 2、使用方式不同 cookie如果在浏览器端对cookie进行设置对应的时间,则cookie保存在本地硬盘中,此时如果没有过期,则就可以使用,如果过期则就删除。如果没有对cookie设置时间,则默认关闭浏览器,则cookie就会删除。 session:我们在请求中,如果发送的请求中存在sessionId,则就会找到对应的session对象,如果不存在sessionId,则在服务器端就会创建一个session对象,并且将sessionId返回给浏览器
    wangxu 1-4
  • 0
    这是一道面试高频题,但是很多人都没能回答好,或者说没有准备好怎么去回答。今天跟大家分享我是如何去回答这个问题的。很多人可能觉得,自己每天都是干着CRUD的工作,难一点,再加个缓存,没有什么困难的地方。就算当时真的觉得有困难,做完了也就不觉得困难了。其实,大部分人都是这样的状态,没有谁天天能遇到一些框架上的疑难杂症、超乎意外的生产问题,这种疑难问题很少,出现了可能也轮不到你处理。不过如果遇到这种问题的话
    pwwww1992 1-3
  • 0
    CLOSE-WAIT状态有什么意义? 服务端收到客户端关闭连接的请求并确认之后,就会进入CLOSE-WAIT状态。此时服务端可能还有一些数据没有传输完成,因此不能立即关闭连接,而CLOSE-WAIT状态就是为了保证服务端在关闭连接之前将待发送的数据处理完。 TIME-WAIT有什么意义? TIME-WAIT状态发生在第四次挥手,当客户端向服务端发送ACK确认报文后进入TIME-WAIT状态。 它存在的意义主要是两个:TIME_WAIT状态的作用防止旧连接的数据包 如果客户端收到服务端的FIN报文之
  • 0
    数据库索引是对数据库表中一列或多列进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息。数据库索引就像书的目录,能加快数据库的查询速度。 索引分类 1、按功能逻辑分 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个 唯一索引:加速查询 + 列值唯一(可以有null) 普通索引:仅加速查询 组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并 全文索引:对文本的内容进行分词,进行搜索 2、按
    wangxu 1-3
  • 0
    在SQL标准中定义了四种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 (1)Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 (2)Read Committed(读取提交内容) 这是大
    wangxu 12-30
  • 0
    1. CommonJS规范 1.每一个文件都是一个模块,每一个模块都有一个独立的作用域,文件内的函数、变量都有私有的其他文件不可使用, 除非挂在到global上。 2.每个模块内部,module变量代表当前模块 3.每个文件对外的接口 2. AMD(Asynchromous Module Definition - 异步模块定义) AMD 是 RequireJS 在推广过程中对模块定义的规范化 定义模块 define(id?, dependencies?, factory) 加载模块 require([module], callback) 3. CMD(Common Module Definition - 公共模块定义) CMD 是 SeaJS 在推广过程中对模
    pwwww1992 12-30
  • 0
    除时间等待计时器外,TCP 还有一个保活计时器(keepalive timer)。 设想这样的场景:客户已主动与服务器建立了 TCP 连接。但后来客户端的主机突然发生故障。显然,服务器以后就不能再收到客户端发来的数据。因此,应当有措施使服务器不要再白白等待下去。这就需要使用保活计时器了。 服务器每收到一次客户端的数据,就重新设置保活计时器,时间的设置通常是两个小时。若两个小时都没有收到客户端的数据,服务端就发送一个探测报文段,以后
  • 0
    为什么需要等待? 1. 为了保证客户端发送的最后一个 ACK 报文段能够到达服务端。 这个 ACK 报文段有可能丢失,因而使处在 LAST-ACK 状态的服务端就收不到对已发送的 FIN + ACK 报文段的确认。服务端会超时重传这个 FIN+ACK 报文段,而客户端就能在 2MSL 时间内(超时 + 1MSL 传输)收到这个重传的 FIN+ACK 报文段。接着客户端重传一次确认,重新启动 2MSL 计时器。最后,客户端和服务器都正常进入到 CLOSED 状态。 2. 防止已失效的连接请求报文段出现在本连接中
  • 0
    什么是web缓存? web缓存主要指的是两部分:浏览器缓存和http缓存。 其中http缓存是web缓存的核心,是最难懂的那一部分,也是最重要的那一部分。 浏览器缓存:比如,localStorage,sessionStorage,cookie等等。这些功能主要用于缓存一些必要的数据,比如用户信息。比如需要携带到后端的参数。亦或者是一些列表数据等等。 不过这里需要注意。像localStorage,sessionStorage这种用户缓存数据的功能,他只能保存5M左右的数据,多了不行。cookie则更少,大概只能有4kb的
    pwwww1992 12-29
  • 0
    事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。 原子性(Atomicity) 单个事务,为一个不可分割的最小工作单元,整个事务中的所有操作要么全部commit成功,要么全部失败rollback,对于一个事务来说,不可能只执行其中的一部分SQL操作,这就是事务的原子性。 一致性(Consistency) 数据库总是从一个一致性的状态转换到另外一个一致性的状态。在前面的例子中, 一致性
    wangxu 12-29
  • 0
    在JavaScript语言中,你是否分的清什么时候是深拷贝,什么时候是浅拷贝呢?到底我们拷贝完一个对象后,怎样的拷贝会导致新对象引起原对象改变,怎样的拷贝不会导致原对象随新对象改变呢?下面我就来介绍一下深浅拷贝吧。 浅拷贝的定义 顾名思义,浅拷贝拷贝出来的原对象里面的值会随着新对象改变而改变,也就是说浅拷贝是将引用地址拷贝给一个新的对象,所以当引用地址对应的值发生变化时,原对象和新对象都会改变。简而言之就是两个对
    pwwww1992 12-28
  • 0
    1.for语句1.1普通写法const arr = [1,2,4,5] for(var i = 0; i &lt; arr.length; i++){ console.log(arr[i]) }复制代码1.2优化版使用临时变量将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显,这种方法基本是所有循环遍历方法中性能最高的一种)const arr = [1,2,4,5] for(var i = 0, len = arr.length; i &lt; len; i++){ console.log(arr[i]) }复制代码网页链接 语句forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。注意: forEach() 对于空数组是不会执行
    pwwww1992 12-28
  • 0
    再来回顾下四次挥手双方发 FIN 包的过程,就能理解为什么需要四次了。 关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。 服务端收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。 从上面过程可知,服务端通常需要等待完成数据的发送和处理,所以服务端的 ACK 和 FIN 一般都会分开发送,
  • 0
    序列化就是一种用来处理对象流的机制,将对象的内容进行流化。可以对流化后的对象进行读写操作,可以将流化后的对象传输于网络之间。序列化是为了解决在对象流读写操作时所引发的问题。 简单来说: 序列化: 将数据结构或对象转换成二进制字节流的过程 反序列化:将在序列化过程中所生成的二进制字节流的过程转换成数据结构或者对象的过程 serialVersionUID的作用: 其目的是序列化对象版本控制,有关各版本反序列化时是否兼容。如果在新
    wangxu 12-28
  • 0
    1、数据传输结束之后,通信双方都可以主动发起断开连接请求,这里假定客户端发起 2、客户端发送释放连接报文,第一次挥手 (FIN=1,seq=u),发送完毕后,客户端进入 FIN_WAIT_1 状态。 3、服务端发送确认报文,第二次挥手 (ACK=1,ack=u+1,seq =v),发送完毕后,服务器端进入 CLOSE_WAIT 状态,客户端接收到这个确认包之后,进入 FIN_WAIT_2 状态。 4、服务端发送释放连接报文,第三次挥手 (FIN=1,ACK1,seq=w,ack=u+1),发送完毕后,服务器端进入 LAST_ACK 状态,等待来自
  • 0
    pwwww1992 2022-12
    什么是闭包? 闭包在实现上是一个结构体 ,它存储了一个函数和一个关联的环境 从广义的角度来说:JavaScript中的函数都是闭包 从狭义的角度来说:JavaScript中一个函数,如果访问了外层作用域的变量,那么它是一个闭包 如下一定形成了闭包: function makeAdder(count){ return function(num){ return count+num }}var add10=makeAdder(10)console.log(add10(5)) 闭包的内存泄漏 在上面的案例中,如果后续我们不再使用add10 函数了,那么该函数对象应该要被销毁掉,并且其引用着的父
    pwwww1992 12-27
  • 0
    Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。 collection 常用方法: add(Object o)向集合中添加一个元素 addAll(Collection c)向集合中添加集合 c 中的所有元素 clear() 清除所有元素 contains(Object o) 判断集合中是否包含指定元素 isEmpty()判断集合是否为空 iterator()
    wangxu 12-27
  • 0
    什么是半连接队列? TCP 进入三次握手前,服务端会从 CLOSED 状态变为 LISTEN 状态, 同时在内部创建了两个队列:半连接队列(SYN 队列)和全连接队列(ACCEPT 队列)。 顾名思义,半连接队列存放的是三次握手未完成的连接,全连接队列存放的是完成三次握手的连接。 TCP 三次握手时,客户端发送 SYN 到服务端,服务端收到之后,便回复 ACK 和 SYN,状态由 LISTEN 变为 SYN_RCVD,此时这个连接就被推入了 SYN 队列,即半连接队列。 当客户端回复 ACK, 服务端接收
  • 0
    1、避免不必要的渲染 属性值没有改变时候不需要重新渲染,通过网页链接 + shouldComponentUpdate,或者React.memo来实现。 2、Fragment 避免不必要的标签,如果想返回一个标签列表,可以使用React.Fragment包裹。 3、事件回调不使用匿名函数或者bind 如果事件函数用匿名函数或者bind的函数,每次render时候都要解绑旧的函数,绑定新的函数,这时不必要的,类组件中,事件回调应该作为组件的一个属性;函数组件中可以用useCallback实现每次返回同一个函数。 4、不
    pwwww1992 12-26
  • 0
    当我们将一个类A放置于另一个类B的内部定义时,那么我们称A为内部类(或嵌套类),称B为外部类(或宿主类)。 内部类的主要作用内部类提供了更好的封装效果,可以将内部类隐藏在外部类之内,在内部类中完成封装效果; 内部类成员可以直接访问外部类的私有数据,可以作为外部类的成员,一个类中的成员可以相互访问; 匿名内部类可以用于创建仅需要使用一次的类; 内部类分类: • 成员内部类:作为成员对象的内部类。可以访问 private 及以上外
    wangxu 12-26
  • 0
    要优化提升前端性能,有以下两大方法: ①减少页面加载所需时间; ②提升用户角度的观感体验(让用户觉得页面更快); 减少页面加载所需时间,可以从请求数量、请求并发度及网络传输时间等方面着手;提升用户观感,则主要从让页面尽快展示入手;下面一一介绍: 1、减少网络时间 浏览器从服务端获取HTML文档和资源都需要经历“DNS解析——建立连接——获取连接——断开连接”的过程;如果能减少DNS解析和文件在网络上传输的时间,性能自
    pwwww1992 12-23
  • 0
    TCP提供面向连接的服务,在传送数据前必须建立连接,TCP连接是通过三次握手建立的。 三次握手的过程: 最开始,客户端和服务端都处于CLOSE状态,服务端监听客户端的请求,进入LISTEN状态 客户端端发送连接请求,第一次握手 (SYN=1, seq=x),发送完毕后,客户端就进入 SYN_SENT 状态 服务端确认连接,第二次握手 (SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,服务器端就进入 SYN_RCV 状态。 客户端收到服务端的确认之后,再次向服务端确认,这就是**第三次握手
  • 0
    继承:对象的一个新类可以从现有的类中派生,派生类可以从它的基类那继承方法和实例变量,且派生类可以修改或新增新的方法使之更适合特殊的需求。 1、减少了代码的冗余 2、便于功能的扩展 3、为之后的多态性的使用提供了前提 封装 核心思想就是“隐藏细节”、“数据安全”:将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定。 1、高内聚:类的内保
    wangxu 12-23

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

会员: 会员

目录: IT业