Java
文章平均质量分 50
難報母恩
https://my.csdn.net/xiaohanzuofengzhou
展开
-
java多线程(四)-自定义线程池
当我们使用 线程池的时候,可以使用 newCachedThreadPool()或者 newFixedThreadPool(int)等方法,其实我们深入到这些方法里面,就可以看到它们的是实现方式是这样的。1 public static ExecutorService newCachedThreadPool() {2 return new ThreadPoolExecutor(0, ...转载 2018-04-22 10:08:14 · 128 阅读 · 0 评论 -
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 · 102 阅读 · 0 评论 -
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 · 1596 阅读 · 0 评论 -
使用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 · 128 阅读 · 0 评论 -
JAVA并发机制的底层实现原理
JAVA代码在编译后会变成字节码,字节码被类加载器加载到JVM中,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,JAVA中所使用的并发机制依赖于JVM的实现和CPU的指令。->参考《JAVA并发编程的艺术》1.volatile的应用volatile是轻量级的synchronized,它只是用来保证共享变量的可见性,不能保证操纵的原子性。【引申】–>volatile如何实现内存...转载 2018-07-01 20:53:23 · 137 阅读 · 0 评论 -
公平锁与非公平锁
总括: 在Java的ReentrantLock构造函数中提供了两种锁:创建公平锁和非公平锁(默认)。代码如下:public ReentrantLock() {sync = new NonfairSync();}在公平的锁上,线程按照他们发出请求的顺序获取锁,但在非公平锁上,则允许‘插队’:当一个线程请求非公平锁时,如果在发出请求的同时该锁变成可用状态,那么这个线程会跳过队列中所有的等待线程而获...转载 2018-06-27 11:16:26 · 124 阅读 · 0 评论 -
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 · 1040 阅读 · 0 评论 -
消息队列使用的四种场景介绍
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注...转载 2018-06-29 09:21:37 · 279 阅读 · 0 评论 -
SpringBoot对消息队列(MQ)的支持
1.异步消息的定义 异步消息的主要目的是为了系统与系统之间的通信,所谓异步消息即消息发送者无需等待消息接收者的处理以及返回,甚至无需关心消息是否发送成功 在异步消息中有两个很重要的概念,即消息代理和目的地,当消息发送者发送消息之后,消息将由消息代理接管,消息代理保证消息传递到指定目的地。 异步消息主要有两种目的地形式,队列(queue)和主题(topic),队列用于点对点形式的消息通信,...转载 2018-06-29 09:22:46 · 835 阅读 · 0 评论 -
SpringBoot 基于Redis快速实现消息队列
SpringBoot基于Redis快速实现消息队列一. 常用消息队列工具 目前常用的消息队列大概有三种类型,RabbitMQ等AMQP系列, Kafka, Redis等kev value系列,它们的使用场景分别是: 1.RabbitMQ: 相对重量级高并发的情况,比如数据的异步处理 任务的串行执行等. 2.Kafka: 基于Pull的模式来处理,具体很高的吞吐量,一般用来进行 日志的存储...转载 2018-06-29 09:23:36 · 271 阅读 · 1 评论 -
Java中的多线程你只要看这一篇就够了
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确...转载 2018-06-25 10:53:29 · 90 阅读 · 0 评论 -
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 · 6536 阅读 · 0 评论 -
乐观锁的两种实现方式
什么场景下需要使用锁?在多节点部署或者多线程执行时,同一个时间可能有多个线程更新相同数据,产生冲突,这就是并发问题。这样的情况下会出现以下问题:更新丢失:一个事务更新数据后,被另一个更新数据的事务覆盖。脏读:一个事务读取另一个事物为提交的数据,即为脏读。其次还有幻读。。针对并发引入并发控制机制,即加锁。加锁的目的是在同一个时间只有一个事务在更新数据,通过锁独占数据的修改权。锁的实现方式 ...转载 2018-05-02 21:03:22 · 1052 阅读 · 0 评论 -
Java8 hashmap
简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做一些说明:(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 Hash...转载 2018-05-08 15:45:18 · 86 阅读 · 0 评论 -
上传及下载
导入脚本接口 * @param request */@RequestMapping(value = "/importRule.json")@ResponseBodypublic void importRule(HttpServletRequest request) { InputStream inputStream = null; InputStreamReader in...转载 2018-05-08 16:55:53 · 188 阅读 · 0 评论 -
java对象拷贝之BeanUtils.copyProperties() 用法
一、简介: BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。 二、用法: 如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts...转载 2018-05-15 15:58:28 · 557 阅读 · 0 评论 -
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 · 13885 阅读 · 4 评论 -
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 · 4628 阅读 · 0 评论 -
@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 · 141 阅读 · 0 评论 -
mybatis plus
简介Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。我们的愿景是成为Mybatis最好的搭档,就像 Contra Game 中的1P、2P,基友搭配,效率翻倍。特性无侵入:Mybatis-Plus 在 Mybatis 的基础上进行扩展,只做增强不做改变,引入 Mybatis-Plus 不会对您现有的 M...转载 2018-05-23 19:47:51 · 436 阅读 · 0 评论 -
高并发的解决方案
1.应用和静态资源分离刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件因为没有状态所以分离比较简单,直接存放到响应的服务器就可以了,一般会使用专门的域名去访问。通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了。架构图如下:2.页面缓存页...转载 2018-08-15 19:28:18 · 144 阅读 · 0 评论