
java
dave160947
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java 自定义注解
什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。 Java注...转载 2020-12-01 11:15:02 · 131 阅读 · 0 评论 -
springboot 自定义全局异常拦截
/** * @author lanxuqiang * @description: 异常处理控制器 * @date 2020/11/413:33 * @Version 1.0 */@ControllerAdvicepublic class MyExceptionHandler { public static Logger logger = LoggerFactory.getLogger(MyExceptionHandler.class); /** * 运行时异常.原创 2020-11-04 15:48:54 · 350 阅读 · 0 评论 -
java后端通用返回json结果封装
Response 类public class Response { /**** * 成功响应Msg中的信息 **/ private final static String SUCCESS = "success"; /**** * 失败响应Msg中的信息 **/ private final static String FAILED = "failed"; public static <T> Res.原创 2020-11-04 14:51:27 · 1389 阅读 · 1 评论 -
Java线程池七个参数详解
java多线程开发时,常常用到线程池技术,这篇文章是对创建java线程池时的七个参数的详细解释。从源码中可以看出,线程池的构造函数有7个参数,分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。下面会对这7个参数一一解释。一、corePoolSize 线程池核心线程大小线程池中会维护一个最小的线程数量,即使这些线程处理空闲状态,他们也不会 被销毁,除非设置了allowCoreThre转载 2020-05-11 14:46:59 · 162 阅读 · 0 评论 -
Java设计模式
创建者模式创建者模式就是为了用优雅的方式创建我们使用的类。1.简单工厂模式这个用的比较少,就是有个工厂,告诉你我要什么东西,你造好了给我就行。比如说:2.工厂模式这个其实和简单工厂模式差不太多,就是将工厂继续拆分,比如说刚刚EasyBallFactory是一个总工厂,我们现在拆分成SoccerFactory和BasketBallFactory分别生产足球和篮球。某个工厂内部...转载 2020-05-07 17:53:50 · 216 阅读 · 0 评论 -
设计模式六大原则
单一职责原则SRP(Single Responsibility Principle)一个类只负责一个功能领域的相应职责,即就一个类而言,应该只有一个引起它变化的原因。单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,而发现类的多重职责需要设计人员具有较强的分析设计能力和相关实践经验。开闭原则OCP(Open-Close...转载 2020-05-07 16:55:51 · 124 阅读 · 0 评论 -
idea运行项目 程序包org.springframework.*不存在
IDEA内置了Maven环境,默认采用Maven解决项目依赖问题。在新建项目后,项目的路径中会生成pom.xml文件和项目名.iml文刷新Maven配置的方法为:(1)右键单击项目;(2)在弹出菜单中选择Maven------>Reimport菜单项。此时,IDEA将通过网络自动下载相关依赖,并存放在Maven的本地仓库中。另外,可以将Maven的刷新设置为自动,配置方法为:...原创 2019-07-16 18:33:09 · 46313 阅读 · 2 评论 -
达达O2O后台架构演进实践:从0到4000高并发请求背后的努力
1、引言达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台。 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题(2016年4月,达达已经与京东到家合并)。达达的业务组成简单直接——商家下单、配送员接单和配送,也正因为理解起来简单,使得达达的业务量在短时间能实...转载 2019-07-24 11:04:57 · 233 阅读 · 0 评论 -
java解析上传excel
package com.holike.crm.partner.sys;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.log4j.Logger;import org.apache.poi.h...原创 2019-07-19 17:45:39 · 513 阅读 · 0 评论 -
JAVA接口测试类
package etcom.servlet;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Htt...原创 2019-08-23 15:36:59 · 961 阅读 · 1 评论 -
创建线程池的几种方式
java类库提供一个灵活的线程池以及一些有用的默认配置;我们可以通过Executors的静态方法来创建线程池。newFixedThreadPool(int nThreads)创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量,这时线程规模将不再变化,当线程发生未预期的错误而结束时,线程池会补充一个新的线程newCachedThreadPool()创建一个...原创 2019-09-11 14:19:43 · 405 阅读 · 0 评论 -
Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲:一.CountDownLatch用法二.CyclicBarrier用法三.Semaphore用法一.CountDownLatch用法CountDownLatch类...转载 2019-06-03 17:32:17 · 97 阅读 · 0 评论 -
消息队列模式(点对点&发布订阅)
##背景知识JMS一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1.Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异...转载 2019-06-13 00:18:32 · 685 阅读 · 0 评论 -
Restful 一个简单的Demo
REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想Rest架构的主要原则 网络上的所有事物都被抽象为资源 每个资源都有一个唯一的资源标识符...转载 2018-06-12 14:33:50 · 17605 阅读 · 5 评论 -
servlet和filter的区别
Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。完整的流程是:Filter对用户请求进行预处理,接着将请求交给 Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理Filter必须实现javax.Servlet....原创 2018-06-14 14:35:15 · 4463 阅读 · 0 评论 -
ConcurrentHashMap的使用场景以及为什么多线程异步中完全替换hasmap的
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩_∩)O)。ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,f...转载 2018-07-11 11:38:09 · 7568 阅读 · 1 评论 -
java高并发系统方案解决之一 ,异步请求的重要性
在做电商系统时,流量入口如首页、活动页、商品详情页等系统承载了网站的大部分流量,而这些系统的主要职责包括聚合数据拼装模板、热点统计、缓存、下游功能降级开关、托底数据等等。其中聚合数据需要调用其它多个系统服务获取数据、拼装数据/模板然后返回给前端,聚合数据来源主要有依赖系统/服务、缓存、数据库等;而系统之间的调用可以通过如http接口调用(如HttpClient)、SOA服务调用(如dubbo、th...转载 2018-07-11 14:40:27 · 6145 阅读 · 0 评论 -
轻量级的高性能JVM应用平台Vert.x
Vert.x入门教程 传统的企业级网站很少遇到大并发量的问题,然而目前互联网时代迈进,互联网企业面临的最大问题就是大并发量,大请求,对于java而言传统的框架很难招架住这样的问题,Vert.x 是基于单核单进程单线程异步回调外加队列来实现对于高并发的处理。 Vert.x是一个轻量级的高性能JVM应用平台,基于它可开发各种移动,Web和企业应用程序。一个主要特点是可使用多种语言编写应用,如Jav...转载 2018-07-11 18:30:43 · 1012 阅读 · 0 评论 -
Vert.x全异步微服务框架
本文参考自Vert.x Web Client官方文档。套用官网的话来说,Vert.x Web Client是一个异步的HTTP和HTTP/2网络客户端。相对来说,这是一个比较小的框架,而且功能也很直接,做一个方便好用的HTTP客户端。它具有以下功能:Json body 编码 / 解码 request 参数 统一的错误处理 表单提交需要注意,它和Vertx核心包中的HttpC...转载 2018-08-01 15:12:44 · 2623 阅读 · 0 评论 -
java之JUC
1. JUC 简介在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类, 用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中 的 Collection 实现等;2. volatile 关键字volatile 关键字: 当多个线程进行操作共享数据时,可以保...转载 2018-11-07 09:36:38 · 303 阅读 · 0 评论 -
java动态代理实现与原理详细分析
关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 一、代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象...转载 2019-01-29 17:20:28 · 186 阅读 · 0 评论 -
多线程实现之Callable
创建线程的两种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。一、Runnable接口先看一...转载 2019-03-16 13:52:08 · 208 阅读 · 0 评论 -
ThreadLocal例子
ThreadLocal的方法ThreadLocal类接口很简单,只有4个方法,我们先来了解一下:void set(Object value)设置当前线程的线程局部变量的值。public Object get()该方法返回当前线程所对应的线程局部变量。public void remove()将当前线程局部变量的值删除,目的是为了减少内存的占用,该方法是JDK 5.0新增的方法。需要...原创 2019-03-16 15:36:45 · 211 阅读 · 0 评论