自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

转载 高并发的解决方案

1.应用和静态资源分离刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件因为没有状态所以分离比较简单,直接存放到响应的服务器就可以了,一般会使用专门的域名去访问。通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了。架构图如下:2.页面缓存页...

2018-08-15 19:28:18 142

转载 JAVA并发机制的底层实现原理

JAVA代码在编译后会变成字节码,字节码被类加载器加载到JVM中,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,JAVA中所使用的并发机制依赖于JVM的实现和CPU的指令。->参考《JAVA并发编程的艺术》1.volatile的应用volatile是轻量级的synchronized,它只是用来保证共享变量的可见性,不能保证操纵的原子性。【引申】–>volatile如何实现内存...

2018-07-01 20:53:23 135

转载 JVM的底层实现原理

JVM是Java程序运行的环境,但是他同时也是一个操作系统的一个应用程序的一个进程,因此JVM也有他自己的运行生命周期,也有自己的代码和数据空间。JDKJDK在Java的整个体系中充当一个生产加工中心,产生所有的数据输出,是所有指令和战略的执行中心。本身还提供了Java的完整方案,可以开发目前Java能支持的所有应用和系统程序。而之所以现在还会分j2me,j2ee这些类,是把他们用来简化各自领域内...

2018-07-01 20:52:40 189

转载 Java获取时间与系统时间相差8小时终极解决方案

一、在取日期以前设置一下时区TimeZone tz = TimeZone.getTimeZone(“ETC/GMT-8″);TimeZone.setDefault(tz);此种方法适用于单次快速获取系统本地时间二、设置java命令参数java -Duser.timezone=Asia/Jerusalem DateTest三、设置JVM的默认时区为东八区(北京时间)在下 面四个目录(bea\jdk1...

2018-06-29 11:31:33 6524

转载 SpringBoot 基于Redis快速实现消息队列

SpringBoot基于Redis快速实现消息队列一. 常用消息队列工具  目前常用的消息队列大概有三种类型,RabbitMQ等AMQP系列, Kafka, Redis等kev value系列,它们的使用场景分别是:   1.RabbitMQ: 相对重量级高并发的情况,比如数据的异步处理 任务的串行执行等.   2.Kafka: 基于Pull的模式来处理,具体很高的吞吐量,一般用来进行 日志的存储...

2018-06-29 09:23:36 268 1

转载 SpringBoot对消息队列(MQ)的支持

1.异步消息的定义  异步消息的主要目的是为了系统与系统之间的通信,所谓异步消息即消息发送者无需等待消息接收者的处理以及返回,甚至无需关心消息是否发送成功   在异步消息中有两个很重要的概念,即消息代理和目的地,当消息发送者发送消息之后,消息将由消息代理接管,消息代理保证消息传递到指定目的地。   异步消息主要有两种目的地形式,队列(queue)和主题(topic),队列用于点对点形式的消息通信,...

2018-06-29 09:22:46 832

转载 消息队列使用的四种场景介绍

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注...

2018-06-29 09:21:37 275

转载 Spring boot VO字段设置后台传入前台日期格式

未设置日期格式之前,前台接收结果:measurementtime:14253000548551设置日期格式在VO实体中加入注解@JsonFormat@JsonFormat(pattern="yyyy-MM-dd HH:mm")private Date measurementtime;12@JsonFormat @DateTimeFormat @Temporal 日期注解区分@JsonFormat...

2018-06-29 09:19:14 1030

转载 公平锁与非公平锁

总括:   在Java的ReentrantLock构造函数中提供了两种锁:创建公平锁和非公平锁(默认)。代码如下:public ReentrantLock() {sync = new NonfairSync();}在公平的锁上,线程按照他们发出请求的顺序获取锁,但在非公平锁上,则允许‘插队’:当一个线程请求非公平锁时,如果在发出请求的同时该锁变成可用状态,那么这个线程会跳过队列中所有的等待线程而获...

2018-06-27 11:16:26 123

转载 Java中的多线程你只要看这一篇就够了

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确...

2018-06-25 10:53:29 87

转载 使用IDEA创建SpringBoot项目

参考:慕课网 廖师兄:两小时学会Springboothttp://www.imooc.com/learn/767 1.打开IDEA,创建新项目,选择Spring Initializr2.输入Artifact3.勾选Web4.点击finish完成5.进入项目,可以将以下内容删除pom.xml文件:[html] view plain copy  [html] view plain copy<?x...

2018-06-19 11:33:09 126

转载 Spring设置定时任务时,关于执行时间的规则设置

Spring设置一个定时任务,可能有如下配置:[html] view plain copy<?xml version="1.0" encoding="UTF-8"?>    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"&g

2018-06-19 11:02:20 1593

转载 spring的定时任务配置(注解)

参考博客:http://www.jb51.net/article/110541.htmhttp://blog.csdn.net/wxwzy738/article/details/25158787我这边项目的需求是:每天晚上1点删除数据库表t_tempclob中的所有记录; 代码:Controller:@Controllerpublic class AjaxFileDownload { ...

2018-06-19 10:59:47 100

转载 mybatis plus

简介Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。我们的愿景是成为Mybatis最好的搭档,就像 Contra Game 中的1P、2P,基友搭配,效率翻倍。特性无侵入:Mybatis-Plus 在 Mybatis 的基础上进行扩展,只做增强不做改变,引入 Mybatis-Plus 不会对您现有的 M...

2018-05-23 19:47:51 435

转载 Gson 封装,json从此很简单

以前代码各种 重复,哪里用到解析了 那里就写一遍 gson,各种加班各种苦逼,根本没理解java的精髓啊。自从开窍之后 开始各种总结 封装 。用了gson很久了。下面来共享一下我封装过的 gson吧,如果有用点个赞啊。用到了单利 这样省点资源。 请各种参考:http://blog.csdn.net/wanghao200906/article/details/45889955import java....

2018-05-22 10:11:18 2091

转载 基于HttpClient4.5.1实现Http访问工具类

本工具类基于httpclient4.5.1实现,点击此处查看官方版HttpClient4.5.1手册。1. pom.xml中依赖包设置[html] view plain copy<dependency>      <groupId>org.apache.httpcomponents</groupId>      <artifactId>httpcli...

2018-05-21 11:17:20 348

转载 java使用httpclient封装post请求和get的请求

在我们程序员生涯中,经常要复用代码,所以我们应该养成时常整理代码的好习惯,以下是我之前封装的httpclient的post和get请求所用的代码:[java] view plain copypackage com.marco.common;    import java.io.BufferedReader;  import java.io.IOException;  import java.io....

2018-05-21 11:07:56 195

原创 @Valid注解的使用

@Valid注解用于校验,所属包为:javax.validation.Valid。① 首先需要在实体类的相应字段上添加用于充当校验条件的注解,如:@Min,如下代码(age属于Girl类中的属性):[java] view plain copy@Min(value = 18,message = "未成年禁止入内")  private Integer age;  @NotEmpty(message =...

2018-05-16 10:00:41 135

转载 Mysql中Cast()函数,strftime()函数用法

Cast()函数Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型 、DATE  日期型、DATETIME  日期和时间型、DECIMAL  float型、SIGNED  int、TIME  时间型例如表table1date2015-11-03 15:31:26select cast(date as signed) as date from  table1;结果如下...

2018-05-16 09:58:04 4605

原创 Lombok简介

背景  我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?答案是有,我们来看一下下面这张图,右面是一个简单的JavaBean,只定义了两个属性,在...

2018-05-15 19:01:26 452

转载 Intellij IDEA 2016学习系列之(二)mybatis-generator自动生成

在maven工程中的resource中创建generatorConfigxml配置generatorConfigxml的配置pomxml生成对象的两种方式方式一使用idea的maven插件直接快速生成方式二在Intellij IDEA添加一个Run运行选项使用maven运行mybatis-generator-maven-plugin插件 Step1选择配置edit configurationSte...

2018-05-15 17:02:42 89

转载 15/18位身份证号码验证的正则表达式总结(详细版)

前言开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单、效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧。介绍xxxxxx yyyy MM dd 375 0     十八位xxxxxx    yy MM dd   75 0     十五位地区: [1-9]\d{5}年的前两位: (18|19|([23]\d))            1800-2...

2018-05-15 16:30:57 13811 4

转载 java对象拷贝之BeanUtils.copyProperties() 用法

一、简介:        BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。 二、用法:        如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts...

2018-05-15 15:58:28 554

转载 VMware虚拟机安装linux系统

1、我是使用虚拟光驱的方式去安装的linux操作系统2、找到自己的光盘映像文件放入3、点击开机4、进入安装 在虚拟机和本机转换的方式,鼠标点击虚拟机屏幕就进入虚拟机,退出是ctrl+alt5、大致意思是检查你的磁盘,我们的磁盘是虚拟的,所以直接选择skip就可以6、接着会到安装页面来7、选择语言为简体中文8、选择美国英语式的键盘9、安装使用设备,根据自己实际情况选择,一般选择基础存储设备10、出现...

2018-05-15 13:46:45 143

转载 VMware Workstation创建新的虚拟机

1、首先要安装VMware Workstation,安装我在这里就不说了,安装好后打开VMware:2、打开后点击创建新的虚拟机—>选择自定义—>点击下一步3、什么都不需要改,继续下一步4、我一般会选择稍后安装操作系统,你也可以根据你自己的情况选择5、这个地方根据你要安装的操作系统已经你的版本进行选择6、虚拟机的位置和名称,可以随便7、一般情况选1就可以了8、内存看自己需求给就可以,一...

2018-05-15 13:39:11 258

转载 微信公众平台开发—利用OAuth2.0获取微信用户基本信息

微信公众平台开发—利用OAuth2.0获取微信用户基本信息2014年06月21日 16:14:56阅读数:221571、首先在某微信平台下配置OAuth2.0授权回调页面:2、通过appid构造url获取微信回传code值(appid可在微信平台下找到)1)、微信不弹出授权页面url:A、code回传到页面wxProcess2.aspx,不带参数[csharp] view plain copyRe...

2018-05-15 10:31:46 144

转载 eclipse idea 快捷键对比

分类功能点Eclipse快捷键IDEA快捷键搜索搜索文本Ctrl + FCtrl + FCtrl + R 查找替换Alt + P/A 逐个/全部替换Alt + F3 查找当前选中词继续搜索Ctrl + K 向前Ctrl + Shift + K 向后F3Shift + F3搜索方法Ctrl + OCtrl + F12搜索类Ctrl + Shift + TCtrl + N搜索文件Ctrl + Shif...

2018-05-14 14:00:39 69

原创 姓名,身份证,手机号正则匹配

2018-05-14 13:29:26 2263

转载 @Controller和@RestController的区别?

@Controller和@RestController的区别?官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。1)如果只是使用@RestContr...

2018-05-13 10:18:05 71

转载 上传及下载

导入脚本接口 * @param request */@RequestMapping(value = "/importRule.json")@ResponseBodypublic void importRule(HttpServletRequest request) { InputStream inputStream = null; InputStreamReader in...

2018-05-08 16:55:53 186

转载 Java8 hashmap

简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 Hash...

2018-05-08 15:45:18 85

转载 乐观锁的两种实现方式

什么场景下需要使用锁?在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。脏读:一个事务读取另一个事物为提交的数据,即为脏读。其次还有幻读。。针对并发引入并发控制机制,即加锁。加锁的目的是在同一个时间只有一个事务在更新数据,通过锁独占数据的修改权。锁的实现方式      ...

2018-05-02 21:03:22 1049

转载 索引

在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应...

2018-05-02 20:04:21 212

转载 redis与mysql的区别

我们都知道,MySQL是持久化存储,存放在磁盘里,检索的话,会涉及到一定的I/O,为了解决这个问题,就出现了缓存,首先,用户访问网站,如果未命中,就去访问mysql,之后像内存和磁盘一样,把数据复制到缓存中内存与磁盘的关系,磁盘放置主体数据用于持久化存储,而内存则是当前运行的那部分数据,CPU访问内存而不是磁盘,这大大提升了运行的速度前者是内存数据库,数据保存在内存,当然速度快而后者是关系型数据库...

2018-05-02 19:59:26 74

转载 java多线程(四)-自定义线程池

当我们使用 线程池的时候,可以使用 newCachedThreadPool()或者 newFixedThreadPool(int)等方法,其实我们深入到这些方法里面,就可以看到它们的是实现方式是这样的。1 public static ExecutorService newCachedThreadPool() {2 return new ThreadPoolExecutor(0, ...

2018-04-22 10:08:14 126

空空如也

空空如也

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

TA关注的人

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