- 博客(129)
- 资源 (25)
- 收藏
- 关注
原创 ConcurrentHashMap源码分析
基本原理Java7 基本数据模型:数组+Segment<K,V>[] segments+HashEntry<K,V>[] table+链表组成,锁通过Cas+Lock锁实现。基本原理简介:ConcurrentHashMap由一个个 Segment 组成,Segment 代表部分或分段的意思,所以很多地方都会将其描述为分段锁。通俗易懂的说,ConcurrentHashMap 是一个Segment数组,Segment通过继承 ReentrantLo...
2020-11-25 18:13:33
293
2
原创 手写简单LinkList集合
package com.zl.ext.collection;/** * @packagb:com.zl.ext.collection * @Author: fab * @Description:基于双向链表实现 * @Date: * @Modified By: */public class MylinkList<E> { int size = 0; /** * 记录当前链表的头节点 */ public Node<E.
2020-11-23 19:58:18
255
原创 手写简单Arraylist集合
package com.zl.ext.collection;import java.util.Arrays;/** * @packagb:com.zl.ext.collection * @Author: fab * @Description:数组实现Arralist,主要是扩容(添加元素)和缩容问题(删除元素) * @Date: * @Modified By: */public class MyExtArrayList<T> { /** * 初始化数.
2020-11-23 19:56:24
257
原创 JDK1.8HashMap源码分析
HashMap源码分析基本实现原理首先有一个每个元素都是链表的数组,当添加一个元素(key-value)时,就首先计算元素key的hash值,以此确定插入数组中的位置,但是可能存在同一hash值的元素已经被放在数组同一位置了,这时就添加到同一hash值的元素的后面,他们在数组的同一位置,但是形成了链表,同一各链表上的Hash值是相同的,所以说数组存放的是链表。而当链表长度太长时,链表就转换为红黑树,这样大大提高了查找的效率。当链表数组的容量超过初始容量的0.75时,再散列将链表数组扩大2倍,把原链表
2020-11-17 19:30:52
263
原创 基于注解@Async的SpringBoot异步调用
应用场景:异步调用通常用在发短信、发送邮件、消息推送 、运维凌晨自动化操作等,这些场景实时性要求不高,大多都是推广统计等服务。概述SpringBoot 中通过线程池来异步执行任务的两种方法:通过 Spring 自带的 @EnableAsync 和 @Async 两个注解实现异步执行任务功能通过自定义的方式在通过 @EnableAsync 和 @Async 两个注解...
2020-01-22 14:09:44
272
原创 SpringBoot+Websocket+stomp
第一步:引入pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoc...
2019-11-24 10:04:26
543
原创 SpringBoot+ELK+Kafaka
ELK由Elasticsearch、Logstash和Kibana三部分组件组成。Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用。kibana 是一个开源和免费的工具,它可以为 ...
2019-09-12 23:04:49
2167
原创 CenOS7下ELK日志分析搭建
ELK由Elasticsearch、Logstash和Kibana三部分组件组成;Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用kibana 是一个开源和免费的工具,它可以为 L...
2019-09-12 22:41:22
504
原创 CenOS7下Elasticsearch安装和自动重启配置
ElasticsearchElasticsearch安装1.下载ElasticSearch[root@localhost 20190903]# wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz2. 创建加压目录[root@localhost loca...
2019-09-12 22:19:43
873
原创 CentOS7下kafka安装和开机自动重启配置
由于kafka依赖于zookeeper所以应首先安装zookeeper。Zk安装1.下载zk从官网下载:http://apache.mirror.colo-serv.net/zookeeper/zookeeper-3.4.14/2.创建zk安装目录[root@localhost local]# mkdir zk3.解压zookeeper-3.4.14[root@lo...
2019-09-12 22:02:34
1395
原创 CentOS7下RabbitMq安装和开机自启动配置
安装RabbitMq由于rabbitmq是用erlang语言编写所以需要先安装erlang1.在安装erlang之前先安装下依赖文件(这一步不要忘掉了, 不然后面./configure的时候要报错):[root@localhost 20190903]# yum install gcc glibc-devel make ncurses-devel openssl-devel xml...
2019-09-12 21:37:28
12235
10
原创 CentOS7下安装Consul和自启动配置
安装1.下载Consul[root@localhost 20190903]wget https://releases.hashicorp.com/consul/0.9.3/consul_0.9.3_linux_amd64.zip2.解压[root@localhost 20190903]# unzip consul_0.9.3_linux_amd64.zip3.验证是否...
2019-09-11 23:26:22
5022
原创 CentOS7下ActitMq安装和自启动配置
1. 下载ActiveMQ,http://activemq.apache.org/activemq-5152-release2.上传到Centos上[root@localhost 20190903]# lsapache-activemq-5.15.2-bin.tar.gz jdk-8u211-linux-x64.tar.gz redis-3.0.6.tar.gz3.创建acti...
2019-09-11 22:57:45
229
原创 Cenos7下安装jdk
1.查看是否安装jdk(rpm -qa | grep java)2.卸载掉系统自带的jdk(箭头标识),命令:rpm -e --nodeps 后面跟系统自带的jdk名比如卸载第一个:rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64rpm -e --nodeps java-1.7.0-open...
2019-09-11 22:33:58
122
原创 Cenos7下安装Redis和自动重启配置
1.下载redis安装包2.解压安装包[root@localhost 20190903]# tar -zxvf /usr/20190903/redis-3.0.6.tar.gz -C /usr/local/redis3.编译安装Redis[root@localhost redis-3.0.6]# make&&make install执行之后在/usr...
2019-09-10 23:48:55
608
2
原创 Centos7下Nginx安装与自启动配置
第一:安装工具及依赖[root@localhost 20190903]# yum install -y wget make cmake gcc gcc-c++[root@localhost 20190903]# yum install -y pcre pcre-devel lib zlib-devel[root@localhost 20190903]#openssl openssl-d...
2019-09-10 23:31:33
1520
原创 Redis配置文件—redis.conf
常见配置redis.conf介绍:1.Redis默认不是以守护进程的方法运行,可以通过该配置修改,使用yes启用守护进程。daemonize no2.当Redis以守护进程的方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定。pidfile/var/run/redis.pid3.指定Redis监听端口,默认端口为6379,为
2018-01-18 19:07:19
311
原创 Redis基本数据类型
Redis五大数据类型(1)String(字符串):是Redis最基本的数据类型,可以理解成与Memcached一模一样的类型一个key对应一个value。String类型是二进制安全的。意思是Redis的String可以包含任何数据。比如jpg图片或者序列化的对象。String类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。(2)Hash(哈希,类似java
2018-01-18 10:34:04
360
原创 用dbvisualizer查看informix数据库内容是乱码,怎么解决?
在连接URL中, 增加DB_LOCALE=en_us.819;CLIENT_LOCALE=en_us.57372;NEWCODESET=GBK,8859-1,819示例:jdbc:informix-sqli://:/:informixserver=;DB_LOCALE=en_us.819;CLIENT_LOCALE=en_us.57372;NEWCODESET=GBK,8859-1,819
2018-01-04 16:21:38
1402
2
原创 Infromix数据库海量数据备份
第一:导出数据常用命令:dbaccess << --!database bbspdp;unload to student.ins select * from disc_bill_info;!--bbspdp:数据库名称、student.ins:导出数据文件名称、disc_bill_info:为数据库表显示图片:特别提示:student.ins导出数据文件名称,
2017-12-27 11:03:09
515
原创 Mysql批量数据导入
建库创建数据库脚本CREATE DATABASE bigDate;USE bigDate;建表1.创建emp表CREATE TABLE `emp` ( `id` int(11) NOTNULL AUTO_INCREMENT COMMENT 'id', `empno`mediumint(9) NOT NULL DEFAULT '0' COMMENT '编号'
2017-12-11 21:21:07
464
原创 Mysql之我见九(表锁)
(1)表锁分析可以通过检查table_locks_waited和table_locks_immediate状态变量来分析系统上表锁定:SQL:show status like 'table%';重要结论:Myisam的读写锁调度是写优先,这也是myisam不适合做写主表的引擎,因为写锁后,其它线程不能做任何操作,大量的更新会使查询很难得到锁,从而造成永久阻塞。
2017-12-11 10:35:03
275
原创 Mysql之我见八(锁)
1.锁锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算机(cpu、RAM、I/O等)的争用以外,数据也是一种供多用户共享的资源,如何保证数据并发访问的一致性、有效是所有数据必须解决的一个问题,锁冲突也是影响数据库并发性能的一个重要因素,从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。读锁(共享锁):针对同一份数据,多个读操作可以同事进行而不相
2017-12-11 10:32:40
160
原创 Mysql之我见十(行锁)
(1)InnoDB同MyISAM对比缺点:InnoDB存储引擎,开销大,加锁慢,会出现死锁,锁定粒度最小,发生锁冲突的概率最低,并发度也不高。优点: InnoDB同MyISAM的最大不同有:支持事务、采用了行级锁。事务:由一组SQL语句组成的逻辑单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子行(Atomicity):事务是一个原子的操作单元,其对数据的修改,要么全部
2017-12-10 22:17:05
403
原创 Mysql之我见六(查询截取分析)
(1)查询优化1.优化原则:小表驱动大表,即小的数据集驱动大的数据集2.Exists和In的区别Exists语法:select * from table where exists(subquery)将主查询的数据,放到子查询中做条件验证,根据条件的验证结果(true 或者 false)来决定查询的数据结果是否可以保留。A: exists(subqury)只返
2017-12-08 17:43:57
269
原创 Mysql之我见四(索引优化)
(1)索引失效的常见情况1.全值匹配2.最佳左前缀法则,如果索引有多列,要遵循最左前缀法则,指的是查询冲索引的最左前列开始并且 不跳过索引中的列。3.不要在索引上做任何的操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描4.存储引擎不能使用索引中范围条件右边的列5.尽量使用覆盖索引(只访问索引的查询(索引和查询的列一致)),减小select *6
2017-12-07 15:12:15
184
原创 Mysql之我见三(join查询)
1.Sql解析2.常见join查询SELECT * FROM staff;SELECT * FROM department;(1)内链接(通俗的说就是取2张表的公共部分)select from TableA A inner join TableB B on A.Key=B.Key;SELECT * FROM staff
2017-12-06 19:22:20
608
原创 Mysql之我见二(索引)
1.索引Mysql官方对索引的定义为:Index是帮助Mysql高效获取数据的数据结构。(其本质索引是数据结构)也可以简单的理解为“排好序的快速查找的数据结构”。数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某张方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法这种数据结构就是索引。2.常用的创建索引的方法
2017-12-06 19:12:49
188
原创 Mysql之我见一(基础知识)
1.Mysql简介2.Mysql配置文件3.Mysql逻辑架构和其它数据库相比,Mysql有点与众不同,它的架构可以在多种不同的场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插拔式存储架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。(1)连接层最上一层是一些客户端和连接服务,
2017-12-06 19:04:30
195
原创 WebService学习之我见
1.WebService是什么(1)基于Web的服务,服务器端整出来一些资源让客户端应用访问(获取数据)(2)一个跨语言、跨平台的规范(抽象)(3)多个跨平台、跨语言的应用间通信整合的方案(实际)
2017-12-05 15:43:50
192
原创 jbpm基础知识
1.fork和join联合起来来完成同步工作流2.decision节点来完成条件流转的定义,它是一种自动节点3.TaskNone任务节点,主要用来完成任务分配的定义4.startstate开始和结束节endstate点是一种伪节点。5.state状态节点表示一种等待状态。
2017-11-23 09:57:44
199
原创 java线程基础知识
(1)线程常用状态:1.新生状态(New Thread)在创建线程对象之后,尚未调用start()方法之前。这个线程就有了生命,此时线程仅仅是一个空对象,系统没有为期分配资源,此时只能 启动和终止线程,其他人和此操作都会引发异常。2.可运行状态(Runnable)在调用start()方法之后,系统为该线程分配除cpu外的所需资源,这个线程就有了运行的机会,此时处于可运行状态,
2017-11-23 09:55:37
148
原创 java反射
1.java反射机制是在运行状态中,动态获取信息以及动态调用对象方法功能。 2. java反射的3个动态性质: 运行时生成对象实例 运行期间调用方法 运行时更改属性 3. java反射机制在编译时并不确定是哪个类被加载了,而是在运行时才加载、探知、使用,这就是反射的特点。 java反射机制能够知道类的基本结构,这种对java类结构探知的能力,称为jav
2017-11-22 09:38:58
245
转载 出现 DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9 错误的原因及解决方法
1 错误描述在通过「DbVisualizer」执行 SQL 语句插入数据的时候,报出如下错误:2 错误原因通过观察上述标记出来的错误描述:DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9, SQLERRMC = ID然后,查询「史上最全的 DB2 错误代码大全」可知,此错误的原因为:-
2017-11-20 11:31:27
2710
原创 oracle、DB2、Informix常用约束语句
alter table student disable constraint fk_student; --oracle ALTER TABLE student ALTER FOREIGN KEY fk_student NOT ENFORCED; --DB2 ALTER TABLE student ADD CONSTRAINT FOREIGN KEY (college_id
2017-09-28 17:37:39
845
原创 DB2常用命令
1.db2连接数据库su - db2inst1db2 connect to 数据库名 user 用户名 using 密码2.db2信息查询命令db2 list tables #列出所有表名 db2 describe table #表名显示表字段 db2 list db directory
2017-09-04 22:37:07
2431
转载 linux下db2数据库命令
1.db2连接数据库12su - db2inst1db2 connect to 数据库名 user 用户名 using 密码2.db2信息查询命令123456789
2017-09-04 22:24:07
35426
原创 Linux下导出db2数据库还原到windows下
Linux下导出db2数据库还原到windows下1. 切换用户su –db2inst12. 连接数据库db2 connect to 数据库名 user 用户名 using 密码3. 用db2look命令生成DDLdb2look -d bbsp -e -l -o db2look_bbsp.ddl其中bbsp为导出数据库的名称,db2loo
2017-09-04 22:21:36
5398
原创 Oracle中查询、禁用、启用、删除表外键
1、查询所有表的外键:[sql] view plain copyselect table_name, constraint_name from user_constraints where constraint_type = 'R'; 2、禁用所有外键约束, 使用下面的sql生成对应sql脚本:[
2017-08-30 21:44:27
242
转载 Informix数据表结构分析资料整理之约束查询代码
本文主要整理了Informix数据库相关系统表数据,已分析整个Informix数据表结构,同时方便代码自动生成.提示一:systables 存放Informix数据库中所有数据表相关数据提示二:sysconstraints 存放Informix数据库中所有约束相关数据--获取所有用户表的主键约束名称select a.tabname,b.constrname,b.* fr
2017-08-30 20:24:45
543
oracle修改字符集
2018-10-11
redis配置文件
2018-01-11
( 数字图像处理与模式识别
2013-07-07
joffice文档
2013-04-14
VC chat.cpp
2013-04-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人