JAVA
Liam018
这个作者很懒,什么都没留下…
展开
-
Java 实现生产者 : 消费者模型
Java 实现生产者 : 消费者模型考查Java的并发编程时,手写“生产者-消费者模型”是一个经典问题。有如下几个考点:对Java并发模型的理解对Java并发编程接口的熟练程度bug freecoding style本文主要归纳了4种写法,阅读后,最好在白板上练习几遍,检查自己是否掌握。这4种写法或者编程接口不同,或者并发粒度不同,但本质是相同的——都是在使用或实现BlockingQueue。生产...原创 2018-05-30 14:56:04 · 277 阅读 · 0 评论 -
为什么在开发时需要重写equals与hashCode
我们通常都会说重写了equal是为了比较两个对象的值是否相同,但是如果所以重写的话,即使是猪和狗两个类别的动物互相调用equal方法都可以做到相同,所以重写equals时一定要注意业务逻辑。并且重写时要遵守如下原则:1 自反性:对任意引用值X,x.equals(x)的返回值一定为true.2 对称性:对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equa...原创 2018-07-31 15:17:23 · 238 阅读 · 0 评论 -
POM文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_...原创 2018-09-14 09:35:35 · 1076 阅读 · 0 评论 -
Date工具类
import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.comm...原创 2018-09-25 12:44:38 · 462 阅读 · 0 评论 -
浅析HashMap
HashMap光从名字上应该也能猜到,HashMap肯定是基于hash算法实现的,这种基于hash实现的map叫做散列表(hash table)。散列表中维护了一个数组,数组的每一个元素被称为一个桶(bucket),当你传入一个key = "a"进行查询时,散列表会先把key传入散列(hash)函数中进行寻址,得到的结果就是数组的下标,然后再通过这个下标访问数组即可得到相关联的值。...原创 2018-09-25 15:37:22 · 449 阅读 · 0 评论 -
JAVA Map那点事儿
Map是一种用于快速查找的数据结构,它以键值对的形式存储数据,每一个键都是唯一的,且对应着一个值,如果想要查找Map中的数据,只需要传入一个键,Map会对键进行匹配并返回键所对应的值,可以说Map其实就是一个存放键值对的集合。Map被各种编程语言广泛使用,只不过在名称上可能会有些混淆,像Python中叫做字典(Dictionary),也有些语言称其为关联数组(Associative Array),...原创 2018-09-25 15:41:36 · 133 阅读 · 0 评论 -
浅析TreeMap
TreeMapTreeMap是基于红黑树(一种自平衡的二叉查找树)实现的一个保证有序性的Map,在继承关系结构图中可以得知TreeMap实现了NavigableMap接口,而该接口又继承了SortedMap接口,我们先来看看这两个接口定义了一些什么功能。SortedMap首先是SortedMap接口,实现该接口的实现类应当按照自然排序保证key的有序性,所谓自然排序即是根据key的co...原创 2018-09-25 15:47:05 · 333 阅读 · 0 评论 -
浅析AbstractMap
AbstractMap是一个抽象类,它是Map接口的一个骨架实现,最小化实现了此接口提供的抽象函数。在Java的Collection框架中基本都遵循了这一规定,骨架实现在接口与实现类之间构建了一层抽象,其目的是为了复用一些比较通用的函数以及方便扩展,例如List接口拥有骨架实现AbstractList、Set接口拥有骨架实现AbstractSet等。下面我们按照不同的操作类型来看看Abstra...原创 2018-09-25 15:50:39 · 176 阅读 · 0 评论 -
spring boot下mybatis的单元测试写法
package com.clamc.mapper;import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.mybatis.spring.boot.test.autoc...原创 2018-09-21 17:39:20 · 5973 阅读 · 4 评论 -
Spring学习-入门
Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。Spring概述: Spring框架是一个轻量级的企业级开发的一站式解决方案.所谓的解决方案也就是说可以基于Spring解决所有J2EE开发带来的所有问...原创 2018-10-31 10:02:49 · 194 阅读 · 0 评论 -
Java抽象类
什么是抽象类: 官方: 抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类...原创 2018-07-31 13:40:30 · 136 阅读 · 0 评论 -
JAVA常用正则表达式
只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:。"^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3转载 2018-07-14 17:01:13 · 307 阅读 · 1 评论 -
死磕:消息队列理论
消息队列的应用: -:首先知道什么是消息队列:消息队列是分布式系统中常用的(可以说是必用的中间件),主要的作用体现在应用系统的解耦,异步消息,流量削峰。实现高性能,高可用,可伸缩,最终一致性架构。是大型(当然不限于大型)分布式架构必不可少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。二:消息队列的应用...原创 2018-05-31 10:21:50 · 484 阅读 · 10 评论 -
String、StringBuilder与StringBuffer三者
首先理解什么是字符串,字符串其实就是一连串的字符序列。 String类是不可变类,也就是在如果创建了String字符串对象后,包含在这个对象中的字符串序列就不在可以被改变,直到这个对象被销毁。 StringBuffer是字符序列可以变长的字符串,当StringBuffer字符串对象被创建以后,可以根据这个对象的的append()、insert()、reverse()、setChar...原创 2018-07-16 17:17:54 · 133 阅读 · 0 评论 -
IDEA使用问题
为了规范开发,所有可能在网络中传输与存储的javabean类最好都序列化.在IDEA下.iml文件为module模块的配置文件,同理 .idea是Project的配置文件在IDEA下关闭Tomcat时,有时候即使点了两次,Tomcat 容器也不一定能完全停掉,这时候很容易出现端口被占用,这时候你需要打开系统的资源管理器,手动 kill 系统上所有的 Java 进程; ctrl...原创 2018-07-17 15:15:06 · 86 阅读 · 0 评论 -
IDEA使用时不小心开启了离线模式!
是不是你也可能碰到过这个问题,就是你想吧远程仓库里面的相关包下载到本地,但是莫名的报错。当时我以为是公司的maven仓库宕机了,后来发现是我不小心选中了这个 Fiel->Setting->Maven这下面的: 还有就是要注意这个地方 (Maven导航栏下):...原创 2018-07-18 15:54:10 · 7669 阅读 · 3 评论 -
Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错
Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0 原因:Oracle的ojdbc.jar是收费的,所以maven的中央仓库中没有这个资源,只能通过配置本地库才能加载到项目中去。<dependency> <groupId>com.oracle</groupId> <artifactI...原创 2018-07-18 17:22:08 · 705 阅读 · 0 评论 -
IDEA下插件的下载无法正常下载问题
找到settings->system settings->updata下面的Use secure Connetion去掉。原创 2018-07-13 11:15:37 · 1305 阅读 · 0 评论 -
IDEA常用的快捷键。
-----------------------------------------------------------------------------------------今天新发现了一个很n 使用到 Ctrl+Shift+ i 可以查看当前光标所在位置的类的详细信息格式化代码 ctr+alt+L (这个简直了!!!! 良好的代码习惯)大小写转化 ctr+shift+U (f...原创 2018-07-19 16:19:43 · 139 阅读 · 0 评论 -
JavaBean序列化的问题
javabean为什么要实现序列化? 所谓的Serializable,就是java提供的通用数据保存和读取的接口。至于从什么地方读出来和保存到哪里去都被隐藏在函数参数的背后了。这样子,任何类型只要实现了Serializable接口,就可以被保存到文件中,或者作为数据流通过网络发送到别的地方。也可以用管道来传输到系统的其他程序中。这样子极大的简化了类的设计。只要设计一个保存一个读取功能就能...转载 2018-07-14 16:38:52 · 546 阅读 · 0 评论 -
Spring boot事务管理(单体架构下)
一些概念声明式的事务管理是基于AOP的,在springboot中可以通过@Transactional注解的方式获得支持,这种方式的优点是:1)非侵入式,业务逻辑不受事务管理代码的污染。2)方法级别的事务回滚,合理划分方法的粒度可以做到符合各种业务场景的事务管理。本文使用目前最常用的mybatis框架来配置springboot的事务管理机制。下面进入配置方法介绍。 sprin...原创 2018-11-01 10:13:48 · 388 阅读 · 0 评论