自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhouxukun123的专栏

点滴记录,更新人生

  • 博客(201)
  • 资源 (3)
  • 收藏
  • 关注

原创 多线程查询MySQL大数据量单表导致OOM及线程卡死

1 需求对数据进行迁移,需要将MySQL中的一张大表数据(亿级)读出并插入另一个数据库。2 问题对数据分组后,然后开启对应个数的线程,每个线程处理一个分组数据的任务(每个分组后的数据量从几十万至千万级),最初思路是从原库取出1000条数据后,再进入入库,设置了PreparedStatement 的 fetchSize为1000, 但是很快就报“ java.lang.OutOfMemoryEr...

2018-10-28 20:14:36 5968

原创 Echarts柱状图tooltip超出外层div部分被挡住

1 问题类别字段ctgr中的值是连在一起的,入库时需要分割开来,方便查询。数据如下所示:option = { title : { text: '世界人口总量', subtext: '数据来自网络' }, tooltip : { trigger: 'axis' }, legend: { da...

2018-10-27 23:14:37 10558 1

原创 MySQL 按指定分隔符截取字符串函数substring_index

需求需要显示人员及其所有的社交账号处于同一行。表结构如下:解决方法SELECT hi.houseCode,SUBSTRING_INDEX(hi.houseCode,’-’,1) AS lou,SUBSTRING_INDEX(SUBSTRING_INDEX(hi.houseCode,’-’,2),’-’,-1) AS men,SUBSTRING_INDEX(hi.houseCode,’-’...

2018-10-27 22:38:37 30208

原创 获取滚动条当前位置

获取滚动条当前位置 scrollTop() 方法

2018-09-30 23:49:38 7652

原创 阻止子元素继承父元素点击事件

问题描述用户登录输入对话框,有记录最近的登录用户名,当输入框获取焦点时,弹出历史用户名的下拉框。但是,有个问题:如果是选择下拉列表的值,下拉框隐藏;不选择下拉列表的值或者输入其他用户名,则下拉列表不会隐藏。解决思路输入字符或者检测到输入框的值有变化后,下拉列表隐藏,或者鼠标点击输入框之外的任何地方就隐藏下拉列表。解决方法为了避免输入框也接收到输入框之外(父元素)的点击事件,所以输入框需...

2018-09-30 23:43:20 4390

原创 JVM 性能监控与故障处理工具

定位系统问题的时候,需要依据系统输出的数据信息查看具体原因,当然需要借助相应的工具以方便处理数据信息。这里的数据信息包括:运行日志、GC 日志、异常堆栈、线程快照(threaddump/javacore 文件)、堆转储快照(heapdump/hprof文件)等。JDK 的bin目录中提供了很多命令行工具,如我们熟悉的“java.exe”、“javac.exe”,其他命令参考bin目录。这些工具...

2018-09-30 23:13:35 585

原创 JVM 类的装载过程

Java 虚拟机类的转载过程包含三个阶段:(1) 加载(2) 链接验证准备解析(3)初始化实际运行中,三个阶段并非一定按顺序执行,但总体来说完整的加载过程总是包含这三个阶段。1.1 加载1)取得类的二进制字节流,通过类的全限定名称(包名+类名)由类加载器加载至运行时数据区2)把二进制字节流中静态存储结构转化为方法区数据结构3)在内存中生成代表这个类的java.lang....

2018-09-25 00:10:50 487

原创 Mybatis xml 中 #{var} 和 ${var} 的区别

Mybatis 提供了两种支持动态 sql 接收参数的语法:#{var} 和 ${var},两者的区别如下:1)#{var} 在预处理时,会把参数部分用一个占位符 ? 代替,变成如下的 sql 语句:select * from tb_user where userName = ?;2)${var} 则只是字符串替换,在动态解析阶段,该 sql 语句会被解析成select * fro...

2018-09-08 17:53:59 521

原创 volatile 关键字理解

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。即 volati...

2018-08-31 23:53:36 179

原创 内存分配与回收策略

Java 内存管理自动化的解决了两个问题: 1) 给对象分配内存;2) 回收内存新建对象主要分配在新生代的 Eden 区域,如果启动了本地线程分配缓冲,将按线程优先在 TLAB 上分配。少数情况也可能会直接分配在老年代中。分配的规则取决于当前使用的垃圾收集器组合,及其他与内存相关的设置参数。以下是几条普遍的内存分配规则:1.1 对象优先在 Eden 区分配大多数情况下,对象在...

2018-08-30 23:26:13 152

原创 垃圾收集器参数总结

垃圾收集相关的常用参数(基于 JDK 1.7)如下表,供使用时参考: 参数 描述 UseSerialGC 虚拟机运行在Client模式下的默认值,打开后(-XX:+UseSerialGC),使用Serial + Serial Old的收集器组合进行内存回收 UseParNewGC -...

2018-08-30 22:37:25 126

原创 JVM 运行时数据区学习

本节要点Java 数组的静态特性Java 数组的内存分配机制初始化 Java 数组的两种方式初始化基本类型数组的内存分配初始化引用类型数组的内存分配Java 虚拟机完整结构包括类加载器、运行时数据区、执行引擎及本地接口,其中运行时数据区对jvm性能优化、内存问题排查时非常重要。本文主要是讲解虚拟机内存中各区域的作用、服务对象及其可能产生的问题。Java 虚拟机在执行Ja...

2018-08-26 16:14:21 128

原创 JAVA 将查询的数据以CSV文件导出时产生乱码

1、问题将查询的数据以xls文件导出时(UTF-8编码),数据正常;但以CSV文件导出时,文件中的中文乱码,同样是UTF-8编码,改成GBK编码导出时,中文显示正常。本以为问题解决,后面导出含拉丁字符(如ÀÆÊàÌ)的数据时,以xls文件导出数据正常显示,以CSV文件导出时,文件中的拉丁字符显示为“?”号。试着改成其他编码方式都无效,后面网上搜到了一篇解决该问题的方法。2、解决方法...

2018-07-31 23:27:05 4914

转载 缓存穿透、缓存并发和缓存雪崩

缓存穿透、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本节讲解其产生原因和解决方案。缓存穿透:通常是由恶意攻击或者无意造成的; 缓存并发:是由设计不足造成的; 缓存雪崩:是由缓存同时失效造成的。三种问题都比较典型,也是难以防范和解决的。本节给出通用的解决方案,以供在缓存设计的过程中参考和使用。一、缓存穿透缓存穿透指的是使用不存在的key进行大量的高并发查询,这导致缓...

2018-07-24 21:37:20 169

原创 js 删除对象属性

问题描述更新表时,发现id不是该条记录对应的id值,而是操作另外一个tab页面后form表单映射的id值覆盖了原记录id的值,导致保存后,该条记录的数据没更新到。解决方法避免其他页面的id值覆盖要更新页面的记录id值,通过其他页面填充表单时,把其id属性删除,这样就不会影响所需更新记录的id值了。通过js中的delete命令可以删除对象的指定属性,如下:delete obj.i...

2018-07-18 23:07:22 7094

原创 文字超出div,设置text-overflow:ellipsis不起作用问题

问题描述单行文字长度超过文本框width值导致换行问题,在设置了overflow : hidden; text-overflow: ellipsis; 仍不起作用环境:Google浏览器解决方法通过设置text-overflow: ellipsis;样式实现以省略号展现超出部分。CSS 代码<style type="text/css">.hideTex...

2018-07-01 23:34:03 41584 2

原创 List 集合按时间降序排序

获取的list结果无序,需要对list按时间降序排列。实现列表排序可重写 Comparator 接口中的 compare() 方法,然后调用集合工具类 Collections 的 sort() 方法。测试程序如下:/** * @ClassName: ListSortTest * @Description: List排序测试 * @date: 2018年7月1日 下午4:23:32...

2018-07-01 17:38:25 14121

原创 根据虚拟机快照获取快照中虚拟磁盘的changeId

对虚拟机进行备份时,若进行增量备份,需要获取从上一次备份到此次快照时的数据改变区块(ChangedDiskAreas),而确定上一次改变的位置就是通过上一次创建快照时生成的changeId,这个changeId相当于每次备份的一个节点记录标记,获取该changeId可以在快照创建完成之后根据快照名称获取。通过MOB,可以发现每次快照之后生成的changeId位于该快照对应的虚拟设备属性路径下(...

2018-06-27 23:39:22 629

原创 获取虚拟磁盘信息

对虚拟机进行备份时,需要获取指定虚拟机的磁盘相关信息,包含磁盘容量、磁盘路径、磁盘 key 等信息,这些信息可以在快照创建完成之后通过快照来获取,下面给出根据虚拟机获取虚拟磁盘信息代码:/** * @Title: getDiskInfo * @Description: 获取磁盘信息 * @param vmmor * @param vmName * @return * @throws...

2018-06-26 23:49:26 1084

原创 根据虚拟机获取快照信息

对虚拟机进行备份时,需要获取指定虚拟机的磁盘相关信息(包含uuid、changeId、diskMode、fileName等),这些信息可以在快照创建完成之后通过快照来获取,下面给出根据虚拟机获取快照对应信息的代码:/** * @Title: getVirtualDiskInfo * @Description: 获取快照信息(包含uuid、changeId、diskMode、fileName...

2018-06-25 23:54:38 1382

原创 根据虚拟机获取虚拟机快照引用

在虚拟机的备份还原中,快照的引用是一个很重要的参数,获取获取虚拟磁盘、虚拟磁盘ChangeId以及快照信息都需要用到快照托管对象引用作为参数。下面给出根据虚拟机获取快照引用的方法代码:/** * @Title: getSnapshotReference * @Description: 根据虚拟机获取快照引用 * @param vmMOR * @param vmName * @para...

2018-06-24 17:58:47 559

原创 根据托管对象引用ManagedObjectReference获取对象名称

根据实体对象的属性获取相关对象时,在虚拟机中,获取的仍然可能是一个托管对象引用,如根据虚拟机的属性runtime获取到的VirtualMachineRuntimeInfo对象,要获取该对象中的主机名,通过getHost()方法获取的是host的一个ManagedObjectReference,这样就需要进一步根据托管对象获取其对应的实体名称。代码如下:/** * @Title: getO...

2018-06-24 17:21:30 1256

原创 获取 ESXi 服务器所有的数据中心 Datacenter 的名称

Datacenter 想要访问 vCenter 或者 ESX server 中的某个对象或者调用其方法,就必须首先根据这个对象在 inventory 中的位置找个这个对象。从上图可知,ServiceInstance 对象在 inventory 的结构树中处于根位置,因此遍历整个 inventory 或者要查找 inventory 中的某个对象,必须先从 ServiceInstance 开始。S...

2018-05-31 22:51:45 2369

原创 MySQL 将查询到的一列数据合并成字符串

需求需要显示人员及其所有的社交账号处于同一行。表结构如下: 解决方法使用 group_concat 函数实现。函数语法:group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )SQL语句如下:select a.`id` 序号, a.`name` 姓名, GRO...

2018-05-24 00:01:07 27384 3

原创 js 将字符串中指定字符全局替换

JavaScript 中的 replace() 方法用于将字符串或其中的子字符串替换为指定字符,或替换一个与正则表达式匹配的子串。该方法不会改变原始字符串。语法 stringObject.replace(regexp/substr, replacement)它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 r...

2018-05-23 00:21:36 58005 1

原创 windows cmd使用md命令建立多级子目录

在CMD命令窗口可以使用 md 命令创建多级目录。如在D盘下新建 1\2\3\4 多级目录,命令如下:C:\Users\xxx>pushd d:D:\>md\1\2\3\4D:\>pushd D:\1\2\3\4D:\1\2\3\4>其中,pushd 是 Windows 操作系统 cmd 下的一个命令,作用是保存当前目录以供 POPD 命令使用,然后...

2018-05-21 00:17:47 22269

原创 java 实现VMware虚拟机创建

根据vim25.jar 提供的虚拟机创建任务接口 VimPortType.createVMTask(),可以实现满足自己配置需求的一个虚拟机, 而且 VMware 在其提供的 vSphereSDK 提供了创建虚拟机的 sample(详见 ~\VMware-vSphereSDK-6.5.0-4571253\SDK\vsphere-ws\java\JAXWS\samples\com\vmware\vm...

2018-05-14 00:05:43 5588 2

原创 API接口安全机制设计学习笔记

课程概要:API网关接口实现 接口安全的业务需求基于API网关实现安全机制1 API网关接口实现1.1 API网关概念API网关是一个轻量的 java http 接口组件,可以无缝的将普通的 Serive 方法转换成 http 接口,并从以下几点来达到提高开发效率与保证接口质量的目的。1.去掉mvc控制器,将http请求直接无缝接入Java 服务接口2.统一出/...

2018-04-30 23:38:12 793

原创 ElasticSearch 学习笔记

Elasticsearch是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎( Lucene 可以说是当今最先进,最高效的全功能开源搜索引擎框架)。Elasticsearch是一个实时分布式和开源的全文搜索和分析引擎, 它可以从RESTful Web服务接口访问,并使用 JSON(JavaScript Object Notation,JavaScript对象标志法)...

2018-04-30 22:27:26 217

原创 jQuery 判断标签内容是否为空

问题描述需要判断用户是否选中列表中的选项或者输入了自定义的内容是否不为空,不为空才进行下一步操作,否则提示用户。<p id="namep">姓名: <input type="text" class="name"></input></p>解决方法获取指定标签的内容,进行判空处理// $(document).

2018-04-30 11:48:17 18915 1

原创 Java HotSpot 虚拟机选项 -X -XX 的含义

1、JDK 7 及以前版本官方文档对 -X、-XX的说明如下: Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releas...

2018-04-21 13:31:14 2421

转载 Spring 七种事务传播机制和四种事务隔离级别

一、Propagation (事务的传播属性)propagation 属性确定代理应该给哪个方法增加事务行为,这样的属性最重要的部份是传播行为,有以下选项可供使用:PROPAGATION_REQUIRED —— 支持当前事务,如果当前没有事务,则新建一个事务,这是最常见的选择,也是 Spring 默认的一个事务传播属性。PROPAGATION_SUPPORTS —— 支持当前事务,如...

2018-04-10 23:45:35 7745

原创 11.3 红黑树

1 红黑树性质红黑树是针对排序二叉树在最坏情况下会变成普通链表导致检索效率慢而改进的一种排序二叉树。注:排序二叉树可以快速检索,只是在最坏的情况下,比如插入的节点集本身是有序的(由大到小,或由小到大排列),那么最后得到的排序二叉树将变成链表:所有节点只有左节点(节点集由大到小排列),或者所有节点只有右节点(节点集由小到大排列),此时排序二叉树就变成了普通链表,其检索效率会很差。红黑树是...

2018-04-06 23:36:57 174

转载 sleep,wait,yield,join方法的使用与区别

1. sleep() 方法在指定时间内让当前正在执行的线程暂停执行,但不会释放“锁”。 sleep()使当前线程进入阻塞状态,在指定时间内不会执行。Thread.sleep(1000);2. wait() 方法wait() 方法是 Object 类的一个 final 方法,其定义如下:public final void wait() throws Interrupte...

2018-04-06 16:58:50 286

原创 11.3 遍历二叉树方法整理

对二叉树遍历其实是将二叉树中的节点(非线性结构)以线性序列访问的过程。如果二叉树是顺序结构(数组)保存的,直接遍历底层数组即可; 如果二叉树是用链表保存节点的,有下面两类遍历方式:1) 深度优先遍历:先访问到树中最深层次的节点。有如下3种方式:先(前)序遍历中序遍历后序遍历2) 广度优先遍历:逐层访问每层节点,即先访问根节点,然后第二层节点……,所以又被称为按层遍历。...

2018-03-24 09:11:55 154

原创 Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.18.1

问题描述eclipse 导入一个 Maven 工程时,pom.xml 文件第一行的XML文档声明处报错,红叉处提示如下错误:Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.18.1 from https://repo.maven.apache.org/maven2 was cached in...

2018-03-17 10:16:33 4801 1

原创 MySQL 表增加字段,修改字段名、字段类型,删除字段语句整理

1、表(t_tbl)增加字段– 添加一个名为 col_name_add 的字符字段 alter table t_tbl add column col_name_add varchar(20);2、修改字段名– 将 col_name_old 的字段名改为 col_name_new 的字段名 alter table t_tbl change column col_name_old ...

2018-03-10 19:00:47 15914

原创 java 实现通过 post 方式提交json参数

由于所爬取的网站需要验证码,通过网页的开发人员工具【F12】及在线http post,get接口测试请求工具发现访问时加上请求头header 信息时可以跳过验证码校验。而且该网站只接受post请求,对提交的参数也只接受json格式,否则请求失败。现将通过 post 方式提交json参数的方法记录如下:import java.io.UnsupportedEncodingExcepti...

2018-03-04 23:36:01 13406 3

原创 com.alibaba.fastjson.JSONException: unclosed string : 米

问题描述解析json字符串时,报如下错误:com.alibaba.fastjson.JSONException: unclosed string : 米...问题原因该问题是因为json字符串中含有“\”导致的,如:{"mc":"***\米***"}其他字符的这种报错原因类似。解决方法去掉json字符串中的“\”:str = str.replaceAll(...

2018-03-04 18:41:52 33987

原创 java 替换字符串中的\t 制表符

问题描述解析json字符串时,报如下错误:com.alibaba.fastjson.JSONException: syntax error, pos 100, json :{"successed":"true","pageNo":1,"pageSize":100,"orgList":[{"mc":" ***经营部"}}]}json 解析错误第

2018-03-04 18:30:06 8467

疯狂Java:突破程序员基本功的16课

在本书中,作者一改枯燥的教学方式,专门面向java初学者可能会遇到的各种学习问题,由点及面,详细讨论了java内存管理、java编程过程中常遇陷阱、常用数据结构的java实现和java程序开发的方法与经验等内容。

2017-12-31

构造小波基

% 此程序实现构造小波基 % wavelet_function.m function wavelet_function; clear;clc; % global MOMENT; % 消失矩阶数 % global LEFT_SCALET; % 尺度函数左支撑区间 % global RIGHT_SCALET; % 尺度函数右支撑区间 % global LEFT_BASIS; % 小波基函数左支撑区间 % global RIGHT_BASIS; % 小波基函数右支撑区间 % global MIN_STEP; % 最小离散步长 % global LEVEL; % 计算需要的层数(离散精度) % global MAX_LEVEL; % 周期小波最大计算层数

2012-09-25

Daubechies小波

Daubechies小波程序 % 此程序实现构造小波基 % periodic_wavelet.m function ss=periodic_wavelet; clear;clc; % global MOMENT; % 消失矩阶数 % global LEFT_SCALET; % 尺度函数左支撑区间 % global RIGHT_SCALET; % 尺度函数右支撑区间 % global LEFT_BASIS; % 小波基函数左支撑区间 % global RIGHT_BASIS; % 小波基函数右支撑区间 % global MIN_STEP; % 最小离散步长 % global LEVEL; % 计算需要的层数(离散精度) % global MAX_LEVEL; % 周期小波最大计算层数

2012-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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