06 2021 档案

摘要:一)全局-局部变量 全局变量是指:这个变量在没有被同名局部变量覆盖的时候,所有代码块都是可见的。 局部变量是指:该变量只在被申明的代码块中可见,并且可以覆盖同名全局变量或者外层局部变量。 Lua 中的局部变量要用 local 关键字来显式定义,不使用 local 显式定义的变量就是全局变量: g_v 阅读全文
posted @ 2021-06-26 20:37 hochan_100 阅读(250) 评论(0) 推荐(0)
摘要:Lua中table内部实际采用哈希表和数组分别保存键值对、普通值;下标从1开始 不推荐混合使用这两种赋值方式。 local color={first="red", "blue", third="green", "yellow"} print(color["first"]) --> output: r 阅读全文
posted @ 2021-06-26 14:34 hochan_100 阅读(6816) 评论(0) 推荐(0)
摘要:string的相关操作 1)string.upper(s) 接收一个字符串 s,返回一个把所有小写字母变成大写字母的字符串。 print(string.upper("Hello Lua")) -->output HELLO LUA 2)string.lower(s) 接收一个字符串 s,返回一个把所 阅读全文
posted @ 2021-06-26 14:13 hochan_100 阅读(765) 评论(0) 推荐(0)
摘要:之前我们介绍了 条件判断的 if 用于循环迭代的 while、repeat 四)for 控制结构 for 语句有两种形式:数字 for 和范型 for。 1)数字型 for 的语法如下: for var = begin, finish, step do --body end 关于数字 for 需要关 阅读全文
posted @ 2021-06-26 14:07 hochan_100 阅读(144) 评论(0) 推荐(0)
摘要:一)条件 - 控制结构 if-else if-else 是我们熟知的一种控制结构。Lua 跟其他语言一样,提供了 if-else 的控制结构。 1)单个 if 分支 型 if 条件 then --body end 条件为真 ,执行if中的body x = 10 if x > 0 then print 阅读全文
posted @ 2021-06-26 11:17 hochan_100 阅读(282) 评论(0) 推荐(0)
摘要:一)算术运算符 + 加法 - 减法 * 乘法 / 除法 % 取余 ^ 乘幂 - 负号 print(1 + 2) -->打印 3 print(5 / 10) -->打印 0.5。 这是Lua不同于c语言的 print(5.0 / 10) -->打印 0.5。 浮点数相除的结果是浮点数 -- print 阅读全文
posted @ 2021-06-26 11:14 hochan_100 阅读(473) 评论(0) 推荐(0)
摘要:一)table (表) Table 类型实现了一种抽象的“关联数组”。即可用作数组,也可以用作map。 lua中没有数组和map,都是用table这个类型 --数组 java int[] intArr = new int[]{1,2,3,4,5,6}; intArr[0] intArr[1] --m 阅读全文
posted @ 2021-06-26 11:05 hochan_100 阅读(397) 评论(0) 推荐(0)
摘要:一)function (函数) 有名函数: optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_param 阅读全文
posted @ 2021-06-26 10:58 hochan_100 阅读(202) 评论(0) 推荐(0)
摘要:1)ngx_lua模块的hello world 编辑nginx下conf配置文件nginx.conf # vi nginx.conf 在server模块加上 location /helloworld { default_type text/html; content_by_lua 'ngx.say( 阅读全文
posted @ 2021-06-26 08:26 hochan_100 阅读(155) 评论(0) 推荐(0)
摘要:1)下载安装 centos系统 yum install readline-devel pcre pcre-devel openssl openssl-devel gcc curl GeoIP-devel 下载源码包 https://github.com/openresty/openresty/rel 阅读全文
posted @ 2021-06-26 08:07 hochan_100 阅读(101) 评论(0) 推荐(0)
摘要:来聊聊 Spring Web 开发中的参数检验(Validation)。 参数检验是我们在 Web 编程时经常使用的技术之一,它帮助我们完成请求的合法性校验,可以有效拦截无效请求,从而达到节省系统资源、保护系统的目的。 相比较其他 Spring 技术,Spring 提供的参数检验功能具有独立性强、使 阅读全文
posted @ 2021-06-24 10:48 hochan_100 阅读(220) 评论(0) 推荐(0)
摘要:实际上,在 Spring 中,对于 Body 的处理很多是借助第三方编解码器来完成的。例如常见的 JSON 解析,Spring 都是借助于 Jackson、Gson 等常见工具来完成。所以在 Body 处理中,我们遇到的很多错误都是第三方工具使用中的一些问题。 真正对于 Spring 而言,错误并不 阅读全文
posted @ 2021-06-24 09:27 hochan_100 阅读(165) 评论(0) 推荐(0)
摘要:实际上,对于一个 HTTP 请求而言,URL 固然重要,但是为了便于用户使用,URL 的长度有限,所能携带的信息也因此受到了制约。 如果想提供更多的信息,Header 往往是不二之举。不言而喻,Header 是介于 URL 和 Body 之外的第二大重要组成,它提供了更多的信息以及围绕这些信息的相关 阅读全文
posted @ 2021-06-23 20:09 hochan_100 阅读(638) 评论(0) 推荐(1)
摘要:为了方便开发和部署,Spring Boot 在内部启动了一个嵌入式的 Web 容器。我们知道 Tomcat 和 Jetty 是组件化的设计,要启动 Tomcat 或者 Jetty 其实就是启动这些组件。在 Tomcat 独立部署的模式下,我们通过 startup 脚本来启动 Tomcat,Tomca 阅读全文
posted @ 2021-06-23 18:53 hochan_100 阅读(325) 评论(0) 推荐(0)
摘要:从今天起,我们开始学习状态模式。在实际的软件开发中,状态模式并不是很常用,但是在能够用到的场景里,它可以发挥很大的作用。从这一点上来看,它有点像我们之前讲到的组合模式。 状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,比较常用的还有 阅读全文
posted @ 2021-06-23 14:42 hochan_100 阅读(484) 评论(0) 推荐(0)
摘要:上一节课,我们学习职责链模式的原理与实现,并且通过一个敏感词过滤框架的例子,展示了职责链模式的设计意图。本质上来说,它跟大部分设计模式一样,都是为了解耦代码,应对代码的复杂性,让代码满足开闭原则,提高代码的可扩展性。 除此之外,我们还提到,职责链模式常用在框架的开发中,为框架提供扩展点,让框架的使用 阅读全文
posted @ 2021-06-23 09:29 hochan_100 阅读(115) 评论(0) 推荐(0)
摘要:前几节课中,我们学习了模板模式、策略模式,今天,我们来学习职责链模式。这三种模式具有相同的作用:复用和扩展,在实际的项目开发中比较常用,特别是框架开发中,我们可以利用它们来提供框架的扩展点,能够让框架的使用者在不修改框架源码的情况下,基于扩展点定制化框架的功能。 今天,我们主要讲解职责链模式的原理和 阅读全文
posted @ 2021-06-23 09:14 hochan_100 阅读(127) 评论(0) 推荐(0)
摘要:文/朱季谦 说实话,其实我很讨厌在代码里大量使用if-else,一是因为该类代码属于面向过程的,二嘛,则是会显得代码过于冗余。这篇笔记,主要记录一些自己在工作实践当中针对if-else的优化心得,将会不定期地长期更新。 一、使用策略枚举来优化if-else 看到网上蛮多人推荐使用策略模式来优化if- 阅读全文
posted @ 2021-06-22 14:15 hochan_100 阅读(126) 评论(0) 推荐(0)
摘要:上一节课,我们主要介绍了策略模式的原理和实现,以及如何利用策略模式来移除 if-else 或者 switch-case 分支判断逻辑。今天,我们结合“给文件排序”这样一个具体的例子,来详细讲一讲策略模式的设计意图和应用场景。 通过今天的学习,你会发现,设计原则和思想其实比设计模式更加普适和重要,掌握 阅读全文
posted @ 2021-06-22 12:22 hochan_100 阅读(85) 评论(0) 推荐(0)
摘要:模板模式主要起到代码复用和扩展的作用。除此之外,我们还讲到了回调,它跟模板模式的作用类似,但使用起来更加灵活。它们之间的主要区别在于代码实现,模板模式基于继承来实现,回调基于组合来实现。 今天,我们开始学习另外一种行为型模式,策略模式。在实际的项目开发中,这个模式也比较常用。最常见的应用场景是,利用 阅读全文
posted @ 2021-06-22 10:33 hochan_100 阅读(202) 评论(0) 推荐(0)
摘要:上一节课中,我们学习了模板模式的原理、实现和应用。它常用在框架开发中,通过提供功能扩展点,让框架用户在不修改框架源码的情况下,基于扩展点定制化框架的功能。除此之外,模板模式还可以起到代码复用的作用。 复用和扩展是模板模式的两大作用,实际上,还有另外一个技术概念,也能起到跟模板模式相同的作用,那就是回 阅读全文
posted @ 2021-06-22 10:10 hochan_100 阅读(324) 评论(0) 推荐(0)
摘要:上两节课我们学习了第一个行为型设计模式,观察者模式。针对不同的应用场景,我们讲解了不同的实现方式,有同步阻塞、异步非阻塞的实现方式,也有进程内、进程间的实现方式。除此之外,我还带你手把手实现了一个简单的 EventBus 框架。 今天,我们再学习另外一种行为型设计模式,模板模式。我们多次强调,绝大部 阅读全文
posted @ 2021-06-22 09:37 hochan_100 阅读(111) 评论(0) 推荐(0)
摘要:上一节课中,我们学习了观察者模式的原理、实现、应用场景,重点介绍了不同应用场景下,几种不同的实现方式,包括:同步阻塞、异步非阻塞、进程内、进程间的实现方式。 同步阻塞是最经典的实现方式,主要是为了代码解耦;异步非阻塞除了能实现代码解耦之外,还能提高代码的执行效率;进程间的观察者模式解耦更加彻底,一般 阅读全文
posted @ 2021-06-21 17:21 hochan_100 阅读(195) 评论(0) 推荐(0)
摘要:我们常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。前面我们已经学习了创建型和结构型,从今天起,我们开始学习行为型设计模式。我们知道,创建型设计模式主要解决“对象的创建”问题,结构型设计模式主要解决“类或对象的组合或组装”问题,那行为型设计模式主要解决的就是“类或对象之间的交互”问题。 阅读全文
posted @ 2021-06-21 15:33 hochan_100 阅读(257) 评论(0) 推荐(0)
摘要:上一节课,我们通过棋牌游戏和文本编辑器这样两个实际的例子,学习了享元模式的原理、实现以及应用场景。用一句话总结一下,享元模式中的“享元”指被共享的单元。享元模式通过复用对象,以达到节省内存的目的。 享元模式在 Java Integer 中的应用 我们先来看下面这样一段代码。你可以先思考下,这段代码会 阅读全文
posted @ 2021-06-21 15:11 hochan_100 阅读(51) 评论(0) 推荐(0)
摘要:上一节课中,我们讲了组合模式。组合模式并不常用,主要用在数据能表示成树形结构、能通过树的遍历算法来解决的场景中。今天,我们再来学习一个不那么常用的模式,享元模式(Flyweight Design Pattern)。这也是我们要学习的最后一个结构型模式。 享元模式原理与实现 所谓“享元”,顾名思义就是 阅读全文
posted @ 2021-06-21 15:00 hochan_100 阅读(73) 评论(0) 推荐(0)
摘要:结构型设计模式就快要讲完了,还剩下两个不那么常用的:组合模式和享元模式。今天,我们来讲一下组合模式(Composite Design Pattern)。 组合模式跟我们之前讲的面向对象设计中的“组合关系(通过组合来组装两个类)”,完全是两码事。 这里讲的“组合模式”,主要是用来处理树形结构数据。这里 阅读全文
posted @ 2021-06-21 14:00 hochan_100 阅读(193) 评论(0) 推荐(0)
摘要:工作中优化时常用的一些命令,死记肯定是记不住的,通常记在小本本上,用到的时候,复制粘贴出来查看 作者:沉默的反补 https://www.bilibili.com/read/cv6295754 出处:bilibili jmap(堆内存分析) 一定要注意,触发Full GC和不触发Full GC的情况 阅读全文
posted @ 2021-06-20 15:36 hochan_100 阅读(30) 评论(0) 推荐(0)
摘要:https://liayun.blog.csdn.net/category_10613855_2.html 阅读全文
posted @ 2021-06-20 08:31 hochan_100 阅读(14) 评论(0) 推荐(0)
摘要:一、Nginx优点 十几年前,互联网没有今天这么火, 软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏多 互联网05年;;;b/s架构 Nginx设计为一个主进程多个工作进程的工作模式,每个进程是单线程来处理多个连接,而且每个工作进程采用了非阻塞I/O来处理多个连接 阅读全文
posted @ 2021-06-19 17:43 hochan_100 阅读(124) 评论(0) 推荐(0)
摘要:查看nginx安装的现有模块指令 /usr/local/nginx/sbin/nginx -V (大写的V) nginx version: nginx/1.13.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) configure argu 阅读全文
posted @ 2021-06-19 17:40 hochan_100 阅读(118) 评论(0) 推荐(0)
摘要:当一台服务器单位时间内访问量很大的时候,服务器压力就会很大,当达到这台服务器的极限,就会崩溃;怎么解决?可以通过nginx的反向代理设置,添加几台同样功能的服务器 分担压力。 nginx实现负载均衡原理,用户访问首先访问到nginx服务器,然后nginx服务器再从应用服务器集群中选择压力比较小的服务 阅读全文
posted @ 2021-06-19 17:37 hochan_100 阅读(59) 评论(0) 推荐(0)
摘要:1)语法规则: location [=|~|~*|^~] /uri/ { … } 构成: 指令 前缀 uri location [=|~|~*|^~] /uri 路由匹配规则,正则匹配,正则表达式 2)location区分普通匹配和正则匹配 用前缀 “~” 和 “~”修饰的为正则匹配 ~ 前缀表示区 阅读全文
posted @ 2021-06-19 17:31 hochan_100 阅读(276) 评论(0) 推荐(0)
摘要:1)日志文件格式配置 nginx服务器在运行的时候,会有各种操作,操作的信息会记录到日志文件中,日志文件的记录是有格式的。那我们如何设置日志文件的格式呢? 使用log_format指令进行配置文件格式 nginx的log_format有很多可选的参数用于指示服务器的活动状态,默认的是: log_fo 阅读全文
posted @ 2021-06-19 17:09 hochan_100 阅读(88) 评论(0) 推荐(0)
摘要:1)虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟 阅读全文
posted @ 2021-06-19 16:28 hochan_100 阅读(53) 评论(0) 推荐(0)
摘要:worker_processes:表示开启nginx的worker进程的个数,nginx启动会开两种进程,master进程用来管理调度,worker进程用来处理请求; 上面表示两种设置方法,比如 方法一:worker_processes auto; 表示设置服务器cpu核数匹配开启nginx开启的w 阅读全文
posted @ 2021-06-19 16:12 hochan_100 阅读(1106) 评论(0) 推荐(0)
摘要:以哪个用户,运行nginx应用 nobody是个低权限用户,为了安全 user nobody; nginx进程数 启动进程,通常设置成 cpu的核数 查看cpu核数 cat /proc/cpuinfo worker_processes 1; 全局错误日志 nginx的error_log类型如下(从左 阅读全文
posted @ 2021-06-19 15:23 hochan_100 阅读(77) 评论(0) 推荐(0)
摘要:把服务器从低版本升级为高版本,强行停止服务器,会影响正在运行的进程。 平滑升级不会停掉正在进行中的进程,这些进程会继续处理请求。但不会再接受新请求,这些老的进程在处理完请求之后 会停止。此平滑升级过程中,新开的进程会被处理。 一)平滑升级 进入nginx可执行程序的目录 cd /usr/local/ 阅读全文
posted @ 2021-06-19 15:13 hochan_100 阅读(60) 评论(0) 推荐(0)
摘要:一)nginx命令 1)nginx启动 指令:nginx程序 -c nginx配置文件 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 2)nginx重启 cd /usr/local/nginx/sbin 重启 ./ng 阅读全文
posted @ 2021-06-19 11:34 hochan_100 阅读(179) 评论(0) 推荐(0)
摘要:正向代理 用户要访问服务器C,但因为网络原因无法访问;但服务器A可以访问服务器C。这样用户可以把服务器A设置为正向代理服务器。由服务器A去请求服务器C,然后服务器A把数据返回会用户。 反向代理 用户需要访问一些服务器应用,但对方不想把服务器应用地址暴露给用户,这样可以确保安全。那用户如果访问呢?可以 阅读全文
posted @ 2021-06-19 11:31 hochan_100 阅读(28) 评论(0) 推荐(0)
摘要:1、Nginx下载:nginx-1.13.0.tar.gz,下载到:/opt/softwares/ $ wget http://nginx.org/download/nginx-1.13.0.tar.gz 2、Nginx解压安装: $ tar -zxvf nginx-1.13.0.tar.gz -C 阅读全文
posted @ 2021-06-19 09:58 hochan_100 阅读(146) 评论(0) 推荐(0)
摘要:前面我们已经学习了代理模式、桥接模式、装饰器模式、适配器模式,这 4 种结构型设计模式。今天,我们再来学习一种新的结构型模式:门面模式。门面模式原理和实现都特别简单,应用场景也比较明确,主要在接口设计方面使用。 如果你平时的工作涉及接口开发,不知道你有没有遇到关于接口粒度的问题呢? 为了保证接口的可 阅读全文
posted @ 2021-06-18 17:43 hochan_100 阅读(140) 评论(0) 推荐(0)
摘要:今天,我们再来学习一个比较常用的结构型模式:适配器模式。这个模式相对来说还是比较简单、好理解的,应用场景也很具体,总体上来讲比较好掌握。 关于适配器模式,今天我们主要学习它的两种实现方式,类适配器和对象适配器,以及 5 种常见的应用场景。同时,我还会通过剖析 slf4j 日志框架,来给你展示这个模式 阅读全文
posted @ 2021-06-18 17:07 hochan_100 阅读(225) 评论(0) 推荐(0)
摘要:上一节说到了桥接模式,桥接模式有两种理解方式。第一种理解方式是“将抽象和实现解耦,让它们能独立开发”。这种理解方式比较特别,应用场景也不多。另一种理解方式更加简单,类似“组合优于继承”设计原则,这种理解方式更加通用,应用场景比较多。不管是哪种理解方式,它们的代码结构都是相同的,都是一种类之间的组合关 阅读全文
posted @ 2021-06-18 15:14 hochan_100 阅读(138) 评论(0) 推荐(0)
摘要:上次我们学习了第一种结构型模式:代理模式。它在不改变原始类(或者叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。代理模式在平时的开发经常被用到,常用在业务系统中开发一些非功能性需求,比如:监控、统计、鉴权、限流、事务、幂等、日志。 我们再学习另外一种结构型模式:桥接模式。桥接模式的代码实 阅读全文
posted @ 2021-06-18 14:03 hochan_100 阅读(80) 评论(0) 推荐(0)
摘要:作为 Spring 的关键功能支撑,Spring 事件是一个相对独立的点。或许你从没有在自己的项目中使用过 Spring 事件,但是你一定见过它的相关日志。而且在未来的编程实践中,你会发现,一旦你用上了 Spring 事件,往往完成的都是一些有趣的、强大的功能,例如动态配置。 案例 1:试图处理并不 阅读全文
posted @ 2021-06-18 10:45 hochan_100 阅读(315) 评论(0) 推荐(0)
摘要:创建型模式主要解决对象的创建问题,封装复杂的创建过程,解耦对象的创建代码和使用代码。 其中,单例模式用来创建全局唯一的对象。工厂模式用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建复杂对象,可以通过设置不同的可选参数,“定制 阅读全文
posted @ 2021-06-17 18:18 hochan_100 阅读(99) 评论(0) 推荐(0)
摘要:当一个系统采用的切面越来越多时,因为执行顺序而导致的问题便会逐步暴露出来 1:错乱混合不同类型的增强 还是沿用上节课的宿舍管理系统开发场景。 这里我们先回顾下,你就不用去翻代码了。这个宿舍管理系统保护了一个电费充值模块,它包含了一个负责电费充值的类 ElectricService,还有一个充电方法 阅读全文
posted @ 2021-06-17 16:45 hochan_100 阅读(73) 评论(0) 推荐(0)
摘要:对于熟悉 JavaScript 语言的前端程序员来说,原型模式是一种比较常用的开发模式。这是因为,有别于 Java、C++ 等基于类的面向对象编程语言,JavaScript 是一种基于原型的面向对象编程语言。即便 JavaScript 现在也引入了类的概念,但它也只是基于原型的语法糖而已。不过,如果 阅读全文
posted @ 2021-06-17 12:22 hochan_100 阅读(62) 评论(0) 推荐(0)
摘要:上次聊了工厂模式,另外一个比较常用的创建型设计模式,Builder 模式,中文翻译为建造者模式或者构建者模式,也有人叫它生成器模式。 实际上,建造者模式的原理和代码实现非常简单,掌握起来并不难,难点在于应用场景。比如,你有没有考虑过这样几个问题:直接使用构造函数或者配合 set 方法就能创建对象,为 阅读全文
posted @ 2021-06-17 10:24 hochan_100 阅读(112) 评论(0) 推荐(0)
摘要:案例 1:构造器内抛空指针异常 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public clas 阅读全文
posted @ 2021-06-16 16:16 hochan_100 阅读(120) 评论(0) 推荐(0)
摘要:当创建对象是一个“大工程”的时候,我们一般会选择使用工厂模式,来封装对象复杂的创建过程,将对象的创建和使用分离,让代码更加清晰. 那何为“大工程”呢?一种是创建过程涉及复杂的 if-else 分支判断,另一种是对象创建需要组装多个其他类对象或者需要复杂的初始化过程。 工厂模式和 DI 容器有何区别? 阅读全文
posted @ 2021-06-16 15:02 hochan_100 阅读(43) 评论(0) 推荐(0)
摘要:除了单例模式,还有另外一个比较常用的创建型模式:工厂模式 一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。不过,在 GoF 的《设计模式》一书中,它将简单工厂模式看作是工厂方法模式的一种特例,所以工厂模式只被分成了工厂方法和抽象工厂两类。实际上,前面一种分类方法更加常见。 阅读全文
posted @ 2021-06-16 09:37 hochan_100 阅读(104) 评论(0) 推荐(0)
摘要:package com.company.bsearch.jdk8; /** * @author huoziyang * @version 1.0 * @date 2021/6/15 10:47 */ public class User { private int id; private String 阅读全文
posted @ 2021-06-15 15:59 hochan_100 阅读(64) 评论(0) 推荐(0)
摘要:1:@Value 没有注入预期的值 在装配对象成员属性时,我们常常会使用 @Autowired 来装配。但是,有时候我们也使用 @Value 进行装配。不过这两种注解使用风格不同,使用 @Autowired 一般都不会设置属性值,而 @Value 必须指定一个字符串值,因为其定义做了要求,定义代码如 阅读全文
posted @ 2021-06-15 15:57 hochan_100 阅读(115) 评论(0) 推荐(0)
摘要:Spring @Autowired 提及 Spring 的优势或特性,我们都会立马想起“控制反转、依赖注入”这八字真言。而 @Autowired 正是用来支持依赖注入的核心利器之一。表面上看,它仅仅是一个注解,在使用上不应该出错。但是,在实际使用中,我们仍然会出现各式各样的错误,而且都堪称经典。所以 阅读全文
posted @ 2021-06-15 15:10 hochan_100 阅读(172) 评论(0) 推荐(0)
摘要:案例 1:隐式扫描不到 Bean 的定义 Spring Boot 的默认扫描规则 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration 阅读全文
posted @ 2021-06-15 14:42 hochan_100 阅读(145) 评论(0) 推荐(0)
摘要:在面向对象编程中,抽象类和接口是两个经常被用到的语法概念,是面向对象四大特性,以及很多设计模式、设计思想、设计原则编程实现的基础。比如,我们可以使用接口来实现面向对象的抽象特性、多态特性和基于接口而非实现的设计原则,使用抽象类来实现面向对象的继承特性和模板设计模式等等。 这两个语法概念不仅在工作中经 阅读全文
posted @ 2021-06-10 15:26 hochan_100 阅读(62) 评论(0) 推荐(0)
摘要:create temporary table temp_t like t1; alter table temp_t add index(b); insert into temp_t select * from t2 where b>=1 and b<=2000; select * from t1 j 阅读全文
posted @ 2021-06-10 12:21 hochan_100 阅读(217) 评论(0) 推荐(0)
摘要:什么是面向过程编程与面向过程语言? 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将对象、抽象、继承、多态四个特性,作为代码设计和实现的基石。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能和方便地实现面向对象编程四大特性的编程语言。 区别于面向对象 阅读全文
posted @ 2021-06-09 18:16 hochan_100 阅读(104) 评论(0) 推荐(0)
摘要:实验环境 CREATE TABLE `t2` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `a` (`a`) ) ENGINE=InnoDB; 阅读全文
posted @ 2021-06-09 10:36 hochan_100 阅读(85) 评论(0) 推荐(0)
摘要:今天来看一下pig的认证中心模块。页面如下: 在src/api/login.js 可查看前端登录的关键代码(由于博主一直从事后端开发工作,前端知识没有成体系化,有不对的地方勿喷 = = ) ##前端登录调用api export const loginByUsername = (username, p 阅读全文
posted @ 2021-06-08 10:21 hochan_100 阅读(1040) 评论(0) 推荐(0)
摘要:如何给字符串字段建立合适的索引? MySQL支持前缀索引,前缀索引是指可以取原索引的前多少个字节作为一个新的索引,而取前多少个字节取决于你数据的情况,前缀索引的优势在于占用空间会更小。而坏处在于使用前缀索引会导致查询语句读数据的次数变多。 前缀索引的长度如何定义? 对于前缀索引,定义好长度,就可以做 阅读全文
posted @ 2021-06-06 15:53 hochan_100 阅读(37) 评论(0) 推荐(0)
摘要:唯一索引和普通索引,如何选型? 部分转载于 https://time.geekbang.org/column/article/70848 对于同一笔类似的查询操作,使用唯一索引和普通索引的性能差距,微乎其微! 而对于同一笔类似的更新操作,首先说一下mysql是如何完成这个数据页更新的。当更新一个数据 阅读全文
posted @ 2021-06-06 15:50 hochan_100 阅读(28) 评论(0) 推荐(0)
摘要:丁奇《Mysql实战45讲》 理解 在RR隔离级别下,我们说过事务开启后会创建一个视图read-view,之后事务执行期间,即使有其他事务修改了数据,并不影响我们见到的,因为我们看的是这个read-view。 但是,如果当我们要更新一行的数据时,恰好这行被另外一个事务锁住,我们进入等待队列,当这个事 阅读全文
posted @ 2021-06-06 15:48 hochan_100 阅读(34) 评论(0) 推荐(0)
摘要:幻读现象 幻读指的是一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没有看到的行。 (仅在“当前读”的情况下才会出现) 幻读会带来什么问题? 1.语义上,破坏了锁声明,明明锁住?为什么可以修改我锁住的所有满足条件行, 2.数据一致性 如何解决幻读? 锁上所有扫描到的行?事实证明这样 阅读全文
posted @ 2021-06-06 15:46 hochan_100 阅读(25) 评论(0) 推荐(0)
摘要:按照锁影响范围可分为全局锁,表级锁,行级锁 全局锁:该锁会对整个数据库实例锁上,MySQL提供了一个加全局读锁的方法,命令是Flush tables with read lock ,使用这个命令之后,其他线程的以下语句会被阻塞:DDL,DML;它的典型应用场景是做全量的数据库逻辑备份;但是,让整个库 阅读全文
posted @ 2021-06-06 15:43 hochan_100 阅读(28) 评论(0) 推荐(0)
摘要:代码规范是使代码达到可读的关键。这里根据笔者自己的一些经验和实践,列出一些最需要遵循的Java编码规范。 1.变量命名按照Java通用方式Camel命名法。常量尤其注意使用全大写_(下划线链接)单词的方式,如USER_KEY 2. 变量和类命名务必具有意思,能让人一眼看出表示的意思。如userLis 阅读全文
posted @ 2021-06-06 15:41 hochan_100 阅读(238) 评论(0) 推荐(0)
摘要:官方jdk,oracle 需要登陆才能下载,网速还贼慢。 华为云各版本高速下载通道:https://repo.huaweicloud.com/java/jdk/ 阅读全文
posted @ 2021-06-06 15:39 hochan_100 阅读(58) 评论(0) 推荐(0)