![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java知识总结
文章平均质量分 83
在远行的路上
在软件工程师的路上愈走愈远。。。
Github:https://github.com/lizhyocx
展开
-
《设计模式之美》学习总结
设计原则与思想面向对象面向对象的四大特性:抽象、封装、继承、多态。面向对象分析(OOA):需求分析。面向对象设计(OOD):是代码层面的设计,输出的设计结果是类。划分职责并识别出有哪些类、定义类及其属性和方法、定义类之间的交互关系、组装类并提供执行入口。面向对象编程(OOP:将设计的结果翻译成代码的过程。基于接口而非实现的设计思想、多用组合少用继承的设计思想.设计原则SOLID原则SRP单一职责原则1.如何理解单一职责原则(SRP)?一个类只负责完成一个职责或者功能。不要原创 2021-02-13 20:36:12 · 399 阅读 · 0 评论 -
自己动手实现一个阻塞队列--ReentrantLock使用小结
背景前几天看到一道面试题:实现一个阻塞队列,就萌生了动手操作一把的想法。看着挺简单的,思路也和清晰,就是用ReentantLock和Condition来实现,但在实际操作过程中还是遇到了问题,总结一下,仅供参考。阻塞队列第一版先附上第一版的代码。内部存储,为了方便就使用LinkedList来实现了。import java.util.LinkedList;import java.u...原创 2019-12-12 15:36:31 · 586 阅读 · 0 评论 -
阿里巴巴Canal数据同步实战
引言随着业务的发展,我们需要对数据库中的数据进行汇总、统计等操作,通常我们的做法是:写一个定时任务,定时读取数据,再进行汇总、统计等。但随着数据量的越来越来,查询的成本高了很多。那么有什么好的方法来实现呢?阿里巴巴开源的Canal就派上用场了。Canal的定位是:基于数据库增量日志解析,提供增量数据订阅&消费,也就是说,我们可以通过Canal做到实时获取数据库数据变更,以此再进行数据汇总...原创 2019-02-20 15:35:48 · 5645 阅读 · 3 评论 -
springmvc整合freemarker以及前端的一些坑
一、SpringMVC整合freemarker配置 2、添加freemarker配置bean和视图解析器二、使用freemarker踩的一些坑原创 2016-04-29 10:35:42 · 12794 阅读 · 2 评论 -
spring aop aspect + annotation实现缓存命中判断
最近看到了一种使用aop和注解的方式实现缓存命中判断的实现方式,觉得非常不错。借鉴过来,进行分享。 1、引入spring和aspect相关依赖 org.aspectj aspectjrt 1.8.6 org.aspectj aspectjweaver 1.8.6 aopalliance aopalliance原创 2016-06-02 14:22:38 · 4532 阅读 · 0 评论 -
Java知识总结----事件处理机制(九)
在上一篇文章中,跟大家介绍了队列的使用,在基于数据库的队列的是实现中,提到了可以使用事件处理机制类进行队列数据的处理。今天就来简单看看事件处理机制是怎么使用的。 首先我们需要一个事件的实体类:Eventimport java.util.concurrent.atomic.AtomicInteger;/** * 消息实体类 */public class Event {原创 2015-09-12 10:52:37 · 1959 阅读 · 0 评论 -
Java知识总结--快速搭建Java开发环境(一)
当我们更换电脑,更换操作系统的时候,重新搭建开发环境是必不可少的。今天就简单介绍一下如何快速搭建Java开发环境。1、安装JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 安装之后,需要配置环境变量。JAVA_HOME=JAVA_HOME=E:原创 2015-08-24 10:43:52 · 641 阅读 · 0 评论 -
Java知识总结----Java IO流(七)
说起IO流,脑子里浮现出的就是inputstream,outputstream,reader,writer之类的东西,但是,这些类我们该怎么选择,他们之间有什么区别和联系,好多人却不太清楚。今天就跟大家聊聊Java的IO流。 I就是input,O就是output,IO流就是输入-输出流。输入和输出就有了一个方向的问题。一般情况下,我们所说的输入和输出都是相对于内存来说的,从外设到内原创 2015-09-06 10:57:51 · 506 阅读 · 0 评论 -
Java知识总结----队列的使用(八)
今天跟大家来看看如何在项目中使用队列。首先我们要知道使用队列的目的是什么?一般情况下,如果是一些及时消息的处理,并且处理时间很短的情况下是不需要使用队列的,直接阻塞式的方法调用就可以了。但是,如果在消息处理的时候特别费时间,这个时候如果有新的消息来了,就只能处于阻塞状态,造成用户等待。这个时候在项目中引入队列是十分有必要的。当我们接受到消息后,先把消息放到队列中,然后再用新的线程进行处理,这个时候原创 2015-09-09 10:58:37 · 17802 阅读 · 1 评论 -
Java知识总结----Spring拦截器(六)
在看到拦截器的时候,大家一定会想到另外一个词,就是过滤器。两者到底有什么区别呢?过滤器,从字面的意思理解就是过滤用的,当很多请求过来的时候,我们对其进行过滤,满足一定条件的时候,才放行。在Java中,过滤器是使用Filter实现的,实现原理都是基于回调函数的。最常见的过滤器的应用就是字符编码的过滤、用户信息验证的过滤等。拦截器呢,就是用来拦截的,可以在方法的执行时,添加一些其他的信息,拦截器是使用原创 2015-08-26 14:29:03 · 2633 阅读 · 0 评论 -
Java知识总结----日志系统在项目中的应用(五)
现在的工作过程中,日志在项目中的角色越来越重要,环境出问题了,遇到bug了,我们都要从日志查起。所以在项目中记录日志就显得很重要。今天就跟大家简单聊聊如何在项目中引入日志。 现在市面上比较流行的日志框架有log4j,logback等,大家可能还听说过sjf4j,当然了还有apache的commons-logging,jdk的java.util.log。那么slf4j是什么呢?slf原创 2015-08-25 17:03:46 · 1500 阅读 · 0 评论 -
Java知识总结---MVC模式解析之MyBatis(四)
在上一篇的文章里,简单介绍了一些SpringMVC的一些简单使用方法。今天就来看看Mybatis。现在流行的Hibernate、Mybatis都是比较常见的ORM框架。什么是ORM呢,就是 Object Relational Mapping,对象关系映射,通俗点说,就是把对象映射成sql语句,在操作的时候,直接操作对象就可以了。了解过Hibernate的都知道,在做CRUD的时候,直接操作一个Mo原创 2015-08-25 10:54:42 · 853 阅读 · 0 评论 -
Java知识总结---整合SpringMVC+Mybatis+Spring(二)
在现在的Java Web开发过程中,各种各样框架层出不穷,在工作中,框架的使用也越来越频繁。今天介绍一下现在比较流行的SpringMVC、Mybatis和Spring框架,学习一下如何在项目中使用它们。本次项目的创建使用maven来完成。1、使用maven创建web项目。选择Maven Project,catalogs选择webapps,输入groupId,artifactId,完成即可。原创 2015-08-24 11:09:35 · 856 阅读 · 1 评论 -
Java知识总结---MVC模式解析之SpringMVC(三)
在上一篇文章中,我们使用SpringMVC、Mybatis、Spring快速的搭建了一个简单的项目。今天呢,跟大家简单的聊一聊MVC模式。很多人特别是Java开发者,都在说MVC,都挺别人说MVC,那么MVC到底是什么,这个又跟SSH、SSM有什么关系呢? MVC其实是一种设计的架构模式,Model+View+Controller。这个跟我们现在Web开发有很大的关系。Web开发原创 2015-08-24 11:55:05 · 1896 阅读 · 1 评论