自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人人都是程序员

路漫漫,其修远,吾将上下而求索~~~

  • 博客(152)
  • 资源 (1)
  • 收藏
  • 关注

原创 字节码?原来如此!

目录什么是字节码?字节码文件内容如下:字节码结构魔数:版本号:Access_flags访问标志当前类名父类名称接口信息字段表方法表附加属性表有哪些操作查看字节码?第一步: javac A.java 编译生成 A.class第二步: 使用 javap -c A.class 或 javap -verbose A.class 都可查看字节码文件 什么是字节码? 字节码(Byte-code)是一种包含执行程序、由一序列 op 代码/数据对..

2020-05-26 21:05:22 1252

原创 JVM对象问题一篇搞定! 对象创建-内存分配-内存大小估算-内存布局-初始化过程-对象锁升级-对象访问方式

你知道 new Object(); 对象new 出后JVM 在内存的哪一块新建的么?给多大内存合适?对象在内存中布局是怎样的?初始化顺序是怎样的?Java的锁升级到底是怎么升级的?对象的访问有哪几种?这么多的疑难问题都在这一篇里有答案!果然有赚到!

2020-05-20 16:37:11 439

原创 Redis5.0.9 一篇理解数据结构之跳跃表[zskipList]

说到跳跃表需要先对有序链表做一定了解1.有序链表我们知道在有序链表中元素都是有序排列的,平均时间复杂度是O(N), 并且每个节点都有指向下一节点的指针,最后一个节点指向NULL ,查询时间复杂度是O(n)。 插入和删除的操作也都是需要找到合适位置再做next 指针的修改操作。对于图中的有序链表,如果我们要查询到值为27的节点,是需要比较4次才可以。 2-> 14-> 19-> 27那如果对于有序链表我们做了分层,每一层都是一个有序链表,并且在查找时候从最高层级开始,比较

2020-05-14 16:40:14 483

原创 Redis5.0.9 一篇理解数据结构之Simple Dynamic Strings

从简单入手Simple Dynamic Strings 动态字符串是Redis 的基本数据类型之一,也是最常见的数据类型。兼容了C语言标准字符串处理函数,在此基础上保证了二进制安全。1.常用命令 SET str1 helloWorldGET str1TYPE str1STRLEN str1 2.源码源码文件在redis/src/sds.h. sds.c //创建sdstypedef char*sds;/* Note: sdsh...

2020-05-11 16:41:47 227

原创 Redis5.0 源码下载及编译

--

2020-05-08 11:45:05 3850 1

原创 Redis5.0 一篇理解新版特性

Redis5.0 新特性 新增Streams 数据类型 , 添加了新的模块API、定时器、集群及字典 RDB中持久化存储LFU和LRU的信息 redis-cli 中的集群管理器从 Ruby (redis-trib.rb) 移植到了 C 语言代码。执行`redis-cli --cluster help` 命令以了解更多信息 新的有序集合(sorted set)命令:ZPOPMIN...

2020-05-07 22:16:04 175

原创 使用建造者模式(Builder Pattern) 设计Excel导出场景,附源码

目录建造者模式(Builder Pattern)简单介绍:常见Excel导出场景常见Excel 导出编码过程-结合过程查看代码本文中的Excel导出使用方式使用建造者模式设计Excel 导出源码地址 https://github.com/fzmeng/Excelbuild 建造者模式(Builder Pattern)简单介绍: 将一个复杂对象的构建和它...

2019-12-29 15:34:14 654 6

原创 Mysql 如何高效存储IPv4 地址

在MySQL存储数据时,我们需要优先考虑数据的类型和数据容量以及最重要的是数据使用时的性能问题。所以我们应该尽量选择可以正确存储数据的最小数据类型。最小的数据类型通常占用更少的磁盘、内存和CPU缓存,而且处理时需要的CPU周期也更少。人们经常使用VARCHAR(15) 来存储IP 地址,然而,它们实际是32位无符号整数,不是字符串。用小数点分成4段表示方法只是为了阅读容易。所以应该用无符号...

2019-11-01 15:22:49 798

原创 RabbitMQ 系列之分布式事务处理-最终一致性-SpringBoot实现

目录分布式事务应用场景:如何使用RabbitMQ 解决分布式事务-最终一致性:实现场景:用户下单service - 扣减用户积分 service结合Springboot 处理分布式事务-为减少篇幅,只列出主要几块代码,详见文末源码链接:maven-parent . pom.xml以下是Maven-module.orderProducer 生产者模块内容mav...

2019-06-05 12:27:47 8232 16

原创 Springboot+Mybatis+Mysql+Druid+读写分离+数据源动态切换

为什么要实现读写分离? 业务场景1-读库多写库少。 业务场景2-写库的时间太长影响读库的效率 如何实现读写分离? 本文框架采用SpringBoot +Mybatis+Druid 来实现读写分离 文末含源码,感谢大家参与 框架结构 application.yml server: port: 8080datasource: business: ...

2019-04-28 17:11:32 3880

转载 Java在PDF中添加水印(文本/图片水印)效果import com.spire.pdf.*; import com.spire.pdf.graphics.*; import java.awt.*;

水印是一种十分常用的防伪手段,常用于各种文档、资料等。常见的水印,包括文字类型的水印、图片或logo类型的水印。以下Java示例,将分别使用insertTextWatermark(PdfPageBase page, String watermark)方法以及page.SetBackgroundImage(String arg0)方法来设置文本水印和图片水印。下面将演示具体的代码操作,内容供参考。...

2019-03-26 13:50:51 3438 1

原创 并发限制-nginx - ngx_http_limit_zone_module

HttpLimit zone本模块可以针对条件,进行会话的并发连接数控制。(例如:限制每个IP的并发连接数。)__配置示例__http {: limit_zone one $binary_remote_addr 10m;: ...: server {: ...: location /download/ {: limit_conn one 1;: }...

2019-03-26 13:26:25 1023

原创 高级篇-剖析Redis

Redis 应用分布式锁 统计计数 bitcount : 位图统计指令 bitpos: 位图查找指令 统计计数-估算去重 HyperLogLog :去重统计 UV,标准误差是0.81% pfadd pfcount incrby 指令统计PV 延时队列 list FIFO (rpush + lpop or lpush + rpop) 阻塞读 br...

2019-03-19 17:15:23 160

原创 基础篇-Map的四种遍历方式

mapSources.keySets() , mapSources.values() 效率快 mapSources.entrySet().iterator() 效率快-可remove kmapSources.keySets() -> mapSources.get(key). 效率低 Map.entry<String,Object> entry: mapSo...

2019-03-19 16:09:13 131

原创 基础篇-比较HashMap,HashTable,ConcurrentHashMap,Collections.synchronizedMap

HashMap 数据结构: 数组+链表 + 红黑树(1.8) 实现Map接口 继承AbstractMap类 K ,V 存储 ,KV 可null 非Synchronized 线程不安全 HashTable 实现Map接口 继承Dictionary类 K,V 存储,KV 不可null Synchronized 线程安全 并发-Collectio...

2019-03-19 16:08:02 343

原创 基础篇-比较LinkedList ,ArrayList ,Vector

linkedList 存储结构:双向链表 插入、删除 效率高,查询效率低 非RandomAccess 接口实现 时间复杂度O(n) O(n2)平方 foreach &iterator遍历效率快 ArrayList 存储结构:数组 查询效率高,插入、删除效率低 RandomAccess 接口实现 时间复杂度O(1) for遍历效率快 ...

2019-03-19 16:06:15 136

原创 基础篇- 比较Atomic Volatile

atomic 原子性 JDK1.5的原子包:java.util.concurrent.atomic 这个包里面提供了一组原子类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入,这只是一种逻辑上...

2019-03-19 16:04:28 392

原创 Scala这一路 之 模式匹配

摘要:Scala 提供了强大的模式匹配机制,应用也非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 =&gt; 隔开了模式和表达式。 模式类型 常量类型 object ConstantPattern{ def main(args: Array[String]): Unit = { d...

2018-08-03 14:48:58 196

转载 Scala这一路 之 应用-Trait 深入篇

相关:Scala这一路 之 应用-Trait 入门篇目录Trait构造执行顺序Trait与类的比较提前定义与懒加载self type Trait构造执行顺序 import java.io.PrintWritertrait Logger{ println("Logger") def log(msg:String):Unit}trait File...

2018-08-03 14:24:06 314

原创 Scala这一路 之 应用-Trait 入门篇

摘要:Scala 中Trait 相当于Java语言中的Interface (接口),不同的是Trait可以定义属性与方法实现(ps:下一节深入篇会介绍)。相比较来说比接口还要强大些。#保存文件 Equal.scalatrait Equal{ def isEqual(x:Any):Boolean def isNotEqual(x:Any): Boolean = !isEqual(x)}...

2018-07-31 18:03:18 189

原创 Scala这一路 之 应用-文件I/O

I/O操作在任何编程语言中都是非常重要的一节,本文将介绍Scala对于文件的读与写。scala之 io官网介绍:https://www.scala-lang.org/api/current/scala/io/index.html目录写文件读文件 写文件 #文件writer.scalaimport java.io._object FileWriter{ de...

2018-07-31 17:05:33 212

原创 Scala这一路 之 高级语法3-List、Iterator、Set、Map、元组Tuple

摘要:Scala Collection 提供了一系列集合类型,这些类型又分为可变的与不可变的。可变集合大家可以随意去做增删改集合中的元素,对于不可变集合大家也可以去做增删改,但是每一种操作后都会返回一个新的集合,之前的集合是不会改变的。不过在纯函数式程序是不会使用可变变量的。使用可变变量多加小心!官网链接:https://www.scala-lang.org/api/current/?_ga=...

2018-07-31 16:24:21 992

原创 Scala这一路 之 高级语法2-方法与函数

引用:Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。Scala 中的方法跟 Java 的类似,方法是组成类的一部分。Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象。Scala 中使用 val 语句可以定义函数,def 语句定...

2018-07-24 18:02:29 241

原创 Scala这一路 之 高级语法1-循环

本文介绍判断语法if{...}else if {...}else{...} 与循环语法for循环(重点),while循环,do..while循环。下面简单说下这些语法在Scala中的运用。。。目录if...else if ...else ...do..while...while ... 重点说下for循环,for循环的应用场景还是比较多的 if...else if ....

2018-07-24 16:51:59 370

原创 Scala这一路 之 修饰符

前言:"修饰符“ 开发人员对这个词并不陌生,Java中常见的修饰符"private"表示私有的,”public"公共的,"protected"受保护的。这些修饰符在代码中作用是限制访问域,友好的管理了代码的区域权限。

2018-07-23 19:08:46 216

原创 Scala这一路 之 基础语法+数据类型

首先我们需要了解Scala的执行模式:Scala的执行模式我们从两个方面进行讲解:脚本式和交互式 目录 脚本式举例: 交互式举例: 基本数据类型 运算符: 脚本式举例: 首先我们编写一个脚本,文件名 ScalaDemo1.scala: object ScalaDemo1{ def main(args:Array[String]){ printl...

2018-07-23 18:53:38 481

原创 Scala这一路 之 Mac OS X or Linux安装

目录 安装环境 安装包 下载地址: https://www.scala-lang.org/download/ 配置Scala环境变量 安装环境 MacOSX  Jdk 1.8 安装包 下载地址: https://www.scala-lang.org/download/ 下载后默认在用户Download目录下 #解压cp scala...

2018-07-23 16:56:38 523

原创 Scala这一路 系列

Scala官网 Scala这一路 之 序言 Scala这一路 之 IDE Sublime Text Scala这一路 之 Mac OS X  or Linux安装 Scala这一路 之 基础语法+数据类型 Scala这一路 之 修饰符 Scala这一路 之 高级语法1-循环  Scala这一路 之 高级语法2-方法与函数 ...

2018-07-23 16:41:47 285

原创 Scala这一路 之 序言

官网:https://www.scala-lang.org文章对应Scala Version : 2.12.6关于Scala:Scala是一门运行在JVM之上的静态类型语言,用来开发多线程和分布式的应用程序。结合了面向对象编程和函数式编程思想的优点。可以与Java集成,可以在Scala中使用Java的库,反之亦然。关于面向对象编程,相信很多涉及到JAVA编程的小伙伴已经很熟悉了。...

2018-07-23 16:40:38 207

原创 MySQL之EXPLAIN 执行计划详解

explain 可以分析 select 语句的执行,即 MySQL 的“执行计划。一、type 列MySQL 在表里找到所需行的方式。包括(由左至右,由最差到最好):| All | index | range | ref | eq_ref | const,system | null |ALL(所有)全表扫描,MySQL 从头到尾扫描整张表查找行。mysql&gt; ex...

2017-11-15 16:15:00 211

原创 关于RestFul API 介绍与实践

之前演示的PPT,直接看图。。。  •参考链接:•RESTful API 设计最佳实践•RESTful API 设计指南•SOAP webserivce和 RESTfulwebservice对比及区别 转载请注明出处:作者:mengfanzhu原文链接:http://www.cnblogs.com/cnmenglang/p/7060135.html ...

2017-06-21 16:15:00 309

原创 搜索引擎ElasticSearchV5.4.2系列三之ES使用

相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装 搜索引擎ElasticSearchV5.4.2系列三之ES使用1.启动ES ,Kibana cd elasticsearch-6.0.0-alpha2/...

2017-06-21 15:35:00 144

原创 搜索引擎ElasticSearchV5.4.2系列一之ES介绍

相关博文:搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装 搜索引擎ElasticSearchV5.4.2系列三之ES使用 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache L...

2017-06-21 15:13:00 225

原创 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装

相关博文:搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+klanaV5.4.2+x-packV5.4.2安装 搜索引擎ElasticSearchV5.4.2系列三之ES使用linux &amp; windows 安装ES参考官网:https://elasticsear...

2017-06-21 10:48:00 388

原创 Redis常见业务场景应用

一定时间范围内不可重复发短信问题Redis实现消息队列Redis实现Session共享   ... 

2017-06-07 18:59:00 1230

原创 从消费者角度评估RestFul的意义

相关博文:从消费者角度评估RestFul的意义SpringBoot 构建RestFul API 含单元测试      REST是目前业界相当火热的术语,似乎发布的API不带个REST前缀,你都不好意思和别人打招呼了。 然而大部分号称REST的API实际上并没有达到Richardson成熟度模型的第三个级别:Hypermedia。 而REST的发明者Roy Fielding博士更是直...

2017-05-24 18:14:00 123

原创 SpringBoot 构建RestFul API 含单元测试

相关博文:从消费者角度评估RestFul的意义SpringBoot 构建RestFul API 含单元测试首先,回顾并详细说明一下在快速入门中使用的  @Controller 、  @RestController 、  @RequestMapping 注解。如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下快速入门的内容。 @Control...

2017-05-24 18:06:00 126

原创 大数据系列之并行计算引擎Spark部署及应用

相关博文:大数据系列之并行计算引擎Spark介绍之前介绍过关于Spark的程序运行模式有三种:1.Local模式;2.standalone(独立模式)3.Yarn/mesos模式本文将介绍Spark安装及运行模式的第1、3两种模式。安装包:  spark-2.1.0-bin-hadoop2.7.tgz   size:195MB  下载链接: https://pa...

2017-04-20 00:29:00 442

原创 大数据系列之并行计算引擎Spark介绍

相关博文:大数据系列之并行计算引擎Spark部署及应用Spark:    Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。    Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduc...

2017-04-19 22:59:00 1251

原创 FastDFS集群部署

之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例下面来玩下FastDFS集群部署,实现高可用(HA)服务器规划:跟踪服务器1【主机】(Tracker Server):192.100.139.121跟踪服务器2【备机】(Tracker Server):192.100.139.122存储服务器1(Storage Server):192.1...

2017-04-18 23:45:00 130 1

Java并发编程技术总结

Java并发编程技术总结,所含内容有并发特性、并发锁、线程池、并发场景解决方案等,对于性能思考和内容参考资料有一定说明

2020-05-21

空空如也

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

TA关注的人

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