- 博客(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关注的人