随笔分类 - java
摘要:由于用户提交订单后,用户同时又可以再下相同的一单,这类不算为重复提交。规避的是一份订单重复提交两次。 思路1: 创建订单服务保证其幂等性。后端添加订单号服务,在用户订单页面返回给页面唯一的订单号,在提交订单时传向后端订单号, 同时数据库中订单表的订单号字段设置为唯一索引,若已提交,则抛出异常,从而避
阅读全文
摘要:死锁定义为一组互相竞争资源的线程因互相等待,导致永久阻塞的情况。 即; 如何解决死锁: 1、一次性申请所有的资源,直到拿到所有资源的锁再进行操作 2、主动释放其所占有的资源,synchronized是做不到的,使用lock 3、按资源id的从小到大的顺序去申请锁
阅读全文
摘要:1、为何高并发下容易oom 1)首先我们了解当执行垃圾回收的时候,会导致进程暂停,从而使我们的程序卡死;进程长时间暂停,又会导致大量的请求积压等待处理,垃圾回收刚刚结束,更多的请求立刻涌进来,迅速占满内存,再次被迫执行垃圾回收,进入了一个恶性循环。如果垃圾回收的速度跟不上创建对象的速度,还可能会产生
阅读全文
摘要:1、协议抽象实体 1 package protocal.model; 2 3 import lombok.Data; 4 5 /** 6 * @author liupengr 7 * @date 2020/2/12 18:21 8 */ 9 @Data 10 public abstract clas
阅读全文
摘要:1、序列化接口 1 package serializer.service; 2 3 /** 4 * 序列化接口 5 * 6 * @author liupengr 7 * @date 2020/2/12 18:17 8 */ 9 public interface Serializer { 10 11
阅读全文
摘要:目前有很多通用的序列化实现,比如java和go都内置了序列化实现,还有一些开源的序列化框架,比如Google 的 Protobuf、Kryo、Hessian 等, 以及像json,二进制这种标准会的数据格式也可以作为序列化的实现。 首先我们选用数列化实现有哪几个维度呢? 序列化后数据要有良好的可读性
阅读全文
摘要:1、同步网络IO模型 网络IO模型分两段,一个write,一个read,write操作我们不需要考虑,这里我们看read操作。 接受线程会一直阻塞,当有数据到来的时候,操作系统会先把数据写入接收缓存,然后给接收数据的线程发一个通知, 线程收到通知后结束等待,开始读取数据。处理完这一批数据后,继续阻塞
阅读全文
摘要:1、用户空间和内存空间 为了不让用户线程直接操作内核,保护内核的安全,操作系统将虚拟空间分为两部分,一部分为内核空间,一部分为用户空间。 针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x
阅读全文
摘要:类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三个部分统称为连接(linking) 1、类何时进行初始化 a,创建实例 b,调用非final的静态方法和静态变量 c,初始化类时,会先初始化父类
阅读全文
摘要:javac编译器的作用就是将符合java语言规范的源代码转化成符合java虚拟机规范的java字节码 经历:词法分析器->语法分析器->语义分析器->编译字节码 四个过程生成字节码文件 1、词法分析:javacPaser根据java语言规范判断出哪些是动词,名词,标点符号之类,生成规范的token流
阅读全文
摘要:1、基础类型有byte short int long char boolean float double八种。 其中byte short int long char 的包装类型是存放在常量池(用来维护该类型所用到常量的有序集合)中的,浮点类型未实现常量池。 常量池存放的是>=-128和<=127中的
阅读全文
摘要:/** * 加密 * * @param content 需要加密的内容 * @param password 加密密码 * @return */ public static String encrypt(String content, String password) { try {...
阅读全文
摘要:http://www.cnblogs.com/ITtangtang/p/3968093.html
阅读全文
摘要:1、项目中需要检测到几台远程服务器的参数,差了很多资料,决定用的这个2、jar包:ganymed-ssh2-build210.jar3、原理:向远程linux服务器发送脚本命令,得到该台服务器的信息4、代码如下:public class Basic { public static void m...
阅读全文
摘要:替换字符串 replace ${s?replace(‘ba’, ‘XY’ )} ${s?replace(‘ba’, ‘XY’ , ‘规则参数’)}将s里的所有的ba替换成xy 规则参数包含: i r m s c f 具体含义如下: i: 大小写不区分. f: 只替换第一个出现被替换字符串的字...
阅读全文
摘要:public String clearHtmlText(String inputString) { if (StringUtils.isBlank(inputString)) { return ""; } String html...
阅读全文
摘要:1、引包 2、页面中引用 3、js加载$(document).ready(function(){ editor = new UE.ui.Editor(); editor.render("editor"); editor.ready(functi...
阅读全文
摘要:private void setDataValidationList(short firstRow,short endRow,short firstCol, short endCol,String data,HSSFSheet sheet ){ //设置下拉列表的内容 ...
阅读全文
摘要:项目中写hql语句 出现ORA-01791: 不是 SELECTed 表达式问题。语句如下:select distinct(name) where student order by number这样就会报错。原因是: SELECT语句中含有DISTINCT关键字或者有运算符时,排序用字段必须与SE...
阅读全文

浙公网安备 33010602011771号