自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

转载 java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁

origin:https://blog.csdn.net/zqz_zqz/article/details/70233767/之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的: 1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对); 2. AtomicInteger效率最不稳定,不同...

2018-06-25 16:38:20 265

转载 JVM类加载机制详解(二)类加载器与双亲委派模型

在上一篇JVM类加载机制详解(一)JVM类加载过程中说到,类加载机制的第一个阶段加载做的工作有:1、通过一个类的全限定名(包名与类名)来获取定义此类的二进制字节流(Class文件)。而获取的方式,可以通过jar包、war包、网络中获取、JSP文件生成等方式。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。这里只是转化了数据结构,并未合并数据。(方法区就是用来存放已被加载的类信息,...

2018-06-12 11:31:59 255

转载 JVM类加载机制详解(一)JVM类加载过程

首先Throws(抛出)几个自己学习过程中一直疑惑的问题:1、什么是类加载?什么时候进行类加载?2、什么是类初始化?什么时候进行类初始化?3、什么时候会为变量分配内存?4、什么时候会为变量赋默认初值?什么时候会为变量赋程序设定的初值?5、类加载器是什么?6、如何编写一个自定义的类加载器?首先,在代码编译后,就会生成JVM(Java虚拟机)能够识别的二进制字节流文件(*.class)。而JVM把Cl...

2018-06-12 08:56:51 237

转载 线程池的五种状态

线程池的5种状态:Running、ShutDown、Stop、Tidying、Terminated。线程池各个状态切换框架图:1、RUNNING(1) 状态说明:线程池处在RUNNING状态时,能够接收新任务,以及对已添加的任务进行处理。 (02) 状态切换:线程池的初始化状态是RUNNING。换句话说,线程池被一旦被创建,就处于RUNNING状态,并且线程池中的任务数为0!private fin...

2018-06-11 19:36:06 31505 12

转载 线程池原理

转载请注明出处:http://www.cnblogs.com/skywang12345/p/3509960.html 本章介绍线程池的生命周期。在"Java多线程系列--“基础篇”01之 基本概念"中,我们介绍过,线程有5种状态:新建状态,就绪状态,运行状态,阻塞状态,死亡状态。线程池也有5种状态;然而,线程池不同于线程,线程池的5种状态是:Running,SHUTDOWN, STOP, TIDY...

2018-06-07 19:50:07 168

转载 什么时候手动创建线程而不使用线程池

1、需要自定义线程的优先级,线程池中线程总是Normal2、需要一个前台线程,线程池中线程是后台线程     非UI线程最好使用线程池创建为后台线程,常常关闭一个软件之后,仍然占有内存,就是由于创建了多个前台线程,程序关闭的时候,还有其他前台线程没有关闭。3、需要手动终止线程,线程池不具有这种功能。4、线程执行时间长,线程池目的是为了线程重用,省去创建新线程的额外开销,多适用于多而执行时间短的线程...

2018-06-07 17:51:17 2625

转载 终止线程的三种方法

 有三种方法可以使终止线程。    1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。    2.  使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。    3.  使用interrupt方法中断线程。    1. 使用退出标志终止线程    当run方法执行完后,线程就会退出。但有时run方法是永...

2018-06-07 14:12:20 13456

转载 JUC

概要之前,在"Java 集合系列目录(Category)"中,讲解了Java集合包中的各个类。接下来,将展开对JUC包中的集合进行学习。在学习之前,先温习一下"Java集合包"。本章内容包括:Java集合包JUC中的集合类转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498454.html Java集合包在“Java 集合系列01之 总体框架”中,介...

2018-06-06 08:11:49 1970 1

转载 redis去重方案优化

tpn(taobao push notification)在使用redis计算消息未读数的过程中,遇到了一系列的问题,下面把这个过程整理了一下,也让大家了解这个纠结的过程,供大家以后使用redis或者做类似的功能时进行参考     redis在tpn里面主要是用于计算移动千牛(Android、IOS)上的消息未读数。tpn的未读消息数是基于bizId维度的,即同一个bizId(每条消息的业务id,...

2018-06-05 15:48:18 8552 1

原创 java实现 远程调用例子 rpc

服务端 :HelloServicepublic interface HelloService { public String hello(String name);}HelloServiceImplpublic class HelloServiceImpl implements HelloService { @Override public String hello...

2018-06-02 17:16:50 2088

转载 深究Java中的RMI底层原理

前言:随着一个系统被用户认可,业务量、请求量不断上升,那么单机系统必然就无法满足了,于是系统就慢慢走向分布式了,随之而来的是系统之间“沟通”的障碍。一般来说,解决系统之间的通信可以有两种方式:即远程调用和消息。RMI(Remote Method Invocation)就是远程调用的一种方式,也是这篇文章主要介绍的。一、RMI的一个简单示例这个示例拆分为服务端和客户端,放在两个idea项目中,并且通...

2018-06-02 14:59:15 249

转载 Java RMI与RPC的区别

 一:RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。 一次RPC调用的过程大概有10步:  1.执行客户端调用语句,传送参数  2.调用本地系统发送网络消息  3.消息传送到远程主机  4.服务器得到消息并取得参数   5.根据调用请求以及参数执行远程过程(服务)  6.执行过程完毕,将结果返回...

2018-06-02 14:14:04 2600

转载 大家都在谈的SOA和微服务 你真的理解吗

微服务是什么?微服务是一种架构设计模式。在微服务架构中,业务逻辑被拆分成一系列小而松散耦合的分布式组件,共同构成了较大的应用。每个组件都被称为微服务,而每个微服务都在整体架构中执行着单独的任务,或负责单独的功能。每个微服务可能会被一个或多个其他微服务调用,以执行较大应用需要完成的具体任务;系统还为任务执行——比如搜索或显示图片任务,或者其他可能需要多次执行的任务提供了统一的解决处理方式,并限制应用...

2018-06-02 10:56:27 2555

转载 大数据面试题-两个大文件中找出共同记录

1.题目描述给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?2.思考过程(1)首先我们最常想到的方法是读取文件a,建立哈希表(为什么要建立hash表?因为方便后面的查找),然后再读取文件b,遍历文件b中每个url,对于每个遍历,我们都执行查找hash表的操作,若hash表中搜索到了,则说明两文件共有,存入一个集合。(2)但上述方法有...

2018-05-31 16:57:16 4872 2

原创 gRPC HelloWorld java版

1. 创建一个maven项目2. 加入依赖3. 编写proto文件4. 编写服务端文件, 和客户端文件package org;import io.grpc.Server;import io.grpc.ServerBuilder;import io.grpc.examples.helloworld.GreeterGrpc;import io.grpc.examples.helloworld...

2018-05-30 15:54:37 874

转载 网络七层协议的通俗理解

 OSI七层模式简单通俗理解 这个模型学了好多次,总是记不住。今天又看了一遍,发现用历史推演的角度去看问题会更有逻辑,更好记。本文不一定严谨,可能有错漏,主要是抛砖引玉,帮助记性不好的人。总体来说,OSI模型是从底层往上层发展出来的。 这个模型推出的最开始,是是因为美国人有两台机器之间进行通信的需求。 需求1: 科学家要解决的第一个问题是,两个硬件之间怎么通信。具体就是一台发些比特流,然后另一台能...

2018-05-30 10:24:14 664 1

转载 TOMCAT原理详解及请求过程

Tomcat:  Tomcat是一个JSP/Servlet容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。Tomcat目录:tomcat  |---bin:存放启动和关闭tomcat脚本  |---conf:存放不同的配置文件(server.xml和web.xml);  |---doc:存放Tomcat文档;  |-...

2018-05-29 09:40:40 219

转载 volatile详解

一、Java内存模型想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的。Java内存模型规定了所有的变量都存储在主内存中。每条线程中还有自己的工作内存,线程的工作内存中保存了被该线程所使用到的变量(这些变量是从主内存中拷贝而来)。线程对变量的所有操作(读取,赋值)都必须在工作内存中进行。不同线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主...

2018-05-15 20:15:24 158

转载 单例模式

作者:孤独烟,来自:http://rjzheng.cnblogs.com/其实写这篇文章之前,我犹豫了一下,毕竟单例大家都知道,写这么一篇文章会不会让人觉得老掉牙。后来想想,就当一种记录吧。先来一副漫画吧,如下图所示ok,我们回顾下小灰的遭遇,上述漫画所提出的那些问题主要有以下三点:为什么静态内部类的单例模式是最推荐的?如何在反射的情况下保证单例?如何在反序列化中保证单例?针对上述三个问题有了这篇...

2018-05-14 16:06:24 135

原创 一次springboot2 + swagger2-ui 404报错记录

之前用Springboot1一直没问题,升级之后 swagger不能用了。如果 /v2/api-docs 可以访问,swagger-ui不能访问,那基本是静态资源映射问题。

2018-05-06 17:48:50 4879 1

转载 InnoDB一棵B+树可以存放多少行数据?

一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单...

2018-05-04 11:50:39 4392

转载 CGLIB(Code Generation Library)详解

什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。CGLIB作为一个开源项目,其代码托管在github,地址为:https://github.com/cglib/cglib为什...

2018-04-26 17:04:04 145

转载 Java动态代理分析

Java动态代理机制的出现,使得Java开发人员不用手工编写代理类,只要简单地制定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分配到委托对象上反射执行,配置执行过程中,开发人员还可以进行修改代理设计模式代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息、过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。...

2018-04-26 17:02:50 151

转载 Java中的锁

在学习或者使用Java的过程中进程会遇到各种各样的锁的概念:公平锁、非公平锁、自旋锁、可重入锁、偏向锁、轻量级锁、重量级锁、读写锁、互斥锁等待。这里整理了Java中的各种锁,若有不足之处希望大家在下方留言探讨。WARNING:本文适合有一定JAVA基础的同学阅读。公平锁和非公平锁公平锁是指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来一次获得锁。公平锁的好处是等待锁的线程不会饿死,但是整体效...

2018-04-25 19:27:48 122

转载 Java反射----Field的getModifiers()方法返回int类型值表示该字段的修饰符

如何判断类或变量、方法的修饰符,可以使用Java反射机制中,Field的getModifiers()方法返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的返回值,代表类、成员变量、方法的修饰符。      其中,该修饰符是java.lang.reflect.Modifier的静态属性。对应表如下:PUBLIC: 1PRIVATE: 2PROTECTED: 4STATIC: 8FI...

2018-04-25 11:30:18 471

原创 知识点整理

java基础 反射 io nio 异常 错误 注解java8jvmspring springmvc代理设计模式html5 css3 angular2+ freemarker jsp线程并发锁 公平 非公平 自旋 锁消除 锁粗化 可重入锁 类锁 对象锁 偏向锁 轻量级锁 重量级锁 悲观锁 乐观锁 共享锁 排他锁 读写锁 互斥锁 无锁mybatis数据库连接池数据库 优化 集群MQ常用算法androi...

2018-04-25 09:36:08 136

原创 排序常用算法

1. 冒泡 okpublic void bubbleSort(int[] a){ int length=a.length; int temp; for(int i=0;i<a.length;i++){ for(int j=0;j<a.length-i-1;j++){ if(a[j]&...

2018-04-24 20:52:04 165

转载 时间.空间复杂度

在很多数据结构的面试题中看似简单,但是对题目的要求却挺高,主要就体现在复杂度分析方面。复杂度又分为时间复杂度和空间复杂度。1.时间复杂度时间复杂度实际就是函数,函数计算执行的基本操作次数 .在进行时间复杂度分析时需注意: 1)时间复杂度强调的是函数执行的操作次数,这里的函数是指数学里面的函数,而不是C语法里的函数;2)在实际中我们通常情况考量的是算法的最坏情况;3)忽略掉常数;4) 关注运行时间的...

2018-04-23 20:52:33 117

原创 CentOS 7 redis用systemctl无法启动

还原 redis.confdaemonize no

2018-04-19 10:58:40 3164

原创 CentOS 7 安装MySQL 7 并设置 utf8mb4

1. 配置YUMwget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmyum localinstall mysql57-community-release-el7-8.noarch.rpmyum repolist enabled | grep "mysql.*-community.*"yum install ...

2018-04-19 09:54:49 2606

原创 CentOS 7 安装 nginx-1.13

1.  安装依赖yum install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel如果途中碰到问题,自行查找解决办法2. 准备安装wget http://nginx.org/download/nginx-1.13.12.tar.g...

2018-04-19 08:45:23 582

原创 yum install -y pcre pcre-devel 报错

Error: Multilib version problems found. This often means that the root cause is something else and multilib version checking is just pointing out that there is a problem. Eg.: ...

2018-04-19 08:22:30 11583

原创 CentOS7 装载 jdk 8

1.  Oracle 现在不允许不勾选协议直接下载,按如下进行下载。wget --no-cookie --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174...

2018-04-18 19:32:22 171

原创 多线程安全时间格式化操作

SimpleDateFormat是一个非线程安全的实现。从以下代码可以体现。1.packageorg.saxing;2.3.importjava.text.ParseException;4.importjava.text.SimpleDateFormat;5.importjava.util.Date;6.import...

2018-04-18 17:42:25 2220 1

转载 maven 多module环境下打包出现boot-inf的解决方案

在多module的环境下,jar包之间相互依赖,这时候打包的时候就会有先后顺序的问题。在项目开发后打包的时候发现通过原始建立的多module的项目会出现问题;原始的springboot打包是spring-boot-maven-plugin来完成的;若是A包依赖B包,项目编译跑起来是没任何问题的,但是在mvn打包的时候,会发现被依赖的B包在打成jar的过程中class和resource文件则

2017-08-04 15:38:12 6491 3

转载 如何安全的存储密码

过去一段时间来,众多的网站遭遇用户密码数据库泄露事件,这甚至包括顶级的互联网企业–NASDQ上市的商务社交网络Linkedin,国内诸如CSDN一类的就更多了。  层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃。  那么在选择密码存储方案时,容易掉入哪些陷阱,以及如何避免这些陷阱?我们将在实践中的一些心得体会记录于此,与大家分享。

2017-08-03 11:23:34 556

转载 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)

背景对现有的数据库连接池做调研对比,综合性能,可靠性,稳定性,扩展性等因素选出推荐出最优的数据库连接池 。     NOTE: 本文所有测试均是MySQL库测试结论   1:性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。   2:druid功能最为全面,sql拦截

2017-08-02 15:41:09 3325

转载 JSON Web Token (JWT)

Internet Engineering Task Force (IETF)M. JonesRequest for Comments: 7519MicrosoftCategory: Standards TrackJ. BradleyISSN: 2070-1721Ping Identity N. Sakimura N

2017-07-25 11:57:45 1696

Netty权威指南 第2版 高清+书签

《Netty 权威指南(第2 版)》是异步非阻塞通信领域的经典之作,基于最新版本的Netty 5.0 编写,是国内很难得一见的深入介绍Netty 原理和架构的书籍,也是作者多年实战经验的总结和浓缩。内容不仅包含Java NIO入门知识、Netty 的基础功能开发指导、编解码框架定制等,还包括私有协议栈定制和开发、Netty 核心类库源码分析,以及Netty 的架构剖析。

2018-08-16

Docker技术入门与实战 github版本

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2018-08-01

EnterpriseArchitect 12.0 正式可用版 解压密码123

Enterprise Architect是一款能够为使用者提供强大的UML模型建模与仿真功能的编辑设计软件,在实际使用时用户可以自定义图形绘制从而来连接大量常见设备模型以及实现场景。在用户整体使用感上可以通过选择多个优雅和个性化的主题风格进行显著性的提高,软件本身还能为多个用户提供多环境选择性合并并且更改的功能。

2018-05-07

EnterpriseArchitect12破解版 稳定 高效.zip

EnterpriseArchitect12破解版 稳定 高效 Enterprise Architect 是Sparx Systems 公司的旗舰产品。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等

2018-05-06

SQL.Cookbook中文版(高清)

高清版SQL.Cookbook, 入门必备。

2016-04-12

解析BIRT-Eclipse商业智能和报表工具(全)

国内少有的中文开发书籍,BIRT,中文开源报表。

2016-04-08

BIRT开发手册(全)

BIRT开发手册(全), 很全面。 中文手册。

2016-04-08

thinking in enterprise java PDF版

看《thinking in java 4th》, P552页提到这本书. 就找了个PDF版的. 大家共同学习. Please note this document is under development and incomplete. Updates to this document can be found at http://www.mindview.net/ Best viewed with Mozilla! (free at http://www.mozilla.org/) (Even though this document was created with MS Word, IE6 garbles lines with footnote markers on them. Mozilla seems to do a much better job).

2015-07-25

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

TA关注的人

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