自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hack_ZZQ

JAVA_py_PHP_Android_渗透

  • 博客(76)
  • 收藏
  • 关注

原创 Springboot 12章 springboot 与任务

Async 任务所谓异步任务就是开启多个线程处理一个请求,一个线程响应完成信息,一个线程处理业务, 这样很快,对客户来说springboot 提供了两个注解 进行处理异步任务@EnableAsync @Async @EnableAsync 标注启动类上表示启动异步注解方式@Async 标注到需要异步处理的方法上,此方法为异步处理方法@EnableAsync@Spri...

2018-09-18 19:26:19 258 1

原创 Springboot监管端点测试

通过引入spring-boot-starter-actuator,可以使用Spring Boot为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等可以参考springboot 官网文档,这一点springboot1.5 和spring2.x 是不一样的springboot2.x 暴漏公开端点配置manage...

2018-09-18 19:26:02 790

原创 springboot 与分布式

在分布式系统中,国内常用的zookeeper +dobbo 组合,而springboot推荐使用全栈的Spring,Springboot,springcloud 分布式系统ZooKeeper zookeeper 是一个分布式的,开源的分布式应用程序调用服务,他是一个为分布式应用提供一致服务的软件,提供的功能包括有配置维护,域名服务,分布式同步,组服务Dubbodubbo...

2018-09-18 14:44:03 7874 2

原创 springboot 第章 springboot 与索引

Elasticsearch  elasticserch 可以快速的储存,搜索分析海量数据,Elasticsearch 是一个分布式搜索服务,底层也是基于Lucene ,采用多shard(分片)的方式保证数据安全,提供RestFul API 并且提供自动resharding 功能, 除此之外我还用过solr也是基于lucene ,这个时候可定要对比下http://i.zhcy.tk/blog...

2018-09-16 09:48:05 1893

原创 springboot 第十章 (springboot与消息)

概述1.大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力1.消息服务中两个重要概念:消息代理(message broker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。3.消息队列主要有两种形式的目的地1.队列(queue):点对点消息通信(point-to-point)2.主题(top...

2018-09-15 19:19:34 794

原创 lombok 使用

lombok 既然看到這篇博客我就不多説了直接鍵盤鼠標一頓來吧1.安裝如果是你的IDE 是eclipse myeclipse    如果你是idea 直接跳过看最后1. 下载直接从mven找项目中使用对应版本的lombokhttp://mvnrepository.com/artifact/org.projectlombok/lombok/1.16.18我用的是这个版本 &...

2018-09-13 22:34:31 485

原创 Springboot 第九章 (springboot与缓存)

1.使用缓存减轻数据库的压力, 承受高的并发量2.验证码三分钟有效, 把这些临时的数据放在缓存中JSR-107为了规定缓存的规范 ,javaee发布的jsr-107Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry和Expiry。•CachingProvider(缓存提供者): 定义了创建、配置...

2018-09-11 19:44:09 3021 1

原创 springboot2.0x 和springboot 1.0 整合redis 使用自定义CacheManager 问题

在springboot1.0 和springboot2.0 中默认的序列化都是使用的jdk的 Serializer  实现这个接口,jdk自带的序列化方法在springboot1.0中如果向自定义我们呢直接创建cachemanager 然后传入redistemple模板对象, 就可以了, redistemple 模板对象中定制序列化的方式 @Bean public Redi...

2018-09-11 18:46:54 2442 1

原创 ubuntu 16.04 安装docker&mysql&tomcat&redis

1)安装docker          1.选择国内的云服务商,这里选择阿里云为例curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -        2.安装所需要的包 sudo apt-get install linux-image-extr...

2018-09-08 23:40:33 556

原创 Springboot第六章 数据访问(SpringData JPA)

SpringData 简介1、SpringData特点SpringData为我们提供使用统一的API来对数据访问层进行操作;这主要是Spring Data Commons项目来实现的。Spring Data Commons让我们在使用关系型或者非关系型数据访问技术时都基于Spring提供的统一标准,标准包含了CRUD(创建、获取、更新、删除)、查询、排序和分页的相关操作。...

2018-09-04 20:12:42 226

原创 Springboot第六章 数据访问

Spring+jdbc使用idea 创建springboot项目的时候选中mysql 勾上mysql 和jdbc  然后我们进行演示spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://104.224.142.102:3306/test username: ...

2018-09-04 18:46:07 914

原创 Springboot第四章 web开发

 1、简介使用SpringBoot;1)、创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码;自动配置原理?这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxxxxxxAutoConfiguration:帮...

2018-09-04 09:06:45 551

原创 Springboot 第三章 日志

  市面上的日志框架;JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j....日志门面 (日志的抽象层) 日志实现 JCL(Jakarta Commons Logging)(不用) SLF4j(Simple Logging Facade for Java) jboss-logging(不用) ...

2018-08-30 16:15:11 189

原创 Springboot第二章 springboot 自动配置原理

 https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#common-application-propertiesspringboot 官方文档记录了properties/yml   能写的所有配置1、自动配置原理:1)Sprintboot 启动的时候,加载住配置类,开启自动配置...

2018-08-29 08:17:01 358

原创 Spring第二章 配置

行内写法配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;•application.properties•application.yml 配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;YAML(YAML Ain't Markup Language)​ YAML A Markup Lang...

2018-08-28 20:51:09 160

原创 Springboot启动热加载

1. pom文件中导入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>...

2018-08-28 12:07:32 241

原创 SpringBoot第一章 入门

1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、微服务2014,martin fowler微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;单体应用:ALL IN ONE微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元;详细参照微...

2018-08-28 08:19:06 214

原创 JAVA并发Day3 (java内存模型)

此篇博客在jvm深入理解中我已经讲过了原子性原子性是指一个操作是不可中断的,即使是多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰, CPU的指令一般都是原子性的操作,我们写的程序代码不一定具有原子性     1. i++ 是原子操作?1. 读取 2,然后进行++ 3.然后写会,如果多个线程同时i++他们之间就可能有冲突 (在jvm 的时候也是这个例子) ...

2018-08-26 19:58:18 148

原创 JAVA并发Day2 (并行程序基础)

进程和线程https://www.cnblogs.com/tiankong101/p/4229584.htmlhttps://www.cnblogs.com/dreamroute/p/5207813.htmljava 中的线程会被映射到操作平台上,进程 的调度可以说对于操作系统是一个大的调度,线程是进程中的执行单元在java 中创建一个线程jvm 会把线程映射到window 进...

2018-08-26 17:27:19 183

原创 《深入理解JVM》第三章 垃圾收集器与内存分配策略(对象已死吗 ? )

对象已死吗 ?引用计数算法给对象添加一个引用计数器,当有一个地方引用他就给他+1 , 如果有一个地方的引用失效就-1 ,实现简单,效率高,微软公司的COM(component object model) 技术,使用ActionScript3的Flashplaye ,python语言在游戏脚本领域被广泛使用的Squirrel 中都使用了引用计数器算法对内存进行管理,但是主流的java 虚...

2018-08-23 17:24:14 134

原创 《深入理解JVM》第二章 JVM自动内存管理机制

概述 了解jvm 内存管理机制, 如果jvm 出现内存溢出,泄露的问题可以排查进行工作,运行时数据区域jvm 运行时会把内存进行划分,程序计数器是一块较小的内存,可以看作为,当前线程所执行字节码的一个行号指示器 ,字节码解释器就是通过改变计数器来选择执行的字节码指令,分支循环,跳转,异常处理,线程恢复等功能,    JVM 的多线程机制是通过线程的轮流执行来实现...

2018-08-23 16:58:49 245

原创 《深入理解JVM》第七章 类加载器

虚拟机设计团队把类加载阶段中的“通过一个类的全限类名”来捕获描述这个类的二进制字节流,这个动作放入jvm 中,实现这个动作的代码叫做类加载器类加载器可以是java语言的一项创新,也是java 流行的主要原因之一,最初是为了满足java Applet的需求开发出来的,目前java Applet 没人听说话吧? 但是类加载器却在层次上划分,OSGI,热部署,代码加密,等领域大放异彩,成为java ...

2018-08-23 16:38:51 191

原创 《深入理解JVM》第七章 类加载器的时机 && 类加载器的过程

概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行效验,转换解析,连接初始化,都是在程序运行期间进行的,这种策略虽然会令类的加载提供一些性能开销,但是给java提供了很高的灵活性,java天生可以动态拓展的语言特性就是依赖运行时动态加载和动态链接的特点实现的,例如如果写一个面向接口的程序可以等到运行时再写具体的实现,用户可以通过java预定义的自定义类加载器让本地应用程序从网络或...

2018-08-23 11:12:49 1160

原创 《深入理解JVM》第四章 虚拟机性能监控&&故障处理工具

jdk命令行工具jps虚拟机进程状态工具使用频率最高的就是jps jps 可以通过RMI协议查询开启了RMI服务的远程虚拟进程状态jstat 虚拟机统计信息监视工具用于监视虚拟机各种状态信息的命令行工具,可以显示本地或者远程虚拟机进程中的类装在,内存,垃圾收集,JIT编译,window 查看进程netstat -a  jstat 一样,可跟参数jstat -gc id ...

2018-08-19 18:58:53 231

原创 《深入理解JVM》第三章 垃圾收集器与内存分配策略(内存分配和回收策略)

对象优先在Eden 上分配大多数情况下对象在新生区 的Eden区中分配,当Eden区没有空间的时候,jvm发起一次GC,这意思gc 幸存的对象会被复制到from 或者to 区,然后把Eden 区和  form 或者to区给清理掉,以后每次gc 幸存的对象age+1 如果年龄模式是大于15 晋级老年代,当然大对象有可能直接进入老年代,https://blog.csdn.net/Muyunde...

2018-08-19 16:30:32 350

原创 《深入理解JVM》第三章 垃圾收集器与内存分配策略(垃圾收集器)

垃圾回收算法是内存回收的方法论,垃圾回收器就是内存回收的具体实现,这里讨论的是jdk1.7 之后的Hotspot 虚拟机, java 的虚拟机规范没有明确规定垃圾回收方法,因此不同的jvm 不同的版本垃圾回收是有差异的,JDK1.7 提供G1收集器,之前实在试验器上图展示的是7 中收集器,应用的不同代,他们之间有连线的说明可以配合使用,垃圾收集器至今没有最完美的Serial 收集器...

2018-08-19 09:22:13 210

原创 《深入理解JVM》第三章 垃圾收集器与内存分配策略(HotSpot算法实现)

枚举根节点可达性分析从GC Roots 节点着引用链这个操作为例,可作为GC Roots 的节点主要在全局性的引用(常量或者类静态属性)与执行上下文(栈帧的本地变量表)中,现在很多应用仅仅方法区就有数百兆,如果要逐个检查这里面的引用那么必然会消耗很多时间另外,可达性分析的执行时间敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保以一致性的快照中进行---这里的以执行指的是在分析期间执...

2018-08-18 19:15:44 120

原创 《深入理解JVM》第十三章 线程安全&& 锁优化

java 语言中的线程安全java把操作共享数据分为5 类 不可变  , 绝对线程安全, 相对线程安全, 线程兼容和线程对立不可变jdk5后,不可变(Immutable)的对象一定是线程安全的比如String 他的所有方法都是返回一个新的对象,(String 是不可变的,因此他和Stringbuffer  StringBuilder 在拼接字符串的方面来比, string没有他们效率高...

2018-08-18 12:09:44 152

原创 Centos 发行版内核版本2.6.32-042stab127.2 安装docker

Docker官网上针对Centos的的安装需求如下:Docker requires a 64-bit installation regardless of your CentOS version. Also, your kernel must be 3.10 at minimum, which CentOS 7 runs.看来如果我们想在低于3.x内核的操作系统(比如Centos6.6)...

2018-08-16 09:24:32 1984

原创 《深入理解JVM》第十二章 高效并发(JAVA与线程)

并发并不一定依赖多线程,(如php中常见的多进程并发) 但是java 中的并发和线程不开关系Thread类的大部分方法都是native方法, native方法意味着,这个方法没有使用和平台无关的手段实现,或者是无法使用,当然也可能是为了执行效率 实现线程主要有三种方式1. 内核线程实现, 2 ,使用用户线程实现3.用户线程加轻量级进程混合实现使用内核线程实现内核线程就是...

2018-08-15 21:44:59 452

原创 《深入理解JVM》第十二章 高效并发(JAVA内存模型)

并发处理的广发应用使得Amdahl 定律代替摩尔定律成为了计算机性能发展原动力的根本原因,是人类压榨计算机计算能力的最有利的武器摩尔定律  : Intel CEO Barret 说没过18 个月芯片的性能就会翻一倍Amdahl定律:定义了串行系统并行化后的加速比的计算公式和理论上限    1/F+1/n(1-F)   增加CPU处理器的数量并不一定能起到有效的作用提高系统内可并行化的模块...

2018-08-14 09:50:47 332

原创 java主线程等待所有子线程执行完毕在执行

java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用户下单成功,下面就说一下我能想到的方法,欢迎大家批评指正: 用sleep方法,让主线程睡眠一段时间,当然这个睡眠时间是主观的时间,是我们自己定的,这个方法不推荐,但是在这里还是写一下,毕竟是解决...

2018-08-13 20:21:27 131

原创 javap的基本用法

 javap是JDK自带的反汇编器,可以查看java编译器为我们生成的字节码。通过它,我们可以对照源代码和字节码,从而了解很多编译器内部的工作。语法:  javap [ 命令选项 ] class. . .  javap 命令用于解析类文件。其输出取决于所用的选项。若没有使用选项,javap 将输出传递给它的类的 public 域及方法。javap 将其输出到标准输出设备上。命令选项 ...

2018-08-13 14:37:44 2828

原创 java serialize

可能最先接触的序列化莫过于就是学习io 的时候讲的Objectoutputstream /ObjectInputStream 了把, 实现serizlize 接口,这种方式是方便,但是他的效率,从内存占用来说确实不佳 ,我们这次拿java 的序列化,和google 提供的protobuf 比较, 算了把说说概念,什么是序列化在java 中?序列化 :  把一个对象转换为2 字节数组,反序列...

2018-08-12 10:10:29 1345

原创 netty3 & netty5心跳对比

心跳对于server来说可以定时的检测客户端是否存在清除闲置的链接对于client 来说可以检测和服务器的链接是否中断,测试延迟,首先分析netty3 的心跳代码, netty3 和netty5 有一定的差异, netty5的封装度高netty3netty的心跳检测的核心类是 IdleStateEvent  ,这个对象在netty3 中可以通过回掉函数handleUpstream 传递...

2018-08-12 07:27:58 698

原创 netty 源码剖析

给服务类设置niosocket 工厂 worker 线程创建完毕  

2018-08-10 18:57:00 116

原创 BIO NIO AIO

一、看图网上很多IO资料,对新手来说,越看越晕。根据自己的理解,总结对比了一下BIO、NIO、AIO。BIO:线程发起IO请求,不管内核是否准备好IO操作,从发起请求起,线程一直阻塞,直到操作完成。如下图:NIO(reactor模型):线程发起IO请求,立即返回;内核在做好IO操作的准备之后,通过调用注册的回调函数通知线程做IO操作,线程开始阻塞,直到操作完成。如下图:AI...

2018-08-09 18:11:07 81

原创 JAVA并发Day4 无锁

无锁的原理详解CASCAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V值等于E值时,才会将V的值设为N,如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。最后,CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成操作。当多个线程同时使用CAS操作一个变量时,只有一个会...

2018-07-18 11:53:31 297

原创 JAVA 并发Day1

jvm 在启动的时候就会启动很多线程, main  线程  gc 线程 jit 线程https://www.cnblogs.com/jiangwangxiang/p/9094006.htmllinux 之父, linus torvalds 对并行反对意见并行计算只有在图像处理和服务端编程2个领域可以使用,并且它在这2个领域确实有着大量广泛的使用 同步(synchrono...

2018-07-16 22:24:59 109

原创 SpringMvc实现文件上传

*/@RestControllerpublic class FileUploadController { @PostMapping("/upload") public void upload(@RequestParam MultipartFile file) throws IOException { BufferedOutputStream out = new...

2018-07-12 12:18:05 94

空空如也

空空如也

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

TA关注的人

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