- 博客(28)
- 资源 (2)
- 收藏
- 关注
原创 MYSQL事务隔离机制及事务优化
在并发执行多个事务操作,对同一批数据进行操作时,会导致一些系列事务问题:脏写,脏读,不可重复读,幻读等。为解决这些事务问题,mysql 通过事务隔离机制,锁机制,MVCC及日志机制等来避免上述问题。本文就来讲讲其中的事务隔离机制。
2023-05-09 09:16:44 320
原创 Mysql Sql 优化之 Explain
Explain工具就是用来分析某个慢查询执行情况的工具。通过在select 语句前加上explain 关键字,然后执行就会得到某个sql 执行计划信息,通过分析执行计划,我们就可以确定是否需要对其进行优化。
2023-05-01 00:15:00 953
原创 双检查锁单例模式
以上,DCL实现的单例,volatile 禁止了指令重排序,保证了单例共享变量在多线程环境下的可见性,同时第一检查,大大减少了因为竞争锁而导致的大量现场阻塞,提高了并发能力,同时第二次检查,真正实现了单例,保证了线程安全。再次,一旦有线程获取到锁,进行二次检查,避免在此线程前,当前线程属于第一次竞争锁在处于阻塞被唤醒的线程进入代码块再次初始化singleton 而导致产生多例。首先:volatile 修饰singleton 保证了多线程环境下,禁止了JVM对指令进行重排序,同时该变量的可见性。
2023-04-28 17:16:43 98
原创 【代码质量的重要性:如何编写具有高质量标准的代码】
在如何写出高质量代码的问题上,从编程实践技巧和软件工程方法论两个角度进行了分析。从编程实践技巧角度,需要关注代码简洁性、可读性、可维护性和可测试性,具体的实践建议包括遵循编码规范、使用版本控制、追求代码复用、持续集成和交付、使用自动化工具等。从软件工程方法论角度,需要注重需求分析、设计良好的软件架构、测试和代码审查等方面的工作,同时结合敏捷开发等实践方法,以促进团队协作和快速反应能力的提高。总之,写出高质量代码是开发人员必须面对的挑战,需要注重细节,不断学习和掌握最佳实践。
2023-04-27 10:25:02 1044
原创 MYSQL数据库为何使用B+树,而不使用红黑树,二叉树作为索引
B+树是一种多路平衡查找树,每个节点可以存储多个关键字和数据,在B+树中,非叶子节点只存储关键字,而不存储数据,因此节点数比二叉树和红黑树更少,查询效率更高。因此,虽然红黑树也可以作为数据库的索引结构,但在处理大量数据时,B+树更适合作为索引结构,因为它可以更好地应对大规模数据的存储和查询需求,同时减少磁盘I/O操作,提高索引查询的效率。B+树可以减少索引更新的代价。由于B+树的非叶子节点只存储关键字,而不存储数据,因此在更新索引时,只需要更新叶子节点,而不需要更新非叶子节点,这可以减少索引更新的代价。
2023-04-24 14:26:41 1522
转载 git merge 与git rebase 区别
git merge是用来合并两个分支的。git merge b # 将b分支合并到当前分支同样 git rebase b,也是把 b分支合并到当前分支-----------------------------------他们的 原理 如下:假设你现在基于远程分支"origin",创建一个叫"mywork"的分支。$ git checkout -b mywor...
2018-09-12 15:36:01 209
原创 win10 下,idea 无法在Terminal 中使用mvn 命令
使用idea的Terminal终端中使用mvn命令时,无法找到命令。网上找到解决方式如下:1.修改File->setting>Terminal 》将shell path 修改为系统cmd.exe命令位置2.修改cmd 命令,关闭最新特性,启用旧特性,重启idea3.添加M2_HOME,说是有些工程无法识别MAVEN_HOME路径(这个有点不知为啥)试了如上方式,很多次,...
2018-09-02 22:28:56 16262 4
原创 Base64图片上传问题解决
最近开发API上传文件,采用了Base64格式上传,后端接受前端Base64图片内容,此后decode 后上传至阿里云。在从阿里云取出流,并想继续在java中谷歌thumbnails工具生成缩略图时,出现了问题。总是报:net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReade...
2018-08-29 22:35:41 4708 4
转载 JWT 的使用
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。1、1 <dependency>2 <groupId>io.jsonwebtoken</groupId>3 <artifactId>jjwt</artifactId>4 <vers...
2018-07-11 13:48:06 631
转载 jstack命令(Java Stack Trace)
JDK内置工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java Stack Trace)四、jstat命令(Java Virtual Machine Statistics Monitoring Tool)五、jmap命令(Java...
2018-05-28 17:05:57 227
转载 java中的SecureRandom在linux中的实现
在安全系统中,通常我们会使用securerandom去更安全的生成随机数,而默认的SecureRandom里使用的算法是SHA1PRNG。 Linux中的随机数发生器在Linux操作系统中,有一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。/dev/random在读取时,/dev/random设备会返回小于熵池噪声总数的随机字节。/dev/random可生成高随机性的公钥或一次性密码本。...
2018-05-28 17:04:30 887
原创 构造器中的多态行为
java中,多态只会发生于非final,private的方法中。也就是说static 静态方法,属性及构造器都不具备多态行为。但是,当构造器中出现多态时,常常引起不必要的且难以发现的麻烦。看如下实例:public class Animal { Animal() { System.out.println("Animal start to run"); ...
2018-05-22 16:37:25 385
原创 看java String类的不可变性
常遇到面试说,String为啥被设计成不可变的。看了下源码,说下个人看法:1、String的不可变 String a="hello";a="hello world";a 指向内存中常量池中"hello";后又被赋值为"hello world"。有人说这不是变化了吗?其实不然。原内容"hello"仍然存在于内存常量池中,a 指向了新的地址,常量池中“hello world”。 这种...
2018-05-07 11:06:19 238
原创 命令分割大文件
最近搞数据,由于文件太大,执行sql困难,于是分割文件为较多个小文件,学习一个新命令。分享如下:Linux csplit命令用于分割文件。语法csplit [-kqsz][-b<输出格式>][-f<输出字首字符串>][-n<输出文件名位数>][--help][--version][文件][范本样式...] 参数:-k或--keep-files 保留文件...
2018-05-04 14:04:01 1357
原创 RSA 加密工具类
RSA 加密工具类,生成密钥对,加解密功能。喜欢的拿去使用。import java.security.InvalidKeyException;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.securi...
2018-04-23 11:15:01 847
转载 java 学习笔记《二》
Java内存分配主要包括以下几个区域:1. 寄存器:我们在程序中无法控制2. 栈:连续,先进后出。存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。3. 堆:存放用new产生的数据,不连续。4. 静态域:存放在对象中用static定义的静态成员5. 常量池:存放常量(存在共享机制) 静态域与常量池都位于方法区,方法区也属于堆区。6. 非RAM(随机存取存储器)存储:硬盘...
2018-04-19 14:30:36 153
原创 java 学习笔记《一》
OOP的本质:以类的形式组织代码,以对象的形式组织数据。1、对象具有行为、状态和标识。2、java语言使用的字符集:Unicode字符集,该字符集具有65535个字节,可以表示任意字符。3、标识符 定义:由字母、数字、下划线、$等字符组成的字符序列。 作用:用来表示变量名、方法名、类名、接口名等 规则: > 不能以数字开头 > 可以包含数...
2018-04-18 14:53:52 198
原创 java Http 请求工具类
个人实现的一个Http连接的一个工具类,可以需要的时候使用。import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.http.Consts;import org.apache.http.HttpHost;import org.apache.http....
2018-04-03 16:50:01 214
转载 PostgreSQL模糊匹配走索引
场景 lower(name) like 'pf%'create table users (id int primary key, name varchar(255));Create or replace function random_string(length integer) returns text as$$declare chars text[] := '{0,1,2,3,4,...
2018-04-03 15:22:32 1475
转载 西点军校最贵一课:没强大内心的人,没资格谈人生
尽管西点军校的招生选拔已经足够严苛,但是每年录取的学生中还是有五分之一选择了中途退出。这五分之一的学生中有很大一部分是在大一结束时选择退出的,因为就在这一年他们要经历西点军校最为著名的“野兽”计划,经历生理、心理、社交等一系列残酷考验。坚持不住的人,最终只好选择出局。这一现象引起了宾夕法尼亚大学知名心理学教授安吉拉·达科沃斯的兴趣。难倒入学前那些严苛的智商、情商、天赋测试还不足以证明这些学生足够有...
2018-03-26 14:39:00 767
原创 使用正则,提取字符串中数字
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MatchUtil { private static final Logger logger= LoggerFacto...
2018-03-26 11:42:36 12652 1
原创 关于joda time
joda time ,是日期处理的一个很实用的工具包。pom 引用 <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>4.0.0</versi...
2018-03-26 11:25:19 311
原创 JSoup 解析html
JSOUP,JAVA语言界的Jquery解析神器。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。你可以用它: 你可以从一个URL,文件或字符串中解析HTML;可以使用DOM或CSS选择器来查找、取出数据;可以可操作HTML元素、属性、文本;同时jsoup基于MIT协议发布的,可放心使用于商业项目。简单使用:1.将html转换为docum...
2018-03-15 16:45:45 324
原创 Postgres 9.5 新功能upsert
今日批量更新数据库中数据,发现postgres 9.5版本起,新增了一个功能,upsert1.新增数据时,若数据已经存在与表中,则更新对应记录2.若记录不在表中,则直接插入数据。而这个功能恰恰是我需要使用的。语法:[ ON CONFLICT [ conflict_target ] conflict_action 示例:insert into t2 values(1,'XX') ON CO...
2018-03-15 16:05:54 398
原创 redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
今天项目做redis迁移,中途一直报这个连接异常。从网上找了很多分析文章,大致分为以下几个原因: 1.redis服务器down掉了,检查redis服务器是否正常。 2.redis配置,当前连接数,是否已经达到最大连接次数,maxTotal? 3.环境网络权限是否没有开放 上面三个原因,第一个明显不可能,因为服务是新的redis服务器,运行正常,使用r...
2018-03-12 22:27:25 3180 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人