- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 HashMap源码解读(jdk1.8)
本文基于jdk1.8解读HashMap关键代码HashMap是非线程安全的,在多线程环境下要使用ConcurrentHashMap存储结构HashMap的存储结构是数组 + 链表 + 红黑树,当链表的长度大于等于8时,链接转成红黑树初始化HashMap初始容量是16,默认负载因子是0.75当然初始化的时候也可以传入指定容量大小。那么是不是传入多少,初始化的容量就是多少呢?/** ...
2018-11-29 10:17:45 155
原创 数据库幻读_脏读_不可重复读
要清楚幻读、脏读、不可重复读,必须先搞清楚事务的隔离级别事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。隔离级别脏读不可重复读幻读Read uncommitted√√...
2018-11-26 12:58:44 986
原创 如何对map进行排序
Map介绍常用的Map有HashMap,TreeMap,LinkedHashMapHashMap:最常用的Map,根据key的HashCode值来存储数据,根据key可以直接获取它的Value,具有很快的访问速度。HashMap最多只允许一条记录的key值为null(多条会覆盖);允许多条记录的Value为null。非线程安全TreeMap: 根据key排序,默认是按升序排序,也可以指定排序...
2018-11-22 16:05:40 40567
原创 多线程之Future使用详解
什么是FutureFuture是一个未来对象,里面保存这线程处理结果,它像一个提货凭证,拿着它你可以随时去提取结果什么时候使用在两种情况下,离开Future几乎很难办。一种情况是拆分订单,比如你的应用收到一个批量订单,此时如果要求最快的处理订单,那么需要并发处理,并发的结果如何收集,这个问题如果自己去编程将非常繁琐,此时可以使用CompletionService解决这个问题。Comple...
2018-11-22 16:03:28 7326 1
原创 Memcached安装及配置
文章目录准备安装安装libevent安装memcached安装memcached-replication启动测试基本 memcached 客户机命令memcached 修改命令参数缓存管理命令参考资料java客户端与hibernate集成参考资料memcached-session-manager介绍环境准备的jar包配置参考资料准备从http://memcached.org/下载最新版的mem...
2018-11-21 14:50:15 4797
原创 JAVA实现网页抓取(htmlunit)
准确条件加入依赖jar包<dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version
2018-11-21 14:13:38 8412
原创 mysql存储过程批量更新
mysql存储过程批量更新以下sql单独运行没问题,但是在存储过程中执行2次就会报错update tbl_a a ,tbl_b b set a.name =b.name where a.id=b.id在存储过程中,取代的方案是使用游标循环更新drop procedure IF EXISTS test_proc;delimiter //create procedure test_pro...
2018-11-21 13:47:38 1277
原创 不用使用中间变量让两个int变量的值互换
不用使用中间变量让两个int变量的值互换这个问题在面试的时候出现概率很高,相信还有很多人不会在回答这个问题前,让我们先看看异或这个运算符什么是异或变量的值不同时结果为1,值相同时结果为0在java中异或的符号是 ^,具体运算结果看下表:ab值000011110101正确做法了解了什么是异或后,我们在看看看正确的做法,代码如...
2018-11-20 20:16:12 917
原创 JWTs结合SpringCloud使用代码示例
文章目录什么是JWT在什么时候使用JWTsJWTs结合SpringCloud使用首先,需要创建一个独立的gate服务后台服务工程添加过滤器总结什么是JWTJSON Web Token (JWT)是一种基于 token 的认证方案。简单的说,JWT就是一种Token的编码算法,服务器端负责根据一个密码和算法生成Token,然后发给客户端,客户端只负责后面每次请求都在HTTP heade...
2018-11-18 11:17:49 6440 4
原创 红黑树简介
什么是树树是一种数据结构,有一个根节点每个节点包含n(n>=0)个子节点没有子节点的节点称为叶子节点二叉树二叉树是每个节点最多有两个子树的树结构通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树常被用于实现二叉查找树和二叉堆二叉树的节点放置规则是:任何节点的键值一定大于其左子树中的每一个节点的键值,并小于其右子树中每一个节点的...
2018-11-17 23:35:16 186
原创 一致性hash算法代码实现
什么是一致性hash一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多Memcached server上的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删Memcached Server的问题(增删server会导致同一个key,在get操作时...
2018-11-16 20:55:08 693
原创 使用zookeeper作为服务注册中心
zookeeper作为服务注册中心下载安装zookeeper官网下载最新版,修改conf/zoo.cfg配置文件,如果是windows系统必须指定dataDir具体路径运行bin/zkServer.cmd启动zookeeper服务注意,zookeeper版本必须高于工程依赖的zookeeper客户端版本工程配置pom文件添加依赖<dependency> &...
2018-11-15 16:35:52 526
原创 maven发布插件:maven-release-plugin
maven发布插件:maven-release-plugin提供自动化发布功能,自动升级版本,并将代码提交git服务器添加插件依赖,pom.xml配置配置插件<plugin> <groupId>org.apache.maven.plugins</groupId> <artifa
2018-11-15 16:31:51 3210
原创 SpringBoot SpringCloud学习
文章目录SpringBoot SpringCloud学习1. 创建基本maven工程,修改pom.xml,完整内容如下2. 新建Application.java类,添加注解配置3. 添加main方法4. 使用RestTemplate调用远程服务5. 配置数据源6. 集成zookeeper7. 集成eureka服务eurekaServer配置eurekaClient配置8. 其他配置9. 单元测试1...
2018-11-15 16:16:26 439
转载 http 协议简单介绍
httpHTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。http 请求客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request ...
2018-11-14 17:06:06 202
原创 ArrayList源码解读
本文基于jdk1.8解读ArrayList关键代码ArrayList是非线程安全的,在多线程环境下要使用CopyOnWriteArrayList存储结构ArrayList内部存储结构是数组,ArrayList的容量就是数组的长度/** * The array buffer into which the elements of the ArrayList are stored. * Th...
2018-11-14 11:21:47 126
转载 高可用架构设计思路
什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如何保障高可用减少单点,服务器集群化服务分层,并且每层都是集群,当集群中一个节点发生故障时,要自动将请求转移到可用节点上,此转移过程要对调用方透明常见的服务分层思路客户端层:典型调用方是浏览器browser或者手机应用APP反向代理...
2018-11-14 10:23:35 1051
原创 mysql数据库空间大小查询
前台线程定义:普通线程又可以称为用户线程,只完成用户自己想要完成的任务,不提供公共服务。通过new Thread()产生的线程默认都是前台线程。前台线程在程序执行完成后,才会自己退出,不会随着主线程的退出而退出。假设main线程已经退出了,但是该线程还未执行完成,还会继续执行直到线程自己退出。java线程池启动的是前台线程后台线程定义:指在程序运行的时候在后台提供一种通用服务的线程,并...
2018-11-12 20:28:53 182
原创 SpringBoot集成Swagger
文章目录SpringBoot集成Swagger引入jar包编写配置类文档注解示例常用注解说明启动并访问参考资料SpringBoot集成Swagger引入jar包<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2&am
2018-11-09 19:47:10 207
原创 logstash+elasticsearch+kafka统一日志收集
文章目录logstash+elasticsearch+kafka统一日志收集环境准备参数配置其他说明通过kafka搜集日志引入第三方包kafka-log4j-appender配置kafka appenderlogstash配置kafka输入参考资料logstash+elasticsearch+kafka统一日志收集环境准备以下相关软件可从(http://pan.baidu.com/s/1c1...
2018-11-09 19:28:37 4689 1
原创 Redis集群配置
Redis集群配置编译安装redis参考redis安装创建redis节点先每个节点单独创建一个配置文件如redis1.conf,redis2.conf,redis3.conf,redis4.confbind 192.168.1.41daemonize yes //redis后台运行pidfile /var/run/redis...
2018-11-09 18:56:59 168
原创 Redis 安装使用
redis 安装使用说明高性能缓存中心。发布/订阅,支持消息事务,支持lua脚本,支持数据存储支持master/slave主从配置3.0以后版本支持分布式下载安装从官网下载3.0之后的版本 下载linux安装wget http://download.redis.io/releases/redis-3.2.1.tar.gztar xzf redis-3.0.6.tar.gz...
2018-11-09 18:55:51 170
原创 jdk8 Lambda 表达式详解
lambda表达式主要是用来替换匿名内部类。必须配合函数接口一起使用。JDK中大多数接口已经被声明为函数接口函数接口必须使用@FunctionalInterface声明,并且,接口中只能有一个抽象方法,可以有其他的默认方法(default)或静态方法(static)@FunctionalInterfacepublic interface Formula { //抽象方法 ...
2018-11-08 17:49:12 270
原创 java前台线程和后台线程
前台线程定义:普通线程又可以称为用户线程,只完成用户自己想要完成的任务,不提供公共服务。通过new Thread()产生的线程默认都是前台线程。前台线程在程序执行完成后,才会自己退出,不会随着主线程的退出而退出。假设main线程已经退出了,但是该线程还未执行完成,还会继续执行直到线程自己退出。java线程池启动的是前台线程后台线程定义:指在程序运行的时候在后台提供一种通用服务的线程,并...
2018-11-08 17:47:47 252
原创 【Java进阶】Java线程间通讯的几种方式
一、使用同一个共享变量控制Synchronized、wait、notifyLock、Condition利用volatile利用AtomicInteger二、PipedInputStream、PipedOutputStream三、利用BlockingQueue
2018-11-06 20:28:29 20357 2
原创 升级springBoot2.0注意事项
升级springBoot2.0注意事项配置修改server.servlet.context-path:/baseureka server<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-sta
2018-11-06 18:41:43 459
原创 微信支付对接【踩坑实录】
文章目录微信支付对接【踩坑实录】公众号支付必备条件注意点环境配置页面开发微信支付对接【踩坑实录】公众号支付必备条件拥有一个认证过的公众号公众号开通微信支付注意点timestamp参数js使用的是小写,后台签名使用的是timeStamp(大写S)签名算法必须使用MD5,并且下单的签名算法也必须是MD5(微信的demo sdk留下一个巨大的坑,判定Sandbox环境使用MD5,其...
2018-11-06 18:24:31 417
原创 vue简介
文章目录vue简介安装命令行工具 (CLI)Vue 实例数据与方法模板语法文本原始 HTML特性使用 JavaScript 表达式指令参数修饰符缩写v-bind 缩写v-on 缩写计算属性和侦听器计算属性 vs 侦听属性计算属性的 setterClass 与 Style 绑定绑定 HTML Class数组语法条件渲染列表渲染事件处理监听事件事件修饰符按键修饰符表单输入绑定修饰符组件使用组件全局注册...
2018-11-06 18:22:20 173
原创 Java泛型通配符extends与super
java 泛型关键字说明? 通配符类型<? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类<? super T> 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至Objectextends 示例static class Food{}static class Fruit e...
2018-11-06 18:15:01 321
原创 Lock和synchronized的区别和使用
Lock和synchronized的区别和使用同步的三个特性:原子性、可见性、有序性synchronized没办法手动释放锁,正因为这样,有可能会导致死锁加锁的三个位置:实例方法,以当前实例对象为锁静态方法,以当前class为锁代码块,指定锁对象java虚拟机对Synchronized的优化锁的状态分四种:无锁状态、偏向锁、轻量级锁、重量级锁随着锁的竞争,锁可以从偏向锁升级...
2018-11-06 17:37:56 267
原创 模板引擎thymeleaf简介
文章目录模板引擎thymeleaf简介配置,结合springBoot语法简介基本表达式工具类表达式示例,格式化日期th:object 选中对象(*号表达式)th:block标签Expression inliningth:removeEL表达式直接调用bean方法表达式参考资料模板引擎thymeleaf简介Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境...
2018-11-06 17:35:10 466
视频解说设计模式,设计模式的由来,分类,以及关联
2024-01-03
快速排序算法解说,动画演示
2024-01-03
归并排序解说,动画演示
2024-01-03
希尔排序算法解说,动画演示
2024-01-03
选择排序算法解说,动画演示
2024-01-03
排序算法详解,动画演示
2024-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人