![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 82
清_凉
这个作者很懒,什么都没留下…
展开
-
Java中的作业调度——quartz
1.quartz简介 关于quartz的介绍,请链接如下地址:http://baike.baidu.com/link?url=Gl0_SCWPJ8owyjM2ORBWd0En0Y2ppGZuGTfwAJFb5dA4OyrlEVmYAR6yG4QtG8O1x9j1U6JMJPXvSbRBU1Bn0RcZOctgFn_hdIG_-HtGYm7。 此处不再累述! 2. 实...原创 2015-06-23 16:07:02 · 199 阅读 · 0 评论 -
异常统一处理
一、背景在实际的工作中,在服务与服务之间的交互中,异常是一个很重要的点,这里的异常有的是正常的业务异常,而有些确实程序本身抛出的异常,例如:服务A依赖服务B,服务B出现了NullPointerException,作为调用方,一定要做好异常的处理。下面是小弟在工作过程中,总结出来的一个统一处理异常的工具。二、代码实现1、定义服务返回结果DemoResultpublic class ...2016-12-28 17:30:56 · 171 阅读 · 0 评论 -
Metrics:JVM的实时监控工具
一、背景 最近两个月的工作中,一直在监控线上应用的情况,并且在排查线上问题的时候,发现线上的机器十分之多,为了能够自动化、平台化的监控线上应用,选择了Metrics。Metrics是给Java服务的各种指标提供监控的一种工具包。 二、简介 结合项目组使用的是SpringBoot的应用部署方式和Maven的项目管理方式,引入Metrics的方式如下: ...原创 2017-01-03 14:31:28 · 2347 阅读 · 0 评论 -
证明Java不是纯面向对象语言
一、论述 在我们刚接触Java语言的时候,所有的教材或老师都会和你讲这样一点:Java是一门面向对象的编程语言。用2015年比较流行的网络语就是:Java是一门面向对象的编程语言、Java是一门面向对象的编程语言、Java是一门面向对象的编程语言,重要的事说三遍!!! 那Java到底是怎样的一门面向对象的编程语言呢,鄙人给出的结论是Java不是纯面向对象的。也许...2016-01-20 15:39:52 · 403 阅读 · 0 评论 -
Java编程之脚本语言的使用
一、背景 利用Java语言编写系统的时候,经常会遇到业务需求的变更而导致修改代码,甚至有些时候还需要修改核心代码(如果整个系统架构设计的不合理的话)。为了避免这种问题,在Java编程的时候,我们应该将易变业务使用脚本语言编写。 Java世界一直在遭受着“异族”的入侵,比如PHP、Ruby、Groovy、JavaScript等,这些入侵者都有一个共同的特征:全是同...2016-03-15 16:28:18 · 206 阅读 · 0 评论 -
Java编程之构造代码块
最近工作不忙,闲来无事,就看看书,今天遇到了构造代码块让我一顿好奇。构造函数倒是了解一些,构造代码块还是第一次听说,那么到底什么是构造代码块? 其实,构造代码块是代码块的一种类型。代码块是指用大括号把多行代码封装在一起,形成一个独立的数据体,实现特定算法的代码集合。一般来说,代码块是不能单独运行,必须要有运行主体。在Java中一共有四种类型的代码块,即: ...2016-03-16 16:35:16 · 154 阅读 · 0 评论 -
Java编程之数组扩容
一、背景 数组在实际的系统开发中用的越来越少了,我们只有在阅读某些开源项目时才会看到数组的使用。在Java中,数组与List、Set、Map等集合类相比,后者使用起来方便,但是在基本数据类型处理方面,数组还是占优势的,而且集合类的底层也都是通过数组实现的。 我们大家都知道,在Java中数组是定长的,一旦初始化以后,就不可以改变其长度,而这在实际应用中是不方便的。...2016-03-22 13:46:03 · 616 阅读 · 0 评论 -
Java编程之数组转换列表的陷阱
一、基本数据类型数组不能作为asList的入参,否则会引起程序的逻辑混乱。 这段时间在熟悉新的项目,在看项目代码的时候,发现以前的同事很喜欢用Arrays和Collections这两个工具类,实现数组与列表之间的转换。应该说,很多开发的童鞋在实现数组与列表之前转换的时候,都钟情于这两个工具类。鄙人为了理解这两个工具类,特意写了一个demo学习一下。import java.u...2016-03-24 16:16:08 · 137 阅读 · 0 评论 -
分布式锁之基于Redis的分布式锁
一、简述 分布式锁一般有三种实现方式:第一,数据库乐观锁;第二,基于Redis的分布式锁;第三,基于Zookeeper的分布式锁。目前,在项目中有需要用到分布式锁的场景,因此学习并总结了。今天,咱们先来聊聊基于Redis的分布式锁。 要保证基于Redis的分布式锁可用,必须同时满足以下四个条件:1、互斥性:在任何时刻只能有一个客户端持有锁;2、避免死锁:即使有一...2018-03-26 16:24:47 · 461 阅读 · 0 评论 -
Java8之简单流操作
一、Java8中的Stream Java8之所以被广大的Java爱好者所喜爱,是因为它提供了一系列的关于集合的Stream操作。集合API是Java API中最重要的部分。基本上每一个java程序都离不开集合。尽管很重要,但是现有的集合处理在很多方面都无法满足需要。 一个原因是,许多其他的语言或者类库以声明的方式来处理特定的数据模型,比如SQL语言,你可以从表中查询...2016-09-21 14:54:15 · 137 阅读 · 0 评论 -
Hessian学习笔记之HessianRPC
一、总述 在Hessian学习笔记之上传文件这一篇中,通过一个实例讲解了如何通过Hessian实现上传文件。Hessian最主要的特征之一就是远程过程调用(Remote Procedure Call,RPC)。下面通过一个简单的实例说明。 二、实例展示 1、环境搭建 开发工具:eclipse + tomcat。 服...2015-07-15 10:52:54 · 135 阅读 · 0 评论 -
利用lucene对文件内容进行关键字检索
在具体实现之前,请根据自己的要求,建立对应的路径及文件。例如,我这边创建的路径及文件是: D:/tools/LearningByMyself/lucene/source/demo1.txtD:/tools/LearningByMyself/lucene/source/demo2.txtD:/tools/LearningByMyself/lucene/index 第一步,建...2015-06-24 12:54:16 · 280 阅读 · 0 评论 -
Hessian学习笔记之Hessian实例
1.简介 Hessian是一个轻量级的remoting on http工具,通过简单的方法提供了RMI的功能。 与WebService相比较而言,Hessian更简单、快捷。 Hessian采用的是二进制的RPC协议,正是因为它采用的是二进制协议,所以它很适合于发送二进制数据。 2.实例讲解 服务端: a.下载hessian...2015-06-24 17:04:29 · 220 阅读 · 0 评论 -
Zookeeper学习笔记一
1.前言 由于在开发产品的过程中接触到了Zookeeper,业余时间学习并开发了一个利用Zookeeper实现分布式锁的实例。 2.Zookeeper简介 大家对于分布式架构,可能比较熟悉Hadoop,而Zookeeper是Hadoop的一个子项目。Zookeeper本身包含一个简单的原语集,并且是一个分布式的、开源的应用程序协调服务架构。...2015-07-06 18:05:08 · 82 阅读 · 0 评论 -
编写自己的Exception
在实际的工作中,通常需要定义自己功能模块相关的异常,下面一个实例可以实现定义自己的异常: 1.定义一个异常码抽象类作为基类public abstract class BaseExceptionCode { private String errorMessage ; private int errorCode ; private final BaseExcept...原创 2015-07-07 14:24:17 · 227 阅读 · 0 评论 -
Apache对象池插件common-pool学习小结
一、背景 对于使用面向对象语言开发软件的童鞋们都知道,对象是一个十分重要的概念,用Thinking in Java绪论里面的话说:一切皆是对象。 因为对象的重要性,所以在某些大型的应用系统中,对象会被频繁的创建并使用,这就会导致开发人员需要对系统的性能进行调优,特别是在系统耗时方法更是需要着重优化。幸好,有Apache这样一个组织,给奋斗在第一线的广大IT民工提...原创 2015-07-08 15:57:06 · 212 阅读 · 0 评论 -
Java线程池学习笔记一
一、什么是线程池 线程池是一种多线程处理技术。在处理线程的过程中,先将任务(作业)添加到队列,然后在创建线程后自动启动这些任务(作业)。 线程池是由以下几部分组成的: 1、线程池管理器(ThreadPoolManager):用于创建并管理线程池 2、工作线程(WorkThread):线程池中线程 3、任务接口(Ta...原创 2015-07-09 17:13:09 · 106 阅读 · 0 评论 -
Java线程池学习笔记二
一、背景 在Java线程池学习笔记一中,理解了几个常用的常用的线程池创建的静态工程方法。本篇就Java线程池中的核心:ThreadPoolExecutor,作深入的学习。 二、ThreadPoolExecutor的详细分析 ThreadPoolExecutor是java.util.concurrent包中一个类,它实现了Executor和Ex...2015-07-10 14:32:11 · 82 阅读 · 0 评论 -
Hessian学习笔记之上传文件
在Hessian学习笔记之Hessian实例这一篇中简单介绍了Hessian的一个入门实例,本篇主要是深入学习Hessian,即利用Hessian实现文件上传。 1、服务端接口 import java.io.InputStream;/** * 文件上传服务接口 * */public interface FileUploadServ...2015-07-14 14:58:24 · 197 阅读 · 0 评论 -
单例模式
一、概述 单例模式,在设计模式中,是一个比较重要的设计模式。在开发中,如果某个实例的创建需要消耗很多资源,那么我们通常会选择使用懒性加载机制。何谓懒性加载机制呢?说白了,就是在使用到这个实例的时候,才去创建这个实例。这个机制在单例模式中,得到了很广泛的应用。这个机制在单线程的环境下实现非常简单,但是在多线程的环境下存在安全隐患。二、单例模式下的懒加载机制 我...2018-04-24 17:54:29 · 113 阅读 · 0 评论