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