自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 2021-01-21

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在 Java 5之后,volatile关键字才得以重获生机。volatile 关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于 volatile 关键字是与Java的内存模型有关的,因此在讲述 volatile 关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了 volatile 关键字的实现原理,最后给出了...

2021-01-21 10:28:45 71

原创 java排列组合 实现全排列,支持有序和无序

输入:[1,2,3,4]输出:        方法一:无序 [[1],[2],[1,2],[3],[1,3],[4],[2,3],[1,4],[1,2,3],[2,4],[1,2,4],[3,4],[1,3,4],[2,3,4],[1,2,3,4]]        方法二:有序 [[1],[2],[3],[1,2],[4],[1,3],[1,4],[2,3],[2,4],[1,2,3],[3,4]...

2018-05-14 18:14:30 3048

转载 线程的五种状态

线程状态:    线程从创建、运行到结束总是处于下面五个状态之一:新建状态、就绪状态、运行状态、阻塞状态及死亡状态。    1.新建状态(New):         当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。 当一个线程处于新生状态时,程序还没有开始运行线程中的代码     2.就绪状态(Runnable)        一个新创建...

2018-04-02 11:54:29 196

转载 深入理解java的注解处理类

 如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement):  Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的...

2018-03-10 16:01:06 1465

原创 电话号码和手机号正则

/**      * 手机号验证      *       * @param  str      * @return 验证通过返回true      */      public static boolean isMobile(String str) {           Pattern p = null;          Matcher m = null;          boolean ...

2018-03-10 09:32:22 743

转载 Java 正则表达式

Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一些正则表达式的实例及描述:正...

2018-03-07 10:16:27 240

原创 java中利用poi技术创建Excel的用法

public ActionResult excelPrint() {       HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个Excel文件       HSSFSheet sheet = workbook.createSheet();// 创建一个Excel的Sheet       sheet.createFreezePane(

2018-02-01 10:05:16 246

转载 mysql联合索引

mysql联合索引命名规则:表名_字段名1、需要加索引的字段,要在where条件中2、数据量少的字段不需要加索引3、如果where条件中是OR关系,加索引不起作用4、符合最左原则https://segmentfault.com/q/1010000003984016/a-1020000003984281联合索引又叫复合索引。对于复合索引:Mys

2018-02-01 09:55:49 146

转载 ThreadPoolExecutor中的参数详解

1. ThreadPoolExecutor数据成员1Privatefinal AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING,0));     ctl主要用于存储线程池的工作状态以及池中正在运行的线程数。显然要在一个整型变量存储两个数据,只能将其一

2018-01-29 19:10:23 39575 3

转载 java中的单例模式

一. 什么是单例模式因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。二. 单例模式的特点1. 单例模式只能有一个实例。2. 单例类必须创建自己的唯一实例。3. 单例类必须向其他对象提供这一实例。三. 单例模式VS静态类在知道了什么是单例模式后,我想你一定会想到静态类,“既然只使用一个对象,

2018-01-29 17:28:11 115

转载 多线程编程的底层原理

简介    在前面的一篇文章里我对java threadpool的几种基本应用方法做了个总结。Java的线程池针对不同应用的场景,主要有固定长度类型、可变长度类型以及定时执行等几种。针对这几种类型的创建,java中有一个专门的Executors类提供了一系列的方法封装了具体的实现。这些功能和用途不一样的线程池主要依赖于ThreadPoolExecutor,ScheduledThreadPo

2018-01-29 16:35:03 2402

转载 一次完整的http请求

一次完整的HTTP请求过程当我们在浏览器的地址栏输入 www.linux178.com ,然后回车,回车这一瞬间到看到页面到底发生了什么呢? 以下过程仅是个人理解: 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(

2018-01-18 17:52:58 242

转载 HTTP 详细:协议简介

一、TCP/IP 协议介绍  在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容。TCP/IP协议是分层的,从底层至应用层分别为:物理层、链路层、网络层、传输层和应用层,如下图所示:     从应用层至物理层,数据是一层层封装,封装的方式一般都是在原有数据的前面加一个数据控制头,数据封装格式如下:   

2018-01-18 17:10:46 232

原创 java中的IO和NIO的区别原理

Java NIO和IO的主要区别IONIO面向Stream面向Buffer阻塞IO非阻塞IO Selectors面向Stream和面向BufferJava NIO和IO之间最大的区别是IO是面向流(Stream)的,NIO是面向块(buffer)的,所以,这意味着什么?面向流

2018-01-16 16:18:07 1785 1

原创 postgresql 建立索引

一、索引的类型:    PostgreSQL提供了多  种索引类型:B-Tree、Hash、GiST和GIN,由于它们使用了不同的算法,因此每种索引类型都有其适合的查询类型,缺省时,CREATE INDEX命令将创建B-Tree索引。        1. B-Tree:    CREATE TABLE test1 (        id integer,       

2017-12-20 11:04:29 75025 2

原创 git的操作(拉代码到本地/commit到本地/pull/push到远程/新建分支/合并分支/)

git的基本使用1,克隆代码到本地:git clone -b master http://账号:密码@gitlab.dev.z**/IHR/i**.git 别名123456789101112132.查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git rem

2017-12-05 13:28:33 5437

原创 Java中动态代理的实现(实现机制)

代理:设计模式代理模式是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个真实对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。   为了方便说明,这里写一个简单的例子来实现动态代理。        Java代码  //抽象角色(动态代理只能代理接口)  public int

2017-12-04 18:50:23 272

转载 ModelMapper

在项目中很多时候需要把Model和DTO两个模型类来回转换,保证Model对外是隐私的,同时类似密码之类的属性也能很好地避免暴露在外了.那么ModelMapper就是为了方便转换而实现的一个类库,下面根据使用场景不断增加案例.1.ModelMapper入口类ModelMapper这个工具的入口类就是ModelMapper,因此转换就需要从这个类入口.简单看下APIaddConverte

2017-11-20 11:01:33 4279

原创 sql分页 Mysql Oracle SqlServer

假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql、Oracle和SQL Server分页查询student表。1、Mysql的分页查询: 1 SELECT2 *3 FROM4 student5 LIMIT (PageNo - 1) * PageSize,PageSize;理解:(Limit n,m)  =>从第n行开

2017-11-16 16:34:46 159

转载 git应用

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

2017-11-13 10:01:00 172

转载 Java 8 中的 Streams API 详解

Java 8 中的 Streams API 详解Streams 的背景,以及 Java 8 中的使用详解为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对

2017-10-31 12:40:52 132

原创 正则表达式语法

1匹配验证-验证Email是否正确1234567891011121314public static void main(String[] args) {    // 要验证的字符串    String s = "service@

2017-10-30 11:54:42 159

原创 SpringMVC如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性

下面是主要的验证注解及说明:注解适用的数据类型说明@AssertFalseBoolean, boolean验证注解的元素值是false@AssertTrueBoolean, boolean验证注解的元素值是true@DecimalMax(value

2017-10-27 17:19:12 147

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来

2017-10-27 14:34:47 156

转载 Java中动态代理的实现

Java中动态代理的实现,关键就是这两个东西:Proxy、InvocationHandler,下面从InvocationHandler接口中的invoke方法入手,简单说明一下Java如何实现动态代理的。         首先,invoke方法的完整形式如下: Java代码  public Object invoke(Object proxy, Method met

2017-10-27 12:00:10 134

原创 cookie和session的的区别以及应用场景有哪些?

作者:知乎用户链接:https://www.zhihu.com/question/31079651/answer/136106134来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。HTTP协议与状态保持:Http是一个无状态协议1. 实现状态保持的方案:1)修改Http协议,使得它支持状态保持(难做到) 2)Cook

2017-10-24 11:16:37 1814

转载 使用IDEA和gradle搭建Spring MVC和MyBatis开发环境

1. 概述Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。Spring MVC属于SpringFrameWork的后续产品,已经融合 在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模

2017-10-18 17:19:14 209

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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