随笔分类 -  java

摘要:[TOC] 都说ArrayList在用foreach循环的时候,不能add元素,也不能remove元素,可能会抛异常,那我们就来分析一下它具体的实现。我目前的环境是Java8。 有下面一段代码: 代码很简单,一个ArrayList添加3个元素,foreach循环一下,啥都不干。那么foreach到底 阅读全文
posted @ 2018-09-08 22:21 苍枫露雨 阅读(16745) 评论(3) 推荐(2)
摘要:[TOC] 初始化 ThreadPoolExecutor重载了多个构造方法,不过最终都是调用的同一个: java public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit 阅读全文
posted @ 2018-09-06 18:21 苍枫露雨 阅读(1201) 评论(0) 推荐(0)
摘要:[TOC] ThreadLcoal源码浅析 我们知道ThreadLocal用于维护多个线程 线程独立 的变量副本,这些变量只在 线程内共享 ,可跨方法、类等,如下是一个维护多个线程Integer变量的ThreadLocal: 每个使用 的线程,可以通过形如 的方式创建了一个独立使用的 变量副本,那么 阅读全文
posted @ 2018-08-29 22:11 苍枫露雨 阅读(845) 评论(0) 推荐(4)
摘要:基于版本4.5.x 简介 组件 HttpClient,核心组件 HC Fluent,提供了流式操作接口 HttpMime,提供文件上传时用到的一些工具类 HttpClient Cache,有待学习 HttpClient OSGi,有待学习 特性 基于标准、纯净的Java语言。实现了Http1.0和H 阅读全文
posted @ 2017-09-01 20:08 苍枫露雨 阅读(3017) 评论(0) 推荐(0)
摘要:Logback日志配置示例 其中SYSLOG的suffixPattern, , 和EMAIL的layout pattern, ,就是配置日志的格式。 Pattern关键字 | "Conversion Word" | Effect | | | | | c { length } lo { length 阅读全文
posted @ 2017-04-28 14:45 苍枫露雨 阅读(42130) 评论(2) 推荐(3)
摘要:本文主要介绍了UTF8的一些基本概念,简要介绍了mysql中 utf8 utf8mb3 utf8mb4 的区别;然后为介绍Java对Unicode编码的支持,引入了一些编码的基本概念,包括code point, code unit等,并介绍了Java提供的常用的支持Unicode编码的方法;最后给出了过滤UTF8mb4的方案 阅读全文
posted @ 2017-03-26 18:47 苍枫露雨 阅读(21524) 评论(3) 推荐(6)
摘要:首先明白csv文件长啥样儿:用excel打开就变成表格了,看不到细节推荐用其它简单粗暴一点儿的编辑器,比如Notepad++,csv文件内容如下:csv文件默认用逗号分隔各列。有了基础的了解就进入主题,用Opencsv读写csv文件读:CSVReader写:CSVWriter下面分别来看一下open... 阅读全文
posted @ 2016-01-10 21:37 苍枫露雨 阅读(23953) 评论(1) 推荐(0)
摘要:DecimalFormat可以用来格式化数字,例如用来设定保留多少位小数、设定数字分隔符等。说方法之前,先介绍一下其常用的几个模式占位符:0 一个数字# 一个数字,不包括 0. 小数的分隔符的占位符, 分组分隔符的占位符这里用一个简单的例子来说明其使用方法: public st... 阅读全文
posted @ 2015-07-11 15:59 苍枫露雨 阅读(1105) 评论(0) 推荐(0)
摘要:这里介绍两种java提供的数组拷贝方法:(1)Arrays提供的copyOf(T src, T desLength)和copyOfRange(T src, int from, int to)(2)System.arraycopy(T src, int from, T des, int from, i... 阅读全文
posted @ 2014-07-09 19:40 苍枫露雨 阅读(646) 评论(0) 推荐(0)
摘要:下面的一个DBase基类提供了一些jdbc的基本操作,配置文件的配置部分并不准确,只是在自己机器上的mysql中测试过。。数据库的增删改方法中都在开始调用了getConnection方法,末尾调用了Close方法;数据库的查询中没有调用close方法,因为一旦调用了close方法,就无法用Recod... 阅读全文
posted @ 2014-07-08 20:36 苍枫露雨 阅读(467) 评论(0) 推荐(0)
摘要:由浅入深,首先,我们来看一下,一个类初始化有关的都有些啥米: 静态成员变量、静态代码块、普通成员变量、普通代码块、构造器。(成员方法?貌似跟初始化没有啥关系)现在我们来看看她们的初始化顺序, 从性质上来说,静态的代表的是一个类的属性,普通的是一个对象的属性,“皮之不存,毛将焉附”,没有类,就没法谈对象,所以静态的必须先初始化。那么静态成员变量与静态代码块之间又是什么关系呢? 做了个实验,发现静态成员变量与静态代码块谁放前面谁先执行,但是!!!!注意!!!!这里说的是“执行”是指的把sx=10,这个10赋给sx,而不是sx的初始化,在实验2里在代码块中打断点,可以发现这个时候sx已经被初始... 阅读全文
posted @ 2014-03-19 20:41 苍枫露雨 阅读(460) 评论(0) 推荐(1)
摘要:我在学习synchronized的时候,十分好奇当一个线程进入了一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 然后就做了个实验(实验代码最后贴出),最后得到了如下结论。 现在分两种情况来讨论:1.当前线程调用的是synchronized普通方法(相对于stati 阅读全文
posted @ 2014-03-12 10:29 苍枫露雨 阅读(1201) 评论(0) 推荐(0)
摘要:sleep()是Thread的方法,wait()是Object的方法如果线程进入了同步锁,sleep不会释放对象锁,wait会释放对象锁sleep的作用就是让正在执行的线程主动让出CPU,给其它线程获得CPU的机会,在sleep指定的时间之后,CPU才会回到这个线程上继续往下执行,当线程进入了同步锁时,当别的线程也需要被加锁的资源时,sleep方法即使让出了CPU,别的线程也无法执行,因为无法获得锁。wait方法是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁给别的线程用,只有等其他线程调用了notify或notifyAll方法后,才能去获得同步锁继续执行,需要注意的是,notify并 阅读全文
posted @ 2014-03-11 00:07 苍枫露雨 阅读(780) 评论(0) 推荐(0)