
java
文章平均质量分 74
安静的写个代码
默默的写个代码
展开
-
Idea使用Eclipse的代码格式
1. Idea安装Eclipse code formatter 插件设置 --> plugins --> eclipse code formatter --> 安装2. 配置代码格式模板设置 --> Other Settiings --> Eclipse Code Formatter使用的配置的xmlhttps://download.youkuaiyun.com/download/u011359903/12417928...原创 2020-05-14 08:25:49 · 703 阅读 · 0 评论 -
缓存的最佳实践
1. 本地缓存、分布式缓存、文件缓存缓存就是数据交换的缓冲区,按照分布情况,可以分为: 本地缓存:可用hashmap(注意并发)、guava-cache(推荐)等。对于一致性要求不高、访问频率高、总数据集小、重建成本低可以考虑使用本地缓存。本地缓存的不好的地方是占用JVM堆内存,影响垃圾回收,影响系统性能。 分布式缓存:实现由redis(推荐)、memcache等。对于较大且不...原创 2020-03-20 10:27:01 · 901 阅读 · 0 评论 -
Quartz的简单实例
1、Jobimport java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quartz.JobDataMap;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;i原创 2017-09-29 13:59:11 · 563 阅读 · 0 评论 -
Spring Boot和Quartz的整合
Spring Boot目的是零配置,为了遵从该理念,下面的代码采用的是注解方式。1、配置quartzimport org.quartz.Trigger;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import原创 2017-09-29 14:01:35 · 8537 阅读 · 3 评论 -
单例模式--JAVA
单例设计模式Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。核心知识点如下:(1) 将采用单例设计模式的类的构造方法私有化(采用private修饰)。(2) 在其内部产生该类的实例化对象,并将其封装成private static类型。(3) 定义一个静态方法返原创 2017-02-15 14:06:18 · 305 阅读 · 0 评论 -
java的final变量浅析
final关键字可修饰类、方法、变量(包括成员变量和局部变量)。1、修饰类final修饰类,说明被修饰的类不可以被继承,同样final修饰的类里面的成员方法均为final方法。值得注意一下,String类就是一个final类。2、修饰方法final修饰方法,说明被修饰的方法不可以重载,防止被继承的类修改该方法。注:private方法会隐式的指向final方法。3、修原创 2017-09-21 16:26:59 · 378 阅读 · 0 评论 -
SpringBoot整合quartz(支持多个任务和job支持spring管理的对象)
工作中经常遇到quartz的job注入的spring对象为null,原因是这样的:quartz每次执行一次job会将执行完成后的job销毁,下次执行的时候,重新new,这就导致job中的@Autowired注入的Spring对象为null,下面为了避免这个问题,以后的job都是从spring中获取。之前的文章只适合单个的job,这次采用Factory的方式,支持多个job。上代码:1、创建原创 2017-10-13 10:52:08 · 10418 阅读 · 1 评论 -
java NIO
NIO(non-blocking)非阻塞的IO,为传统的IO提供缓存支持。一、概述1、ChannalChannel如同流,数据可以从channel读到buffer中,也可以从buffer读到channel中。Channel中有:FileCannel、DatagramChannel、SocketChannel、ServerSocketChannel2、原创 2017-11-02 10:44:39 · 355 阅读 · 0 评论 -
ElasticSearch的reIndex
由于Elasticsearch已创建的index是不允许修改的,其原因是由于创建的时候就会创建倒排索引,但是此时应用程序已经在使用了该索引,并且不允许应用暂停,那么怎么去处理这样的事情呢?下面就是一个比较靠谱的解决方案,就是使用alias,scroll api,bucket api。具体案例如下:保存数据PUT /index_before/type_before/1{"ti原创 2017-12-19 17:20:11 · 2062 阅读 · 0 评论 -
操作系统的堆和栈的区别
操作系统栈:由编译器分配,存放函数的参数值、临时变量值等,操作方式类似于数据结构中的栈。堆:由程序员分配,若程序员不进行释放,堆会在程序结束后OS进行释放。与数据结构中的堆是两回事,分配方式类似于链表,一般存放大的数据对象。数据结构栈:一种线性的数据结构,先进后出。堆:结构如同树,可以使用堆进行排序(堆排序)。原创 2017-12-03 16:27:46 · 1410 阅读 · 0 评论 -
使用Elasticsearch的java api,操作elasticsearch
本应用使用的maven,java8。依赖的jar包: org.elasticsearch.client transport 5.2.2 org.apache.logging.log4j log4j-api 2.7 org.apache.logging.log4原创 2017-12-19 17:47:54 · 6179 阅读 · 0 评论 -
java知识点和面试
1、准备一、java基础部分:1)概念:java特性(多态,封装,抽象,继承),面向对象,面向过程,面向服务,同步和异步,阻塞和非阻塞2)常用的关键字:final,volatile,synchronized,static,abstract,interface等3)常用的集合:collection接口下的和map接口下的,collection下的list,set,ArrayList,原创 2018-02-06 15:35:48 · 533 阅读 · 0 评论 -
FeatureToggle
概述为了控制功能开启与关闭,减少代码中的if-else繁琐的逻辑判断。主要通过spring的aop及java的注解实现。目前主要包含6个部分的代码,支持内存存储和部分策略。源码git:稍后放源码功能 单个开关的配置 开关组的配置,通过组的设置,可控制组内的开关的开启和关闭 开关使用策略(v1.0 支持工作日策略,可灵活配置其他时间;支持客户端和服务端策略) ...原创 2018-12-04 20:47:18 · 2098 阅读 · 0 评论 -
Quartz浅析
Quartz1、简介2、设计模式builder模式,factory模式,组件模式,链式写法3、核心1)调度器(scheduler)2)任务(JobDetail)3)触发器(SimpleTrigger和CronTrigger)4、执行方式1)编写一个job实现类,实现相应的job任务2)使用JobDetail封装job,使用JobBuilder创建一个JobD原创 2017-09-29 13:57:40 · 438 阅读 · 0 评论 -
时间戳和日期互相转换
1.将日期字符串转成时间戳: /** * 将String类型的日期转成时间戳 * @param date 格式为“yyyy-MM-dd HH:mm:ss” * @return 默认格式为:“yyyy-MM-dd HH:mm:ss” */ public static String getTimeStampByDateString(String date ){ String re原创 2017-06-16 16:00:46 · 2591 阅读 · 0 评论 -
Spring的IOC(控制反转)和DI(依赖注入)
Spring的IOC和DI1、概念1)IOC和DI:控制反转和依赖注入是一种基于接口的编程,bean有IOC容器创建,在用的时候从容器中拿即可,主要是采用反射来实现的,其核心组件为BeanFactory,但实际开发中是XmlBeanFactory。2)反射机制:在运行状态中,对于任意一个类,都可以知道这个类的属性和方法,对任意一个对象,都可以调用它的方法和属性,这种动态获取类的信息和动原创 2017-09-19 22:23:15 · 359 阅读 · 0 评论 -
Quartz任务调度快速入门
概述了解Quartz体系结构Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器、任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的这些核心概念进行描述:●Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上原创 2016-09-20 11:17:28 · 571 阅读 · 0 评论 -
hessian学习
hessian是一个采用二进制格式传输的服务框架,相对传统soap web service,更轻量,更快速。官网地址:http://hessian.caucho.com/目前已经支持N多语言,包括:java/c#/flex/php/ruby...maven的依赖项如下:1 dependency>2 groupId>com.cauchogroupId>3 arti转载 2016-09-20 09:48:50 · 304 阅读 · 0 评论 -
hessian 的简单介绍
一、什么是Hessian Hessian 是一个基于 binary-RPC实现的远程通讯 library。使用二进制传输数据。Hessian通常通过Web应用来提供服务,通过接口暴露。Servlet和Spring的DispatcherServlet都可以把请求转发给Hessian服务。由以下两种方式提供,分别为:com.caucho.hessian.server.HessianServ原创 2016-09-20 09:41:59 · 1495 阅读 · 0 评论 -
java多线程基础
java多线程有两种方式,一种是继承Thread类,一种是实现Runable接口1、继承Thread类:class threadTest extends Thread { publicthreadTest () { } publicthreadTest (String name) { this.name原创 2016-09-19 22:05:30 · 370 阅读 · 0 评论 -
MyEclipse 快捷键大全
MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 快速修复Ctrl+D: 删除当前行 Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行 Ctrl+O 快速显示 OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+W 关闭当前Editer Ctrl+K 快速定位到下原创 2016-09-11 21:44:00 · 306 阅读 · 0 评论 -
线程中notify()和notifyAll()异同
相同:都是Object对象用于通知处在等待该对象的线程的方法不同:notifyAll使所有原来在该对象上等待被notify的线程统统退出wait的状态,变成等待该对象上的锁,一旦该对象被解锁,它们就会去竞争。notify则文明得多他只是选择一个wait状态线程进行通知,并使它获得该对象上的锁,但不惊动其他同样在等待被该对象notify的线程们,当第一个线程运行完毕以后释放对象上的锁此时如果原创 2015-05-28 20:22:08 · 529 阅读 · 0 评论 -
Maven管理Spring+Mybatis的整合
声明一下:由于一开始打算自己做个java web项目,所以在MyEclipse下搭建的maven项目。1、配置Maven的环境有很多教程,百度一下就可以了,在这里不详细叙说。推荐一个写的比较好的博客:http://blog.youkuaiyun.com/fengshizty/article/details/43019561提醒一下,有的朋友是在公司,网络需要配置代理才可以连外网,在配置ma原创 2017-02-28 11:11:14 · 568 阅读 · 0 评论 -
java中子类初始化流程(包括静态区和非静态区)
一. 类中的方法分为实例方法和类方法两种,用static修饰的是类方法。二者有什么区别呢?实例方法: 当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。需要注意的是,当我们创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,也就是说,方原创 2017-06-05 11:11:08 · 498 阅读 · 0 评论 -
java序列化(serivalVersionUID)
serialVersionUID作用serialVersionUID适用于Java的序列化机制。简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一原创 2017-06-05 13:22:39 · 1570 阅读 · 0 评论 -
时间戳转成日期,解决总是日期总是1970年的问题
时间戳转成日期,解决总是日期总是1970年的问题 /** * 时间戳转换为指定格式时间 * @param date 时间戳 * @param pattern 时间格式 * @return 指定格式时间 */ public static final String format(Long date ,String pattern){ SimpleDateFormat s原创 2017-06-16 17:24:44 · 25096 阅读 · 3 评论 -
Map和List的对象是否是同一对象(并说明hash冲突)
先上代码,根据结果说明:public static void testList(){ Map map = new HashMap<>(); for(int i = 0; i<10;i++){ List list = new ArrayList<>(); list.add("1"); map.put(String.valueOf(i), list); System原创 2017-07-11 11:20:38 · 577 阅读 · 0 评论 -
spring事务浅析
Spring事务1、事务概念:事务是一系列动作,它们综合在一起,组成一个完整的工作单元,这些动作必须全部完成,若有一个失败,会回滚到初始状态。2、事务的特性:4个特性ACID(原子性、一致性、隔离性、持久性)原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功原创 2017-09-17 15:00:03 · 273 阅读 · 0 评论 -
java的面向对象的四大特征
四大特征分别为:抽象、封装、继承、多态下面分别说一下这四个特征:1、抽象抽象就是对现实的一类事物,抽取其特点,并把这些特点整合一起,用java语言表示来表示该类事物。2、封装封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。对于封装的概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护原创 2016-10-10 21:19:16 · 8351 阅读 · 0 评论