分类: 后端技术

13 篇文章

JVM 调优总结
JVM调优应该是Java性能优化的最后一颗子弹,性能问题一般第一选择是优化程序,最后的选择才是进行JVM调优。 什么情况需要JVM调优 Heap内存(老年代)持续上涨达到设置的最大内存值; Full GC 次数频繁; STW停顿时间过长(超过1秒); 应用出现OutOfMemory 等内存异常; 应用中有使用本地缓存且占用大量内存空间; 系统吞吐量…
Java动态代理总结
动态代理技术在Java中有着非常广泛的应用,我再阅读Spring源码的时候多次碰到对这种技术的使用,在这篇文章做个总结。 代理模式 首先介绍下什么是代理模式:代理模式给某一个对象提供一个代理,并由代理对象来控制对真实对象的访问。代理模式是一种结构型设计模式。 在代理模式中,我们把角色分为 3 种: Subject(抽象主题角色):定义代理类和真实主…
Java多线程问题总结
1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法: (1)发挥多核CPU的优势 随着工业的进步,…
ShardingSphere数据分片
文章只讨论实现,具体原理可以参考官方网站 当我们的数据库或者表太大时,需要进行数据分片(分库或者分表),本文在此记录下使用springboot+ShardingSphere进行最简单的数据分片。 引入maven依赖 <dependency> <groupId>org.apache.shardingsphere</gro…
脏读、不可重复读、幻读
脏读 读取未提交数据 A事务读取B事务尚未提交的数据,此时如果B事务发生错误并执行回滚操作,那么A事务读取到的数据就是脏数据。就好像原本的数据比较干净、纯粹,此时由于B事务更改了它,这个数据变得不再纯粹。这个时候A事务立即读取了这个脏数据,但事务B良心发现,又用回滚把数据恢复成原来干净、纯粹的样子,而事务A却什么都不知道,最终结果就是事务A读取了此…
datetime与timestamp
datetime 保存格式为YYYYMMDDHHMMSS(年月日时分秒)的整数,所以,它与时区无关,存入的是什么值就是什么值,不会根据当前时区进行转换。 从mysql 5.6.4中,可以存储小数片段,最多到小数点后6位,显示时格式为 yyyy-MM-dd HH:mm:ss[.222222] mysql5.5中,没有小数片段,精确到秒。所以,我再从5…
mysql大小写敏感设置
mysql大小写敏感配置 mysql大小写敏感配置相关的两个参数,lower_case_file_system 和 lower_case_table_names。 查看当前mysql的大小写敏感配置 show global variables like '%lower_case%'; +------------------------+------…
Springboot整合ES
在springboot基础上搭建ES环境源码地址 下载ES服务器并运行 到es官网下载es服务器并运行。 初始化数据库 执行数据库脚本,文件路径(db/es_.sql),demo中从数据库初始化引擎数据。 -- Dumping database structure for master CREATE DATABASE IF NOT EXISTS `…
Java 8 新特性,Optional
我们在写Java代码时,最长遇到的异常就是:NullPointerException。大量的null值的检测,降低了代码的可读性,而随时可能发生的NullPointerException降低了程序的健壮性。在Java 8中引入了Optional类,就是为了解决这样的问题,那么Optional怎么用? Optional类 A container ob…
字节流与基本数据类型的转换
在项目开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结。 注意:默认传输时使用小端模式 字节流转换为int类型数据 public static int getInt(byte[] bytes) { return (0xff & bytes[0])…