自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fanxing1964的博客

天道酬勤

原创 JVM:四、类文件结构解析

虚拟机的语言无关性靠的是字节码来实现的,虚拟机不和包括Java在内的任何语言绑定,只和“Class文件”绑定,Java,Jruby,Groovy程序经过各自的编译器形成字节码文件(.class)或叫做类文件。虚拟机处理类文件。类文件结构主要包括以下几部分:Class文件版本 + 常量池 + 访问标...

2018-11-15 00:43:24 275 0

转载 topN问题

一亿个数字去前1000个最大数,使用最小堆 思路:分治 + 堆排序,分治是为了缓解内存压力,堆排序占用空间相对较小。 package arithmetic.topk; public class MinHeap { // 堆的存储结构 - 数组 private int[] ...

2018-10-27 02:05:50 628 0

转载 SpringBoot注解整理

项目用到的注解作用: bean的分类标识 @Service: 注解在类上,表示这是一个业务层bean @Controller:注解在类上,表示这是一个控制层bean @Repository: 注解在类上,表示这是一个数据访问层bean @Component: 注解在类上,表示通用bean be...

2018-10-06 19:05:00 140 0

原创 SpringBoot完整应用梳理

拷贝自网易云笔记,图片都是直接读取网易云笔记的格式有点乱 目录 第一章 Spring boot核心 第二章 配置使用 第三章 启动过程 第四章 Thymeleaf模板 与 JSP视图 第五章 静态资源及拦截器 第六篇 日志 第一章 Spring boot核心 自动配置(约定优于配...

2018-10-06 17:42:53 487 0

转载 自己写一个Spring MVC

看了一个自定义的实现spring mvc的文章,自己敲了一下。原文地址:https://mp.weixin.qq.com/s/36F_fFbGKkRL20DJgX4ahg Spring mvc流程图: 请求流程: ⑴ 用户发送请求至前端控制器DispatcherServlet ⑵ Di...

2018-10-05 17:49:24 212 0

转载 Tomcat内部实现架构解析

一,Tomcat顶层架构 可以看到一个Server可以有多个Service,一个Service可以有多个Connector和一个Container,这两部分是tomcat的核心。 1,Connector用于处理连接相关额事情,并提供Socket与Reponse相关的转化 2,Contai...

2018-10-01 01:43:34 840 0

原创 自定义系列 之 全局异常处理

1,重写HandlerExceptionResolver接口的resolveException方法做一个全局的异常处理(基于spring mvc)     不同于继承Exception按照业务自定义一个异常,这种方法作用范围更大,在Controller层通过throws把异常抛出来,交给spri...

2018-09-02 23:31:21 259 0

原创 分布式session共享的几种实现方案

单个服务时不会出现session共享的问题,分布式服务时就需要考虑多个web容器之间的session共享问题,如果没有考虑session问题,就会导致很多问题,例如用户请求落到没有session的容器上就会出现重新登录的情况。常见的解决方案有以下几种: 1.session复制,启用web容器的s...

2018-09-02 23:28:57 296 0

原创 数据库的事务与一致性是怎么实现的?

本文主要分析在不牵扯分布式的情况下事务与一致性的实现办法。先说一下事务的ACID四个特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 其他的几个特性应该很好理解,但是一致性这个概念不太好理解,在这一致性指的...

2018-08-31 13:29:07 2487 2

原创 开发规范之Mysql数据库建表规约

    总结了几条数据库表设计需要注意的问题。首先有两个问题需要了解一下,一是mysql和java类型之间的对应关系,二是宽度这个概念。 一:Mysql和Java数据类型对应关系 整数类型: 数据库类型 长度(数据大小) 逆向工程生成java实体类属性类型 描述 tin...

2018-08-30 15:16:44 471 0

原创 前端随笔(2016年)

1.main   --           word-wrap:normal||break-word;强制换行,主要用于块状元素         word-break:normal||break—all; 单词内处理换行         white-space:nowrap;强制不换行直到碰见 ...

2018-08-22 11:51:13 642 0

原创 异步消息及使用ActiveMQ发送消息

一,异步消息     像RMI和Hession/Burlap这些远程调用机制都是同步的,当客户端调用远程方法时,客户端必须等到远程方法完成后,才可以继续执行,但是有些操作是不需要等待,这时就可以用异步消息。     有两个主要概念,消息代理(message broker)和目的地(destin...

2018-08-21 21:01:08 2939 0

原创 git上克隆的项目在idea里打开为什么没有项目目录?

    idea无法显示项目的目录?     这个问题可能很多人遇到了,在这做个小结,导致这个问题的原因可能是因为克隆下来的项目没有Module(即没有.iml文件)导致idea无法识别,在这先说一下如何解决,之后再做一个分析。步骤如下,就不放图了: file => projec...

2018-08-19 22:36:04 6329 0

原创 自定义 之 使用参数注解获取当前用户(基于参数解析器HandlerMethodArgumentResolver)

    之前写了篇自定义注解,这次的注解原理依旧是java的annotation以及反射机制,不过是结合了spring mvc框架而已 做一个简单的比较常用的参数注解,用来获取当前的登录用户。 首先定义一个参数类型的注解CurrentUser /** * @author uiao * ...

2018-08-08 00:50:17 734 0

原创 自定义 之 自定义注解解析

一.注解基础回顾 @interface,使用这个关键字可以说明这是一个注解。 java.lang.annotation 提供了四种元注解,可以用来注解其他的注解,像Override这些注解都会用到它们,我们自定义注解的时候也会用到,四种注解如下: @Target:说明注解用于什么地方。 @...

2018-08-07 16:35:57 3451 0

原创 自定义 之 如何自定义异常?

为什么自定义异常呢?主要有以下几个理由值得你去做: 1,统一异常,团队开发一定要有规则,不能自己想怎么抛异常就怎么抛,不仅仅是格式,可以对每种业务新建一个异常。 2,结合业务中断程序运行,有时候java代码本身不会有错误,但是不符合业务逻辑。例如用户想要发表评论,系统就会提示他要先登录,在这之...

2018-08-06 17:22:00 2485 0

原创 服务器由于redis漏洞导致被挖矿怎么办?

    最近在使用阿里云的云服务器时,经常会收到下面这种信息。     云盾态势感知系统检测到您的服务器:x.x.x.x出现了紧急安全事件:Redis蠕虫对外发起网络扫描 ,建议您立即登录云盾-态势感知控制台查看详情和处理。     您的云服务器(x.x.x.x)由于被检测到对外攻击,已阻断该...

2018-08-06 03:00:05 6236 0

原创 如何防止短信验证码被攻击?

    如何防止验证码被攻击?验证码可以用来攻击单个用户,也就是短信轰炸,也可以刷量增加网站成本,虽然一条几分钱,但是量多了也是一种成本。以下几种验证码被攻击的解决方案。 1.发送间隔限制,每过60秒或120秒之后才可以再次发送     这个可以在前端限制点击之后60秒内无法再次触发事件。当然...

2018-08-03 11:37:24 4250 1

原创 JAVA日历API Calendar的使用小结

近日项目中用到了日历框架Calendar,遂做个简单用法记录,更复杂的用法请查看官方文档:https://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html 几个常用的参数(懒,就从idea截图了): 1,YEAR 可...

2018-08-02 11:30:07 837 0

原创 阿里云安装redis并远程连接

安装 下载:wget http://download.redis.io/releases/redis-4.0.10.tar.gz 解压:tar xzf redis-4.0.10.tar.gz 进入解压后的目录:cd redis-4.0.10 安装:make 配置 进入配置文件  vim...

2018-07-25 15:00:33 3203 1

转载 Elasticsearch:ES安装过程踩过的坑

在Elasticsearch启动时,会对重要的配置进行检查,在不同的模式下,es会进行不同的提示:- 开发模式下es将错误信息打印到日志中(warnning)   - 在生产环境下,es会直接启动报错,启动不了!   ## 开发模式 vs. 生产模式 默认情况下,Elasticsearc...

2018-03-10 13:08:42 266 0

原创 多线程:线程池的原理和使用解析

目录 1,线程池相关的类接口(类)及其关系 2,线程池的实现原理(即任务的处理流程) 3,线程池的几种创建方式 4,使用线程池提交任务 5,关闭线程池 1,线程池相关的类接口(类)及其关系     ThreadPoolExecutor作为线程池的主要实现类,在线程池的创建和使用中...

2018-03-09 00:48:07 286 1

原创 数组的一些操作

两个有序数组求交集: /** * 求两个有序数组的交集 */ public class GetIntersection { public static void main(String[] args) { int[] a = {2, 3, 5, 76, 23, 12...

2018-03-07 21:33:02 2039 0

原创 单例模式

单例模式的设计时一般都是 private构造方法,静态化getInstance方法。 一:饥饿模式: public class HungrySingle { private static HungrySingle instance = new HungrySingle(); ...

2018-03-06 23:22:18 143 1

原创 多线程:synchronized关键字解析

原理 synchronized是JVM层面的锁,是一种重量级的锁。synchronized可以同步方法和代码块。 public class Synchronized { public static void main(String[] args) { // 对Synchron...

2018-03-04 14:25:27 990 0

原创 JVM:三、垃圾回收器与内存分配简介

目录: 对象已死吗? 垃圾回收算法 垃圾收集器 内存分配与回收策略 对象已死吗? 如何判断对象已经死了呢,如下: 1. 引用计数算法 引用计数算法给对象添加一个引用计数器,每当一个地方引用它是时,计数值就增加一;当引用失效时,计数值就建一,技术器为0的对象不可能...

2018-03-03 23:00:04 310 0

原创 多线程:volatile关键字解析

volatile主要的作用就是保证变量的可见性,使用volatile修饰的变量每次修改后会立刻从缓存行刷回主内存,也会使已经加载的失效,所以每次获取的时候都是最新的,但是不能保证原子性。另外一点就是可以防止指令重排序。 一. volatile多线程可见性 如下代码: public clas...

2018-03-02 00:20:10 195 0

原创 Git项目迁移

准备工作 确保本地安装了git,而且已经生成了ssh key, 如何生成ssh key请移步:http://git.mydoc.io/?t=180845 用户名和邮箱以及ssh key都是本地Git的一个属性,所有的repository都用一个, 每次的commit都会用用户名和邮箱记录。...

2018-02-28 17:54:36 347 0

原创 二叉树的一些操作

java实现二叉树层序,前序,中序以及后续遍历 区分前序中序后续很简单,两个原则: 1,前中后指的是根节点在前中后哪个位置 2,这三种方式左节点都在右节点前 /** * java实现二叉树遍历 * 前中后指的是根节点是在前中后那个位置,另外还有一个原则,这三种方式左节点都在右节点...

2018-02-27 19:38:49 119 0

原创 Elasticsearch:分布式集群时增删改查是如何实现的?

Elasticsearch集群时增删改查是如何实现的?本文不介绍ES API的如何使用,而是简单记录一下从一个请求发出后,elasticsearch服务器上的各个节点(或分片)是如何进行工作的。Elasticsearch分布式集群(图片来自网络)首先了解一下es集群中三个名词:cluster(集群...

2018-02-25 22:31:46 318 0

原创 Elasticsearch:Scroll深度分页及返回大量数据

     Elasticsearch:Scroll深度分页与返回全部数据 在使用ES时,有时候不可避免的要返回大量的数据或者说返回满足你的查询条件的全部数据,而满足你的条件的数据可能只是上百条也可能是上万条。当需要返回的数据量特别大时怎么办呢? 方法一 设置size     在使用aggr...

2018-02-25 00:46:42 10830 2

原创 Elasticsearch:Aggregation聚合的使用

Elasticsearch:Aggregation聚合的使用聚合函数(Aggregation)    Elasticsearch做查询时,有一些查询满足不了我们的查询条件,这时候就需要aggregation函数,聚合函数中有两个非常重要的语法,桶(Bucket)和指标(Metric)。Bucket...

2018-02-24 23:40:31 3933 0

原创 JVM:二、堆中对象的创建及访问

1. 对象的创建 在Java的堆中,对象(此处的对象指的是普通对象,不包括数组和类对象)创建过程,例如克隆,反序列化如下。虚拟机得到一条新指令时,首先检查这个指令的参数是否能够在常量池中定位到一个类的符号引用,并检查这个符号引用代表的类是否已经加载,解析和初始化过。如果没有那必须先执行类加载过程...

2018-02-24 09:56:24 275 0

原创 JVM:一、运行时数据区域

概述 Java的虚拟机使Java的成为了一种跨平台的语言,Java的不直接与操作系统接触,而是通过虚拟机这个中间桥梁,通过JVM与底层接触。不同的系统有不同的JVM,但是所有的这些JVM都完美的支持Java语法,这就使得write once,run everywhere成为可能。 除此之外,J...

2018-02-22 23:48:58 6701 1

原创 Mysql索引工作原理解析

Mysql索引工作原理 Mysql数据库中的存储引擎(InnoDB),索引及使用 一,存储引擎 Mysql的存储引擎是插件式的存储引擎,是基于表的(意思就是每个表都可以单独设置存储引擎) 主要的存储引擎有: MyISAM:在5.1以及之前的版本是默认的存储引擎 InnoDB:5.1 开...

2018-02-02 17:27:39 396 0

原创 Python:使用openpyxl操作excel表格

 最近项目要做一个数据收集整理的工作,由于临时需求没有足够的时间把excel表格的操作写进系统里,只好在系统外临时封装了几个小工具。 从输出中间结果到最终结果整个流程对excel的操作分为20来步,也就是20来个小工具,几乎涉及到了excel的表间、表内、sheet、单元格等各种各样的数学计算。...

2018-02-02 16:33:59 1260 0

转载 java对象的创建过程:类的初始化与实例化

摘要:   在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化。...

2017-10-10 19:07:31 286 0

转载 类的加载时机与加载过程

摘要:   在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化。本文...

2017-10-10 19:04:54 203 0

转载 servlet到底是什么?

http://blog.csdn.net/honghailiang888/article/details/50585475 一、Servlet简介   Servlet是sun公司提供的一门用于开发动态web资源的技术。   Sun公司在其API中提供了一个servlet接口,用户...

2017-05-08 00:51:35 252 0

原创 洗牌算法

/** * @author uiao * 窗口 */ import java.awt.Button; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionE...

2016-10-18 17:45:41 287 0

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