自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 Netty学习笔记

阻塞与同步1)阻塞(Block)和非租塞(NonBlock):阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候阻塞:往往需要等待缞冲区中的数据准备好过后才处理其他的事情,否則一直等待在那里。非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回2)同步(Synchronization)和异步(Async)的方式:同步:应用程序要直接参与IO读写的操作。异步:所有的IO读写交给搡作系统去处理,应

2020-05-18 22:44:47 212

原创 中断线程的正确姿势

中断线程的正确姿势​ suspend、resume、stop方法可以将对应的线程赞同他、恢复、停止,但是现在这些API都不再推荐使用,原因是suspend会占用着资源进入睡眠状态,这样容易引发死锁问题,stop方法在终结一个线程时不会保证线程的资源被正确释放。​ 要中断一个线程最好的办法时使用线程的interrupt方法,它可以理解为线程的一个标识位属性。其他线程通过调用该线程的interru...

2020-04-17 21:26:11 148

原创 Notify、NotifyAll、Wait实现线程将的协作

Notify、NotifyAll、Wait实现线程将的协作线程间的协作wait/notify和notifyAll 的使用场景(生产者/消费者)消费者(等待方):获取对象的锁是否有商品,没有着调用wait方法进行等待条件满足则执行业务逻辑生产者(接收方):获取对象的锁补充商品(改变条件)通知所有在该对象上等待的线程代码实现:public class WaitNotif...

2020-04-17 21:19:12 125

原创 JVM学习笔记(3)

1、GC调优掌握GC相关的JVM参数,会基本的空间调整掌握相关工具重点:调优与应用和环境有关,没有统一的规则查看虚拟机运行参数“jdk下bin目录下java命令的绝对地址” -XX:+PrintFlagFinal -version | findstr “GC”1_1、调优领域内存锁竞争cpu占用io1_2、调优目标低延迟还是高吞吐量,选择合适收集器CMS G1 ...

2020-04-05 22:51:44 194

原创 JVM学习笔记(2)

垃圾回收​ 在Java内存运行时区域的程序计数器、虚拟机栈、本地方法栈都是随线程而生,随线程而灭,这些区域内不需要过多的考虑回收和问题,因为在方法结束或者线程结束时,内存自然就跟随回收了。​ 垃圾收集器主要关注的区域是Java堆和方法区,因为只有程序处于运行期间才知道会创建哪些对象,这部分内存的分配和回收都是动态的。​ 垃圾收集器的主要目的就是区分哪些对象“活着”哪些对象已经“死去”1、引...

2020-04-04 01:48:16 101

原创 JVM学习笔记(1)

JVM学习笔记(1)一、程序计数器​ 程序计数器可以看作是当前线程所执行的字节码的行号指示器,字节码解析器工作时会通过改变这个计数器的值来读取下一条要执行的字节码指令。特点:程序计数器是线程私有的在JVM规范中唯一一个没有规定OOM情况的区域二、虚拟机栈​ 每个线程运行时所需要的内存,称为虚拟机栈,虚拟机栈是用于存储与维护方法调用时所创建的栈帧,而栈帧则保存了局部变量表、操作数栈...

2020-04-03 01:18:37 194 1

原创 HeadFirest设计模式学习笔记

设计原则1、经常会发生变化的部分应该从整体中抽取并封装起来,以便以后可以很轻易的对这部分代码进行改动或者是扩充,而不会影响到不需要变化的其他部分。2、针对接口编程,而不是针对实现编程。3、多用组合,少用继承。组合:将适当的行为对象组合起来构成一个整体,善于利用接口编程,使组合建立的系统具有强大的弹性4、为了交互对象之间的松耦合而努力(当两个对象之间松耦合,他们仍然可以交互,但是不清楚批次的...

2020-03-28 15:35:52 347

转载 TCP建立连接时为什么需要随机的初始序号

如果TCP在建立连接时每次都选择相同的、固定的初始序号,那么设想以下的情况:假定主机A和B频繁地建立连接,传送一些TCP报文段后,再释放连接,然后又不断地建立新的连接、传送报文段和释放连接。假定每一次建立连接时,主机A都选择相同的、固定的初始序号,例如,选择1。假定主机A发送出的某些TCP报文段在网络中会滞留较长的时间,以致造成主机A超时重传这些TCP报文段。假定有一些在网络中滞留时间较...

2020-03-18 14:38:14 2629 1

原创 Maven 学习笔记

传统工程存在的问题1、一个项目就是一个工程如果项目非常庞大,就不适合继续使用package来划分模块。最好是每一个模块对应一个项目,利于分工协作。借助于maven就可以将一个项目拆分成多个工程。2、项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下带来的问题:同样的jar包文件重复出现在不同的项目工程中,一方面浪费存储空间,另外也让工程比较臃肿。借助Mav...

2020-03-03 08:41:38 258

原创 Docker学习笔记

1、Docker 为什么出现一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员都是考验Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案。环境配置如此麻烦,换一台机器,就要重来一次,费力费时。很多人想到,能不能从根本上解...

2020-03-02 17:30:03 338

原创 Spring AOP

AOP(Aspect Oriented Programming)面向切面编程AOP指的是在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的一种编程方式场景​ 计算器在运行计算方法的时候进行日志记录添加日志的方式1、直接编写在方法内部,不推荐。日志模块相当于系统的辅助模块(可有可无)不应该与核心模块耦合在一起public class CalculatorImpl impl...

2020-02-02 19:53:27 91

原创 Spring 事务控制

声明式事务事务事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。事务的特性原子性原子性指的是事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。一致性一致性是指事务执行前后数据的完整性要保持一致。隔离性隔离性是指多个用户并发访问数据库的时候,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间的数据要相互隔离。持久性持久性是指一个事务一旦被...

2020-02-02 19:51:01 101

原创 Sprig AOP

AOP(Aspect Oriented Programming)面向切面编程AOP指的是在程序运行期间,将某段代码动态的切入到指定方法的指定位置进行运行的一种编程方式场景​ 计算器在运行计算方法的时候进行日志记录添加日志的方式1、直接编写在方法内部,不推荐。日志模块相当于系统的辅助模块(可有可无)不应该与核心模块耦合在一起public class CalculatorImpl impl...

2020-02-02 19:42:18 87

原创 Spring IOC

Spring简介Spring是一个IOC和AOP的容器框架,可以管理所有的组件Spring的优良特性:非侵入式,基于Spring开发的应用中的对象可以不依赖于Spring的API依赖注入,IOC面向切面编程,AOP容器,Spring是一个容器,它管理应用对象的生命周期组件化,使用简单的组件配置组合复杂的应用一站式,在IOC和AOP的基础上可以整合各种优秀的第三方库Spring...

2020-02-02 19:40:17 109

原创 MyBatis学习笔记

mybatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数...

2020-01-11 13:46:06 247

原创 位运算

位运算1、and运算 &相同位的两个数字都为1,则结果为1;若有一个不为1,则结果为0and 运算通常用于二进制的取位操作。例如,一个数字与1进行and运算结果就是取该数的末位。判断一个数的奇偶性,可以通过让该数与1进行and运算,结果为1则为奇数,结果为0则为偶数10101 &01110结果为001002、or运算 |相同位的两个数字,只要一个为1,则结果...

2019-10-08 14:38:36 350

原创 JDBC入门

JDBC(Java DataBase Connectivity)概念:Java语言操作数据库JDBC本质:是一套操作所有关系型数据库的规则这套规则即接口,然后各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们可以使用这套接口编程,真正执行的是jar包中的实现类。步骤:1.导入驱动jar包2.注册驱动3.获取数据库的链接对象 Connection4.定义SQL5.获取执行SQ...

2019-09-22 14:40:39 81

原创 JavaScript入门

JavaScript1、概念:一门客户端脚本语言,运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎2、脚本语言:不需要编译,直接就可以被浏览器解析运行3、功能:可以来增强用户和页面的交互过程,让页面拥有动态效果JavaScript = ECMAScript + JavaScript(BOM,DOM),ECMA(欧洲计算机制作商协会)定义了所有计算机客户端脚本语言的标准...

2019-09-17 21:03:37 103

原创 CSS入门

CSS:页面美化和布局控制1、概念:Cascading Style Sheets(层叠样式表)层叠:多个样式可以作用在同一个HTML元素上2、好处:(1)功能强大(2)将内容的展示和样式的控制分离①降低耦合度3、CSS的使用(1)内联样式:在标签内使用style属性指定css代码①如:hello(2)内部样式:在head标签内定义style标签如:(3)外部样式:在外部定义...

2019-09-15 17:32:58 81

原创 HTML入门

HTML概念:Hyper Text Markup Language 超文本标记语言,它是最基础的网页开发语言超文本:是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本标记语言:由标签构成的语言,如HTML,XML语法:1、html文档后缀名.html或.htm2、标签分类:(1)围堵标签:有开始便签和结束标签(2)自闭合标签:开始便签和结束标签在一起3、标签可以嵌套...

2019-09-10 21:05:03 65

原创 《MySQL必知必会》学习笔记

基础表中每一行都应该有可以唯一标识自己的一列(或一组列)Primary key 唯一标识表中每一行的这个列称为主键主键的最好习惯:1.应该保证每张表都拥有一个主键2.不更新主键列的值3.不重用主键的值在执行任意数据库操作前,都需要选择一个数据库。为此,使用USE 关键字(USE 库名)SQL语句规范:所有SQL关键字大写,所有表名和列名等使用小写了解数据库和表Show data...

2019-09-07 16:56:38 230

原创 Java泛型学习笔记

泛型泛型实现了参数化类型的概念,使得代码可以引用与多种类型学习泛型的难点:了解Java泛型的局限是什么,以及为什么会有这些限制,Java泛型的边界在哪里。理解边界所在,才能成为程序高手Java泛型的核心概念:告诉编译器想使用什么类型,然后编译器帮你处理一切细节缘起ArrayList list = new ArrayList() ;list.add(new Integer(32));...

2019-09-04 20:32:21 318

Redis-x64-3.2.100.msi

外网现在太慢了Redis-x64-3.2.100 .msi!

2019-10-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除