- 博客(18)
- 资源 (1)
- 收藏
- 关注
原创 bio与nio
bio哪些操作会阻塞 而nio如何优化 - bio阻塞:(apue P388 14.2) 如果某些类型文件(读管道、终端设备和网络设备)的数据不存在,则读操作可能会使调用者永远阻塞(可能读的时候,网络数据还没有到来) 如果某些数据不能被相同类型文件立即接受,则写操作可能会使调用者永远阻塞(可能写的时候,网络设备中的数据未完全写出去,需要排队) 在某种条件发生之前打开某些类型文件,可能会发生阻塞(...
2019-03-13 10:54:49
287
原创 manacher算法
Manacher 回文串算法 因为回文串可能有奇数个字符,也有可能有偶数个字符,奇数个字符时,处理较简单,找到轴往两边扩展就可以,而偶数个的轴有两个;所以,首先将字符串中每个字符之间插入#,那么原字符串就会变成奇数个字符。 基本的求解回文串的方法:以一个字符为轴向两边扩展,两字符就继续扩 基本的算法,求解i处的回文串是无法使用i之前的结论的,而manacher的快速正是因为可以基于之前的结果快速...
2019-03-13 10:53:18
252
原创 kmp算法
kmp 字符串匹配算法 s1为原字符串,长n,s2为目的字符串长度m,n>=m,想在s1中找到连续的n2 n*m级别的基本算法:从s1第i位开始,检查接下来的m位是否与s2相同,相同匹配成功,否则接着从i+1开始继续匹配m个字符。 kmp算法目的是,第i次匹配可以使用i-1次匹配失败的结果 假如当前s1匹配到c1处,s2匹配到c2处,尝试复用c2之前的匹配结果,s2的前c2个字符串是与s...
2019-03-13 10:50:22
339
原创 jvm与锁优化
锁优化 自旋锁和自适应锁: 共享数据的锁定短的话,挂起和恢复线程并不值得,当遇到共享数据被锁定时,先不放弃cpu执行时间,等待看看持有锁的线程释放很快释放锁;为了让线程等待,我们只需让线程执行一个忙循环(空循环,自旋),这就是自旋锁 而假如锁定时间长的话,忙等待需要占用的时间浪费,因此自旋的等待时间有限度,如果自旋超过限定次数仍然没有获取锁,则需要使用传统的方式挂起线程 jdk1.6默认开启自...
2019-03-13 10:46:20
205
原创 线程安全——定义及实现
线程安全级别 安全程度从强到弱:不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 不可变 不可变的对象一定是线程安全的(前提this引用没有逃逸) 基本类型只要定义未final,就可以保证不可变 如果是引用类型,需要保证对象的状态不会受对象行为影响;所以引用类型的不安全在于可能线程一判断某对象状态后,另一线程进行了改变。 符合不可变要求的类型:String、Number的子类:Integ...
2019-03-13 10:45:26
563
原创 jmm与并发
JMM 主内存和工作内存 主内存 包括:实例字段、静态字段、和构成数组对象的元素;但不包括局部变量和方法参数,因为他们是线程私有的 所有变量都存储在主内存 工作内存是线程使用到的变量的主内存的副本,线程对变量的操作必须在工作内存中进行 内存交互操作 lock unlock read load use assign store write 操作规则: volatile ——jv...
2019-03-13 10:44:24
317
原创 js点击事件报错 not a function
js 点击事件 报错 Uncaught TypeError: submit is not a function
2018-08-14 20:39:42
6091
原创 jvm学习笔记(一):内存模型
前段时间看了一点《深入理解jvm》,记下笔记,总结一下自己的理解 内存模型 黑色的部分(方法区和堆)为所有线程共享,白色部分(虚拟机栈、本地方法栈、pc计数器)为线程私有 pc计数器 学过计算机组成原理的应该对这个有印象。pc计数器存放的是计算机下一条指令的地址,计算机读取pc计数器中的值,依据这个值去指令寄存器读出下一条指令,然后执行。该区域为线程私有。 虚拟机栈 ...
2018-07-31 12:28:45
249
原创 spring事务传播行为
spring的事务传播行为分七种,基本上见名知义。 名称 行为 PROPAGATION_REQUIRED 当前有事务就加到当前事务里,否则新开一个事务 PROPAGATION_REQUIRES_NEW 当前有事务就挂起;之后新建一个事务 PROPAGATION_SUPPORTS 当前有事务就加入当前事务 PROPAGATION_...
2018-07-31 09:02:48
251
原创 mybatis与存储过程
我想在删除多个用户时返回删除失败的用户的id 正常实现需要多次调用Mapper,会比较慢 可以mybatis实现一个方法里面包含多个sql语句 但这样实现不了我的需求 于是选择用存储过程 先写个存储过程并测试一下,再用mybatis调用就ok了 存储过程 - 存储过程需要在调用之前创建好,等待调用就好 - 存储过程的create语法 - 存储过程的基本思...
2018-07-25 10:54:31
3392
原创 SOA与微服务
写一点自己学习之后的理解,主要是为了加深理解以及作为日后回想的依据; 我并没有实际工业生产经验,写的不对的地方请多指教。 发展历史 从单机系统到分布式 SOA 微服务 SOA与微服务的区别 发展历史 从单机系统到分布式 应用程序开始时规模不大,单机就可以支持;但随着用户需求的不断增加,单一台服务器已经无法支撑;于是将一个大型的系统 拆分到多个服务器上...
2018-07-25 09:15:03
324
原创 php中查询数据库含通配符时需要转义的问题
php中查询数据库含通配符时需要转义的问题问题描述:博主在测试数据库模糊查询功能时发现,查询内容包括 下划线’_’,百分号’%’,反斜杠’\’等特殊符号时会出现错误的查询结果,下划线,百分号会被当作通配符,反斜杠会被当作转义符。 博主想到可以在后台对接收的数据进行转义。但是查百度找到的函数都不能用 ,所以想要自己写个函数进行转义,其实就是在百分号’%’,下划线’_’等字符的前面加上转义字符’\’
2017-07-21 11:00:18
1313
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人