localhost01

个人博客:localhost01.cn

分布式锁之Redis:正确的实现方式

一、前言 分布式锁一般有三种实现方式: 数据库乐观锁; 基于Redis的分布式锁; 基于ZooKeeper的分布式锁。 本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细...

2018-12-05 10:57:10

阅读数:47

评论数:0

程序员与笛卡尔积

SQL与笛卡尔积 首先,先简单解释一下笛卡尔积。 现在,我们有两个集合A和B。 A = {0,1} B = {2,3,4} 集合 A×B 和 B×A的结果集就可以分别表示为以下这种形式: A×B = {(0,2),(1,2),(0,3),(1,3),(0,4),(1,4)}; B×A ...

2018-11-23 18:47:58

阅读数:61

评论数:0

浅谈JPA三:开始使用Spring-Data-JPA

抛砖引玉 先看一段常用配置文件,看看使用Spring-Data-JPA需要使用到哪些东西吧! <?xml version="1...

2018-10-27 01:04:37

阅读数:35

评论数:0

浅谈JPA二:JPA与Hibernate关系

JPA & Hibernate 关系 JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个。 从功能上来说,JPA现在就是Hibernate功能的一个子集。可以简单的理解为JPA是...

2018-10-27 01:03:09

阅读数:94

评论数:0

浅谈JPA一:JPA是什么?

定义 JPA 即Java Persistence API。 JPA 是一个基于O/R映射的标准规范(目前最新版本是JPA 2.1 )。所谓规范即只定义标准规则(如注解、接口),不提供实现,软件提供商可以按照标准规范来实现,而使用者只需按照规范中定义的方式来使用,而不用和软件提供商的实现打交道。...

2018-10-27 01:02:18

阅读数:364

评论数:0

浅谈NIO与零拷贝

传统IO 传统IO的数据拷贝流程如下图: 数据需要从磁盘拷贝到内核空间,再从内核空间拷到用户空间(JVM)。 程序可能进行数据修改等操作 再将数据拷贝到内核空间,内核空间再拷贝到网卡内存,通过网络发送出去(或拷贝到磁盘)。 即数据的读写(这里用户空间发到网络也算作写),都至少...

2018-10-27 00:59:35

阅读数:175

评论数:0

Java字符串分割性能比较

java字符串分割性能比较 关于字符串的分割,我用jdk的split、apache的common的split、正则表达式、StringTokenizerr以及substring做了以下比较,比较的时间为纳秒,用一个字符串“192.168.20.121”作为示例,打印时间为: 使用jdk的s...

2018-09-21 10:21:32

阅读数:33

评论数:0

html5视频播放解决方案

html5视频播放解决方案 html5没学习之前总觉的很神秘。近期通过学习和研究html5有点成果,特总结分享给大家。 众所周知应用开发分两种:一是原生的native app 二是web app,也就是通过浏览器访问的应用。 html5在移动互联时代,有他独到的用武之地,虽然他有...

2017-12-20 18:38:09

阅读数:4103

评论数:1

【工具】使用反射为类快速生成toString方法

使用反射为类快速生成toString方法 为所处位置类打印出相应toString方法 public static void main(String[] args) throws ClassNotFoundException { // 静态方法获取当前类名 String clas...

2017-10-08 05:06:07

阅读数:1354

评论数:0

Volatile关键字与线程安全

volatile和多线程资源访问控制分别介绍 一、volatile关键字: volatile关键字,它的语义有二: 1. volatile修饰的变量对于其他线程具有立即可见性,即该值发生变化时,其他线程可以立马知道。而普通变量,值发生变化后,需要经过store、write将变量从当前线程的工作...

2017-10-08 04:18:47

阅读数:14218

评论数:0

【注意】Java序列化serialVersionUID问题

Java序列化serialVersionUID问题 当没有显式地定义serialVersionUID变量时,Java序列化机制会根据编译的class(它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系,也就是唯一的)自动生成一个serialVersionUID作序列化版本比较用,这...

2017-10-08 04:09:36

阅读数:535

评论数:0

Asp.Net的PostBack

Asp.Net的PostBack 在Asp.Net中,譬如dropdownlist,它含有AutoPostback属性。当设置为true,则选择值改变时自动回发到后台cs对应代码里。然而,button控件不含有这个属性,而是只要给他一个点击事件:onclick="btnopen_Clic...

2017-10-08 03:16:11

阅读数:277

评论数:0

JAVA正则表达式使用总结

JAVA正则表达式使用总结 一、知识 1.*代表{0,} +代表{1,} ?代表{0,1} [0-9]+=[0-9]{1,} 表示匹配0~9中的任意数字,并且至少1位。 [0-9]*=[0-9]{0,} 表示匹配0~9中的任意数字,并且可以是0位(不存在)。 [0-9]?=[0-9]{0,1}...

2017-10-08 02:04:18

阅读数:812

评论数:0

关于Java乱码(2)

关于JAVA中文乱码的一些看法 长话短说,直接说说Java,尤其是Tomcat对于编码解码的一点了解。 1.get提交    对于直接URI请求和表单的get提交,都是把数据串联在URL后面作为参数。而Tomcat对此的态度是:首先获取Connector的解码集进行解码,该配置在server....

2017-04-20 10:12:41

阅读数:540

评论数:0

Java动态代理技术-我的浅显认识

说到代理,大家不由想到23种设计模式中的代理模式。JDK的动态代理技术正是基于代理模式,并且核心使用了反射机制实现的。首先,便于理解,我们看看demo级别的代理模式(也就对应地叫做静态代理):     interface Person { public void doSomething(...

2017-03-20 10:31:55

阅读数:562

评论数:0

以卖单车为例形象理解23种设计模式

对23种设计模式的初步理解 创建型模式 故事一:取单车 1.我可以通过摩拜单车工厂的Mobike(方法)和MobikeLite方式可以拿到不同类型的单车。-工厂方法模式 2.帮人借车,同事给我发短信叫我帮他去先抢一辆单车,我根据他发的短信内容:“Mobike”(或者“MobikeLite”),从而...

2017-03-20 10:27:44

阅读数:695

评论数:0

10进制整型转16进制整型?

探究10进制整型转16进制整型    1).16进制字符串与整型的互换:         String str="1A";         int t=Integer.parseInt(str, 16); //将16进制的字符串转换为16进制整型; 注:整型包括各种进制,如...

2016-06-13 14:46:46

阅读数:6390

评论数:0

socket多客户端连接服务器

socket多客户端连接服务器     关于套接字编程,我们可以使用它来完成网络通信,而关于使用socket来实现多客户端连接服务器,我记录了以下东西。     一.基本思路        1.服务器实例化serversocket,并监听本机自定义端口,等待客户端的连接,在这里,当然我们可以为其开...

2016-06-01 16:20:53

阅读数:1574

评论数:0

Java原型模式

Java原型模式     什么是原型模式呢?其实就是使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象。概念十分简单,原型模式的关键点在于克隆(clone)。克隆分为浅度克隆和深度克隆,二者区别在于,浅度克隆是值类型的基本数据类对象实现完整克隆,但对于引用数据类型的一些对象,它只是...

2016-06-01 15:21:03

阅读数:921

评论数:0

提示
确定要删除当前文章?
取消 删除