3 阿梨若苦

尚未进行身份认证

学如逆水行舟 不进则退

等级
TA的排名 8w+

深入理解 Spring 事务原理

一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:    获取连接 Connection con = DriverManager.getConnection()    开启事务con.setAutoCommit(true/false);    执行CRUD   ...

2018-07-08 19:29:24

数据库优化

一、数据库优化法则二、数据库优化之SQL语句    (一)操作符    (二)SQL书写    (三)SQL语句中索引利用    (四)更多三、数据库优化之表结构    (一)列类型    (二)字符编码    (三)适度拆分    (四)适度冗余四、数据库优化之索引    (一)索引设计    (二)索引副作用    (三)索引是否越多越好五、数据库优化之缓存    (一)Query Cache...

2018-07-07 13:05:18

数据库优化之列选取原则

今天面试的时候遇到一个问题“数据库优化”。感觉是个大方面,今天总结一下列选取的原则。列选择原则:1:字段类型优先级 整型 > date,time > char>varchar > blob原因:整型: 定长,没有国家/地区之分,没有字符集的差异。time定长,运算快,节省空间. 考虑时区,写sql时不方便 where > ‘2005-10-12’;char 定长, 考...

2018-07-05 22:24:14

Ajax跨域请求Cookie无法携带

一、问题在做前后端分离时,前端用ajax发送请求,后端接收请求并设置cookie返回,但是在调试的时候始终无法将cookie写入到浏览器,也就是始终无法使response携带cookie返回。最终发现是ajax问题,ajax默认不支持携带cookie。二、解决发现了问题就要解决:(1)修改ajax参数,使之支持跨域携带cookie:xhrFields   : {withCredentials: t...

2018-05-16 11:28:44

前后端分离开发跨域问题

一、问题前后端分离开发的时候会有跨域问题的出现:XMLHttpRequest cannot load http://localhost:8080/user/get_user_info.do. The 'Access-Control-Allow-Origin' header has a value 'http://localhost:8080' that is not equal to the su...

2018-05-15 22:16:06

WEBPACK_ENV不是内部或外部命令,也不是可运行的程序 或批处理文件

一、问题要运行的npm script如下(主要看写法):"scripts": { "dev": "WEBPACK_ENV=dev webpack-dev-server --inline --port 8088" },在windows下执行npm run dev命令时出现报错:WEBPACK_ENV不是内部或外部命令,也不是可运行的程序 或批处理文件二、解决这其实是两条命令,可以在lin...

2018-05-15 13:30:55

笔记---Module not found: Error: Cannot resolve module 'hogan'

一、问题已经安装并且引入了hogan包,但是在运行的时候还是报错:Module not found: Error: Cannot resolve module 'hogan'  in ...二、解决根据官方文档,hogan新版本引入方式为var Hogan = require("hogan.js");问题解决。...

2018-05-15 13:19:40

webpack配置环境变量

忙了一下午终于解决了。用npm 安装webpack:1.全局安装webpacknpm install webpack -g 2.当前目录安装webpacknpm install webpack@1.15.0 --save-dev3.在webpack -v时出现“webpack不是内部命令...”提示找个很多文章,终于解决了!下面按步骤来写:1.前提:已安装nodejs,并且已配置环境变量,dos窗...

2018-05-15 00:09:35

分布式系统---一致性hash算法

一、一致性hash算法在分布式系统中广泛应用广泛,像redis、memcached等分布式系统采用的都是一致性hash算法。一致性hash算法的基本思想是将对象和和cache都映射到同一个hash数值空间(0~2^32-1)中,并且使用相同的hash算法。接下来我们就来看一下它的实现。二、(1)首先,我们先理解一下环形hash空间。通常hash算法都是将value映射在一个32位的key值中,我们...

2018-05-13 23:16:42

笔记---服务器上自动部署脚本

看到一个蛮清晰的发布脚本,贴上来:echo "===========进入git项目目录 betterlife是自己目录============="cd /developer/git-repository/betterlifeecho "==========git切换分之到v1.0==============="git checkout v1.0echo "==============...

2018-05-13 00:30:26

笔记---linux给某用户赋予某文件权限

红框圈的rw-r--r--表示的是,每三位一组赋予权限,r表示可读,w表示可写,x表示可执行。第一组是用户权限;第二组是用户组权限;第三组是其他人权限。所以rw-r--r--意思是,当前用户有可读,可写权限,用户组有可读权限,其他人有可读权限。如何给用户赋予某文件权限:...

2018-05-12 23:50:56

Java多线程之线程安全策略---并发容器

一、并发容器JUC(java.util.concurrent)并发容器里面提供的线程安全的集合和map。ArrayList--->CopyOnWriteArrayListHashSet--->CopyOnWriteArraySetTreeSet--->ConcurrentSkipListSetHashMap--->ConcurrentHashMapTreeMap---&gt...

2018-05-12 21:57:39

Java多线程之线程安全策略---同步容器

同步容器只是线程安全性更好一些,在代码运行逻辑中并不一定是线程安全的。也就是同步容器本身是线程安全的,但是主要还是注意你的代码逻辑。一、非线程安全的集合对应的同步容器Vector实现了List接口,Vector里面的方法都是用sync修饰过的。Stack也是同步容器,也是使用sync实现同步,继承Vector,里面存储的数据是先进后出。HashTable实现了Map接口,里面方法用sync修饰。二...

2018-05-12 21:18:48

Java多线程之线程安全策略---线程不安全类与写法

一、如果一个类的对象同时可以被多个线程访问,如果不做特殊的同步和并发处理,就会容易表现出线程不安全的对象。接下来,我们来看三组容易类和一种写法,它们经常在编程中遇到。二、StringBuilder和StringBufferJava里面字符串拼接提供了两个类:StringBuilder和StringBuffer(1)看它们在多线程的表现:StringBuilder:@Slf4jpublic cla...

2018-05-12 20:43:55

Java多线程之线程安全策略---不可变对象

一、不可变对象要满足以下几个条件:(1)对象创建以后状态不能修改;(2)对象所有域都时final类型;(3)对象是正确创建的(this引用没有逸出)我们来介绍一下final,Collectons.unmodifiableXXX,Guava的ImmutableXXX二、final(1)修饰类:不能被继承(2)修饰方法:锁定方法不被继承类修改(3)修饰变量:基本类型变量,引用类型变量一个类的priva...

2018-05-12 19:50:09

Java多线程之安全发布对象

一、发布对象与对象逸出发布对象:使一个对象能够被当前范围外的代码使用。对象逸出:一种错误的发布,当对象没有构造完成时,就使它被其他线程所见。(1)不安全地发布对象@Slf4jpublic class UnsafePublish { private String[] states = {"a", "b", "c"}; public String[] getStates() {...

2018-05-12 17:25:25

Java中如何保证线程安全性

一、线程安全在三个方面体现1.原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);2.可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized,volatile);3.有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-before原则)。接下来,依次分析。二、原子性-...

2018-05-12 16:58:10

Java内存模型

一、Java内存模型概念Java内存模型(Java Memory Model,简称JMM)是一种规范,它规范了java虚拟机与计算机内存如何协同工作,规定了一个线程如何和何时可以看到其他线程修改过的共享变量的值,以及在必须时如何同步的访问共享变量。二、JVM内存分配:堆和栈堆(heap):是运行时的数据区,由垃圾回收负责。优势是可以动态的分配内存大小,生存期也不必事先告诉编译器,缺点是存取速度慢(...

2018-05-12 13:38:00

并发,高并发,CPU多级缓存概念

最近一直在学习java并发编程。整理笔记的过程也是对自己考核的过程。一、并发与高并发概念并发:同时有多个线程,【交替】被CPU执行。高并发:保证系统能同时并行处理很多请求的【设计】。可以看到,当谈论并发的时候,我们关注的是多个线程操作相同的资源时,如何保证线程安全,合理利用资源;而谈论高并发时,我们关注的是如果系统在短时间内遇到大量请求(比如淘宝双十一),那么我们如何提高系统的性能(包括硬件、网络...

2018-05-12 12:06:55

redis防止横向越权

一、之前有通过guava的cache实现token生成,现在我们用redis实现,过程其实是一样的。之前文章:https://blog.csdn.net/weixin_40459875/article/details/80034267二、(1)先创建一个jedis连接池,连接redispublic class RedisShardedPool { private static Sharde...

2018-04-22 16:51:48

查看更多

勋章 我的勋章
    暂无奖章