自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 PowerMock

2018-11-20 09:56:46 190

转载 【转】CommonLang3中的StringUtils最全解析

public static boolean isEmpty(CharSequence cs)常用函数之一,判断字符串是否为""或者null StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true St...

2018-04-12 10:14:40 740 3

转载 redis缓存在项目中的使用

原文:[原文地址](https://www.cnblogs.com/fengli9998/p/6755591.html)关于redis为什么能作为缓存这个问题我们就不说了,直接来说一下redis缓存到底如何在项目中使用吧:1.redis缓存如何在项目中配置?   1.1redis缓存单机版和集群版配置?(redis的客户端jedis常用)?1234567891011...

2018-04-01 23:28:54 3371

转载 使用Lombok来精简你的项目代码

什么是Lombok一言以蔽之:lombok是一种工具,提供了简单的注解来简化我们的重复冗长Java代码。比如一个Java Bean,注解了lombok的@Data:@Datapublic class NormalBean { private String name;}等价于以下代码,Getter/Setter,toString,equals和h...

2018-03-07 17:07:46 218

转载 什么是Java OOM?如何分析及解决oom问题?

最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要继续学习。1)什么是OOM? OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明: Thrown ...

2018-03-07 15:27:16 611

转载 Linux目录结构详细介绍

目录1、树状目录结构图2、/目录3、/etc/目录4、/usr/目录5、/var/目录6、/proc/目录7、/dev/目录1、树状目录结构图2、/目录目录描述/第一层次结构的根、整个文件系统层次结构的根目录。/bin/需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如:cat、ls、cp,和/usr/bin类似。/boot/引导程序文件,例如:kern

2017-12-20 14:29:24 253

原创 Java8之新时间日期API

一、使用LocalDate、LocalTime、LocalDateTimeLocalDate、LocalTime、LocalDateTime类的实例是不可变的对象,分别表示使用ISO-8601日历系统的日期、时间、日期和时间。他们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。​注:ISO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表达法

2017-12-18 15:51:41 228

原创 Java8之Optional类(避免空指针异常)

Optional类(java.util.Optional)是一个容器类,代表一个值存在或不存在,原来用null表示一个值不存在,现在Optional可以更好的表达这个概念。并且可以避免空指针异常。常用方法:Optional.of(T t) : 创建一个Optional 实例Optional.empty() : 创建一个空的Optional 实例Optional.ofNull

2017-12-18 13:24:39 926

原创 Java8之Lambda表达式

前言:为什么使用lambda表达式Lambda是一个匿名函数,我们可以把Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。一、Lambda表达式语法Lambda表达式在Java语言中引入了一个新的语法元素和操作符。这个操作符为“->”,该操作符被称为Lambda

2017-12-17 16:23:45 185

原创 Java8之强大的Stream API

前言:了解StreamStream 是Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用SQL 执行的数据库查询。也可以使用Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。流(Stream)到底是什么呢

2017-12-17 16:11:20 323

原创 freemarker 数字输出中的逗号问题,${temp}为空问题,时间问题(Java中Date)

数字输出中的逗号问题Long i=100000000l; Map model=new Map(); model.put("t",i); 在freemarker中显示为100,000,000 想按原样输出时${t} 显示为100,000,000 ${t?c} 显示为100000000 如果不加?c 默认情况下freemarker会将数字用逗号分隔 如何去掉","逗

2017-12-12 20:26:12 252

原创 IntelliJ IDEA编辑区主题修改

对于编辑区的主题,也有人制作成模板在网络上提供下载。这里主要介绍两个站点:http://color-themes.com/?view=index,主要提供 jar 文件下载。http://www.phpstorm-themes.com/,主要提供 xml 和 icl 文件下载。对应文件如何安装请查看网站对应的 Help 页面,都有详细说明的。

2017-12-07 14:22:34 1012

原创 MySQL之TIMESTAMP

TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如:1.在创建新记录和修改现有记录的时候都对这个数据列刷新:?1TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP2.在创建新记录的时候把这个字段设置为当前时间,

2017-12-02 13:49:19 161

原创 decimal

首先,对于精度比较高的东西,比如money,我会用decimal类型,不会考虑float,double,因为他们容易产生误差,numeric和decimal同义,numeric将自动转成decimal。DECIMAL从MySQL 5.1引入,列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下:·M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版

2017-12-01 20:08:40 757

原创 Log4j和Log4j2的区别(SpringBoot中配置使用)

官方文档:http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html前言:日志的级别:默认的几个级别:trace说明:   1.级别之间是包含关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出。   2.trace:追踪,就是程序推进一下,你就

2017-11-28 15:48:50 2817

转载 springboot 使用c3p0数据库连接池的方法

使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了。所以使用c3p0连接池吧。  引入的maven依赖:<dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version><

2017-11-28 12:26:46 4856 3

转载 理解RESTful架构

http://www.ruanyifeng.com/blog/2011/09/restful越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种”互联网软件”采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网

2017-11-27 13:17:32 137

转载 说说Java的Comparable 与 Comparator

转自公众号 IT哈哈Comparable和Comparator是Java核心API提供的两个接口。从它们的名字就可以看出,他们用于比较对象的大小。接下来的两个例子来回答这个问题。这个简单的例子就是比较两种HaHa的尺寸。当阅读完下面的代码,你就知道如何使用Comparable和Comparator。1、Comparable一个类实现Comparable接口,是为了可以让其自

2017-11-21 22:57:07 175

转载 Git使用详细教程

一:Git是什么?  Git是目前世界上最先进的分布式版本控制系统。  二:SVN与Git的最主要的区别?  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速

2017-11-21 18:04:46 202

转载 单链表中k个结点一组进行反转

【025-Reverse Nodes in k-Group(单链表中k个结点一组进行反转)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.   If the number of

2017-10-25 21:02:11 929

原创 Spring框架之基础入门讲解

目录:IOC           AOP           JDBC          事务管理一、IOC1.IOC(Inversion Of Control):反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源。应用IOC后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这

2017-10-23 19:11:47 208

原创 Java多线程面试题及回答

1.现在有T1,T2,T3三个线程,你怎么样保证T2在T1执行完后执行,T3在T2执行完后执行。这个考察的知识点是对join的使用实际上先启动三个线程中哪一个都行,因为在每个线程的run方法中用join方法限定了三个线程的执行顺序。即便是第二个线程先启动执行了,由于t1.join()方法,使得线程2需要等待线程1运行结束后才能继续运行。所以三个线程的启动顺序无关紧要!!

2017-10-22 19:14:08 219

转载 Java正则表达式的语法与示例

Java正则表达式的语法与示例正则表达式是什么?用我的理解就是一个表达式。用来匹配,替换,判断字符串,之前业务就出现过判断返回值是否为邮箱。以下内容来自于http://baike.xsoftlab.net/view/207.html#3更多干货等你来拿 http://www.itit123.cn/java正则表达式正则表达式语法java正则表达式语法java正则表达式概要:Java正则表

2017-10-21 18:22:42 154

原创 二进制中有多少个1

计算一个十进制数转为二进制后有多少个1(或者0)样例:给定32(100000)返回1给定5(101)返回2分析方法一:普通法public int countOnes1(int num){ int count = 0; while(num!=0){ if(num%2==1) cou

2017-10-21 15:28:45 278

转载 关于HTTP协议

HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1

2017-10-21 09:44:43 194

原创 解析HTTP协议六种请求方法

1.GET2.HEAD3.PUT4.DELETE5.POST6.OPTIONS大部分情况下只用到了GET和POST。如果想设计一个符合RESTful规范的web应用程序,则这六种方法都会用的到。1.GET:GET可以说是最常见的,它本质就是发送一个请求来获取服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等等)返回给客户端。GET请

2017-10-21 09:11:56 2680

原创 输出单层结点

对于一棵二叉树,请设计一个算法,创建含有某一深度上所有结点的链表。给定二叉树的根结点指针TreeNode* root,以及链表上结点的深度,请返回一个链表ListNode,代表该深度上所有结点的值,请按树上从左往右的顺序链接,保证深度不超过树的高度,树上结点的值为非负整数且不超过100000。:使用层序遍历,每遍历一层,dep--;当dep==1时,就遍历到了dep层,就可以停止遍历了。

2017-10-20 19:49:17 157

转载 图解25匹马的选马问题

题目一:对于25匹马,有一个赛场,赛场有5个跑道,不使用计时器(也就是每次比赛仅仅得到本次的比赛的顺序)。试问最少比多少场才干选出最快的三匹马? 思路: 0)前5场:这个题相对照较简单,25匹马至少要所有參加比赛,所以把25匹马分成5组进行比赛。这样我们就能够得到比赛结果例如以下:1)选总体第1名:如今我们要选总体第一名,可能成为总体第1名的马匹为:{A1、B2、B3、B4、B5},那么第6场

2017-10-19 22:28:41 223

原创 sql内连接,等值连接,左连接和右连接的使用技巧(inner join and left join and right join)

以下给出一个例子表a表bSELECT * FROM a LEFT JOIN b ON aid=bid首先取出a表中所有数据,然后再加上与aid,bid相同匹配的数据,包含a表不符合的条件同样的right join 包含b表不符合的条件那么,内连接呢?SELECT * FROM a INNER JOIN b ON aid=bid

2017-10-19 09:47:16 951

转载 求两个字符串的编辑距离

原文很多程序都需要利用到字符串的比较,而字符串的编辑距离在字符串相似性比较中,应用广泛。下面分享字符串编辑距离的求解。概念  字符串的编辑距离,又称为Levenshtein距离,由俄罗斯的数学家Vladimir Levenshtein在1965年提出。是指利用字符操作,把字符串A转换成字符串B所需要的最少操作数。其中,字符操作包括:删除一个字符插入一个字符修改一

2017-10-19 09:10:30 728

原创 二分查找

题目描述对于一个有序数组,我们通常采用二分查找的方式来定位某一元素,请编写二分查找的算法,在数组中查找指定元素。给定一个整数数组A及它的大小n,同时给定要查找的元素val,请返回它在数组中的位置(从0开始),若不存在该元素,返回-1。若该元素出现多次,请返回第一次出现的位置。测试样例:[1,3,5,7,9],5,3返回:1:1.题目没给出数组

2017-10-18 15:37:37 161

转载 JSON标准格式

标准的JSON的合法符号:{  (左大括号) }(右大括号)""  (双引号):(冒号),   (逗号)[   (左中括号)]   (右中括号)JSON字符串:特殊字符可在字符前面加\或使用\u加四位16进制数来处理{"name":"jobs"}JSON布尔:必须小写的true和false{"bool":true}JSON空:必须小写的n

2017-10-18 11:08:08 27047

原创 泛型代码与JVM

1.创建泛型对象的时候,一定要指出类型变量T的具体类型。争取让编译器检查出错误,而不是留给JVM运行的时候抛出类不匹配的异常。2.JVM如何理解泛型概念---类型擦除。事实上,JVM并不知道泛型,所有的泛型在编译阶段都已经被处理成了普通类和方法。处理方法很简单,我们称为类型变量T的擦除(erased)。总结(1)虚拟机中没有泛型,只有普通类与方法。(2)在编译阶段,所有泛型类的

2017-10-17 21:07:18 410

转载 OSI七层模型详解

OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。完成中继功能的节点通常称为中继系统。在OSI七层模型中,处于不同层的中继系统具有不同的名称。   一个设备工作在哪一层,关键看它工作时利用哪一层的数据头部信息。网桥工作时,是以MAC头部来决定转发端口的,因此显然它是数据链路层的设备。

2017-10-17 19:20:56 276

转载 关于死锁的四个条件以及如何解决死锁的记录

一、什么是死锁?我们先看看这样一个生活中的例子:在一条河上有一座桥,桥面较窄,只能容纳一辆汽车通过,无法让两辆汽车并行。如果有两辆汽车A和B分别由桥的两端驶上该桥,则对于A车来说,它走过桥面左面的一段路(即占有了桥的一部分资源),要想过桥还须等待B车让出右边的桥面,此时A车不能前进;对于B车来说,它走过桥面右边的一段路(即占有了桥的一部分资源),要想过桥还须等待A车让出左边的桥面,此时B车也不

2017-10-15 19:38:24 404

原创 数据库多表查询之 where & INNER JOIN

在多表查询中,一些SQL开发人员更喜欢使用WHERE来做join,比如:SELECT a.ID, b.Name, b.Date FROM Customers a, Sales b WHERE a.ID = b.ID;1缺点:在上面语句中,实际上是创建了两张表的笛卡尔积,所有可能的组合都会被创建出来。在笛卡尔连接中,在上面的例子中,如果有1000顾客和1000条销售记录,这个查询会先产生1000000

2017-10-15 11:46:07 204

原创 数据库面试常问的一些基本概念

1、超键、候选键、主键、外键超键:在关系中能唯一标识元祖的属性集称为关系模式的超键。一个属性可以作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键候选键:是最小超键,即没有冗余的超键主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(null)外键:在一个表中存在的另一个表的主键称

2017-10-15 10:41:17 193

转载 在一个千万级的数据库查询中,如何提高查询效率?

在一个千万级的数据库查寻中,如何提高查询效率?1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 b. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认

2017-10-15 10:14:18 231

转载 HashMap的工作原理

先来些简单的问题“你用过HashMap吗?”  “什么是HashMap?”   “你为什么用到它?”几乎每个人都会回答“是的”,然后回答HashMap的一些特性,譬如HashMap可以接受null键和值,而HashTable则不能,HashMap是非synchronized,HashMap很快;以及HashMap存储的是键值对等等。这显示出你已经用过HashMap,而且对它相当的熟悉。但是

2017-10-14 19:07:44 155

原创 DATEADD()函数

DATEADD()函数在日期中添加或减去指定的时间间隔语法DATEADD(datepart,number,date)-datapart参数的取值范围是{yy/yyyy,qq/q,mm/m,dy/y,dd/d,wk/ww,dw/w,hh,mi/n,ss/s,ms,mcs,ns}-number 是您希望添加的间隔数-date 参数是合法的日期表达式举例:

2017-10-14 10:04:08 6790

提示
确定要删除当前文章?
取消 删除