- 博客(32)
- 资源 (6)
- 收藏
- 关注
转载 活性失败-volatile
线程A对某变量值的修改,可能没有立即在线程B体现出来,称为活性失败。 注意下面这个例子,在PC和安卓上运行结果可能不一样(安卓可能不需要volatile)例子public class VolatileTest extends Thread { /** * 使用了volatile,则1秒后,子线程会退出循环,因为在主线程将isRunning置位为false */ ...
2018-02-28 21:12:29 518
转载 从银行转账失败到分布式事务:总结与思考
正文 思考这个问题的初衷,是有一次给朋友转账,结果我的钱被扣了,朋友没收到钱。而我之前一直认为银行转账一定是由事务保证强一致性的,于是学习、总结了一下分布式事务的各种理论、方法。 事务是一个非常广义的词汇,各行各业解读都不一样。对于程序员,事务等价于Transaction,是指一组连续的操作,这些操作组合成一个逻辑的、完整的操作。即这组操作执行前后,系统需要处于一个可预知的、一致的状态。因...
2018-02-28 16:19:47 274
转载 MySQL_插入更新 ON DUPLICATE KEY UPDATE
平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.此时 插入数据的时候 ,经常会有这样的情况:我们想向数据库插入一条记录: 若数据表中存在以相同主键的记录,我们就更新该条记录。 否则就插入一条新的记录。逻辑上我们需要怎么写:$result = mysql_query('select * from xxx where id = 1');$r...
2018-02-28 14:37:10 433
转载 分布式系统理论基础 - 一致性、2PC和3PC
引言狭义的分布式系统指由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作。广义的分布式系统是一个相对的概念,正如Leslie Lamport所说[1]:What is a distributed systeme. Distribution is in the eye of the beholder.To the user sitting at the keyboard...
2018-02-28 11:12:56 155
转载 Mysql中的Cascade,NO ACTION,Restrict,SET NULL
外键约束对子表的含义: 如果在父表中找不到候选键,则不允许在子表上进行insert/update 外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对应匹配行的候选键时,父表的行为取决于:在定义子表的外键时指定的on update/on delete子句, InnoDB支持5种方式, 分列如下 : cascade方式 在父表上update/delete...
2018-02-28 10:09:30 290
转载 UML类图几种关系的总结
在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头
2018-02-27 17:26:31 163
原创 Failed to introspect annotated methods on class org.springframework.boot.web.support.SpringBootServl
启动项目报错:org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.netease.ai.ar.dongjian.DongjianMsApplication]; nested exception is java.lang.IllegalStat...
2018-02-27 10:02:36 4431
原创 spring boot使用spring session,底层数据库mysql实现
1,pom.xml添加依赖: <!-- 数据库session管理 --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-jdbc</artifactId&g...
2018-02-26 13:38:42 4965 1
转载 Spring Session-使用JDBC的HttpSession
4.3. 使用JDBC的HttpSession在使用HttpSession的任何功能之前通过添加一个Servlet过滤器,就可以启用Spring Session,可以通过如下几种方式进行启用:基于Java的配置基于XML的配置基于Spring Boot的配置4.3.1. 基于Java配置JDBC本节介绍基于Java配置的方式如何使用关系型数据库支持HttpSession。HttpSession J...
2018-02-26 10:59:39 2603
原创 No Spring Session store is configured: set the 'spring.session.store-type' property
1,spring boot 项目加入如下依赖时报错: <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session</artifactId> <version>1.3.0.RELEASE</...
2018-02-26 09:59:39 5321 5
转载 Spring-Session配置,底层数据库使用Redis或Mysql
问题: 之前做项目的项目经理,分配了一个研究任务“在Maven驱动的项目中,配置使用Spring Session,同时底层存储使用Mysql。” 关于Spring-session的详细介绍;Spring-Session相较于传统的HttpSession的优点。 请参考:http://www.infoq.com/cn/articles/Next-Generation-Session-Manag...
2018-02-24 14:19:56 833
原创 SHA算法在java算法中的使用模块类
1,首先创建一个文件,类名可命为:MessageDigestUtil代码如下:package com.netease.ai.ar.dongjian.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.UnsupportedEncodingException;import java.nio....
2018-02-23 10:38:42 207
原创 如何设计避免订单出现重复支付的逻辑?(幂等)
1,问:假设有这么一种情况:订单已下单成功并且正处于支付页面,用户调起支付网关进行支付。支付成功了一次,但是由于某种情况导致未接收到银行返回的【支付成功】等信号,系统此时还是认为未支付成功。用户此时又支付了一次并且成功了。问题:如果用户出现了2次支付并且都成功了,后台逻辑退款这一块如何设计?是否可以避免这种情况的发生?如果可以怎么去避免呢。2,以下由网友回答,仅作参考:参考...
2018-02-13 01:15:50 26060 13
转载 &运算符的运算
1,AND在编程术语中表示一种运算方法,不可逆常用符号:&(按位与),&&(逻辑与)其运算规则如下:1&1=1; 真&&真=真;1&0=0; 真&&假=假;0&1=0; 假&&真=假;0&0=0; 假&&假=假;即与0则0,常用此特性来将某些位置0或保存某些位。如汇编语句
2018-02-12 14:15:09 748
转载 移位运算符
左移运算符是一个计算机用语。用来将一个数的各二进制位全部左移若干位。因为位运算比×运算快,所以可对一下代码进行优化,还可利用左移运算符计算a的第b个二进制位是什么。用来将一个数的各二进制位全部左移若干位。例如:将a的二进制数左移2位,右补0。若a=15,即二进制数00001111,左移2位得00111100,即十进制数60(为简单起见,用8位二进制数表示十进制数15,如果用16位二进制数表示,结果...
2018-02-12 14:07:16 408 1
转载 Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo...
2018-02-12 09:54:08 130
转载 依赖注入和控制反转的理解
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。一、分享Iteye的开涛对Ioc的精彩讲解 首先要分享的是Iteye的开涛这位技术牛人对Spring框...
2018-02-09 17:05:13 164
转载 数据库中长连接和短连接的区别分析
什么是长连接?其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接-》数据传输-》关闭连接;而长连接通常就是:连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了什么时候用长连接,短连接?长连接主要用于在少数客户端与服...
2018-02-09 11:15:20 927
转载 为什么数据库连接很消耗资源
本文主要想探究一下连接数据库的细节,尤其是在Web应用中要使用数据库来连接池,以免每次发送一次请求就重新建立一次连接。对于这个问题,答案都是一致的,建立数据库连接很耗时,但是这个耗时是都多少呢,又是分别在哪些方面产生的耗时呢?本文以连接MySQL数据库为例,因为MySQL数据库是开源的,其通信协议是公开的,所以我们能够详细分析建立连接的整个过程。 在本文中,消耗资源的分析主要集中在网络上,当然,...
2018-02-09 11:04:50 554
转载 Object类有哪些方法
Object是所有类的父类,任何类都默认继承Object。Object类到底实现了哪些方法?1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较
2018-02-07 14:58:06 274
转载 Jackson2JsonRedisSerializer报错Could not read JSON: Unrecognized field...
1,问题:nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “credentialsSalt” (class com.scl.user.domain.SysUser), not marked as ignorable2,说明:
2018-02-07 11:07:50 11273
原创 redis常见问题及解决
1,1)问题:(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for deta
2018-02-07 10:22:29 494
转载 Redis持久化-数据丢失及解决
Redis的数据回写机制Redis的数据回写机制分同步和异步两种,同步回写即SAVE命令,主进程直接向磁盘回写数据。在数据大的情况下会导致系统假死很长时间,所以一般不是推荐的。异步回写即BGSAVE命令,主进程fork后,复制自身并通过这个新的进程回写磁盘,回写结束后新进程自行关闭。由于这样做不需要主进程阻塞,系统不会假死,一般默认会采用这个方法。个 人感觉方法2采用fork主进程
2018-02-07 10:05:53 219
转载 mysql单列索引、多列索引的使用
一、简介 数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。 索引优化是数据库优化的最重要手段。 如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(...
2018-02-06 23:47:28 903
转载 触发JVM进行Full GC的情况及应对策略
堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC,对老年代GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但
2018-02-06 22:28:59 156
转载 逐步解读HTTP报文的组成及含义
如果说HTTP是因特网的信使,那么HTTP报文就是运送的包裹。所有的HTTP程序都是通过互相发送报文来完成工作的。本文将介绍HTTP报文的流动方式,报文的组成部分,请求和响应报文之间的区别等。报文流HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以文本形式存在,以描述了报文的内容及含义的元信息开头,后面跟着可选的数据部分。这些报文在客户端、服务器和代理之间流动。一般来说,报文流
2018-02-06 21:06:54 342
转载 Java虚拟机工作原理详解
一、类加载器首先来看一下java程序的执行过程。 从这个框图很容易大体上了解java程序工作原理。首先,你写好java代码,保存到硬盘当中。然后你在命令行中输入[java] view plain copy javac YourClassName.java 此时,你的java代码就被编译成字节码
2018-02-06 16:35:59 117
转载 HashMap的尾部遍历问题--Tail Traversing
参考:http://stackoverflow.com/questions/22890967/java-hashmap-tail-traversing在看网上HashMap的resize()设计时,提到尾部遍历。JDK1.7的HashMap在实现resize()时,新table[]的列表采用LIFO方式,即队头插入。这样做的目的是:避免尾部遍历。参考stackoverf
2018-02-06 15:45:33 890
原创 spring boot 对redis的操作
1,spring boot集成redis2,在代码相应的方法上添加@Cacheable注解,并配置相应的value属性注:A、B不同的方法上可以具有相同value值3,登陆redis-cli终端,执行"keys *" 如下所示,蓝色部分是通过RedisConfig里keyGenerator方法自动生成的key,可通过get方式在redis-cli终端获得里面的值,因
2018-02-05 15:19:58 331
原创 spring boot用redis管理session
1, spring boot集成redis2,在pom.xml添加jar依赖: org.springframework.session spring-session-data-redis 3,添加java配置文件import org.springframework.context.annotation.Configuration;import org.sp
2018-02-05 13:40:52 2113
原创 spring boot集成redis
1, pom.xml里加入如下依赖: org.springframework.boot spring-boot-starter-cache org.springframework.boot spring-boot-starter-redis org.springframework.boot spring-boot-sta
2018-02-05 13:34:06 315
转载 Linux中删除特殊符号文件名文件
Linux 系统下的文件名长度最多可到256个字符。通常情况下,文件名的字符包括:字母、数字、“.”(点)、“_”(下划线)和“-”(连字符)。Linux 允许在文件名中使用除上述符号之外的其它符号, 但并不建议用户这样做。 有些转意字符 (即该字符被系统借用,表示某种特殊含义) 在 Linux 的 命令解释器(shell)中有特殊的含义。这样的转意字符有:“?”(问号),“*”(星号
2018-02-01 09:45:11 2440
graphviz-2.38.msi 及 plantuml使用文档
2018-04-24
软件工程答案-第4版-杨卫东译-课后答案
2016-10-09
activiti插件及相关JAR包
2016-08-27
jquery.qrcode生成二维码
2016-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人