摘要: 内省是与反射密切相关的javabean是一种特殊的java类,它的全部或者部分方法的名称是按约定的规则(要么是set打头要么是get打头)确定的,javabean属性的名称是根据set和get方法的名称来确定的,不是根据私有成员变量,并且set方法没有返回值,get方... 阅读全文
posted @ 2016-10-22 11:47 john8169 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 框架都要用到反射技术,反射都要用到一个类Class.java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class.得到字节码的方式有三种:Date.class;new Date().getClass();Class.forName("java... 阅读全文
posted @ 2016-10-12 00:28 john8169 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 可变参数的特点:只能出现在参数列表的最后;...位于变量类型和变量名之间,前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。增强for循环:迭代的集体变量可以是数组或者是实现了Iterable接口的集合类... 阅读全文
posted @ 2016-09-20 22:01 john8169 阅读(111) 评论(0) 推荐(0) 编辑
摘要: *{margin: 0;padding: 0;list-style: none;}body{background: #E7EAEC;font-size: 12px/1.5 tahoma, arial, "Hiragino Sans GB";color: #666;ba... 阅读全文
posted @ 2016-09-06 18:04 john8169 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 本文专门谈谈我们主要讲述一下Unicode编码本身的特性,以便更好地运用正则表达式解决与Unicode相关的问题。 Unicode Code PointUnicode字符多种多样,除去ascii中的字母、数字、标点和中文字符,还包括其它多种语言和多种符号,有些符号甚至... 阅读全文
posted @ 2016-09-05 19:03 john8169 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 深复制与浅复制:浅复制(shallow clone):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。深复制(deep clone): 被复制对象的所有变量都含有... 阅读全文
posted @ 2016-09-05 15:54 john8169 阅读(140) 评论(0) 推荐(0) 编辑
摘要: CAS算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化。比如说一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且two进行了一些操作变成了B,然后two又将V位置的数据变成A,这时候... 阅读全文
posted @ 2016-09-05 12:33 john8169 阅读(4922) 评论(0) 推荐(1) 编辑
摘要: 引言独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。在JDK 5之前Java语言是靠synchronized关键... 阅读全文
posted @ 2016-09-05 11:23 john8169 阅读(185) 评论(0) 推荐(0) 编辑
摘要: Java并发编程:volatile关键字解析 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后... 阅读全文
posted @ 2016-09-03 23:39 john8169 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 最近看了一篇map reduce的文章,个人感觉map reduce就是一个拆跟一个合的过程,这跟前端工程模块化里的拆跟合很相似,前端工程变大了之后,要把任务分解,所以有了模块化的管理工具,最后用工程化的方式再把各个模块合起来。同样map reduce的拆也是为了更好... 阅读全文
posted @ 2016-09-03 22:44 john8169 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 一、起初java提供两种方式来对字符串进行编码和解码,一个是String类,一个是Charset类,用法如下:使用String类时:编码:字符串变成字节数组;String -->byte[]; (String类的方法):str.getBytes(charsetNam... 阅读全文
posted @ 2016-09-03 21:01 john8169 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 1. Stream初体验我们先来看看Java里面是怎么定义Stream的:A sequence of elements supporting sequential and parallel aggregate operations.我们来解读一下上面的那句话:Str... 阅读全文
posted @ 2016-08-28 21:49 john8169 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 今天面试时,突然被面试官问到怎样用shell命令搞定某个文件夹下java代码行数的统计。想了一下,基本思路就是找到这个文件夹下面的所有java文件,然后每个文件统计一下代码,外层套个for循环,叠加一下结果,就拿到想要的结果了。不过显然面试官希望我用一句shell搞定... 阅读全文
posted @ 2016-08-28 21:48 john8169 阅读(436) 评论(0) 推荐(0) 编辑
摘要: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依... 阅读全文
posted @ 2016-08-28 21:47 john8169 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 单例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。 1.懒汉式,线程不安全Singleton的教学版本public class Singleton { private static Single... 阅读全文
posted @ 2016-08-28 21:45 john8169 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 1. 简介lambda表达式可以这样定义(不精确,自己的理解):一段带有输入参数的可执行语句块。//这里省略list的构造List names = ...;Collections.sort(names, (o1, o2) -> o1.compareTo(o2));/... 阅读全文
posted @ 2016-08-21 16:14 john8169 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 1. 使用 @Repository、@Service、@Controller 和 @Component 将类标识为 Bean@Repository 注解自 Spring 2.0 引入,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需... 阅读全文
posted @ 2016-08-17 19:00 john8169 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池可以使得线程可以复用,就是执行完一个... 阅读全文
posted @ 2016-08-14 20:17 john8169 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 1.List 1.1 ArrayList以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组。因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。按数组下标访问元素-get(i)... 阅读全文
posted @ 2016-08-14 19:50 john8169 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1.导致jar包冲突的原因我们在发布应用的时候,有时能正常启动,有时却报NoSuchMehodException、NoSuchFieldException、ClassNotFoundException或者NoSuchMehodError、NoClassDefFoun... 阅读全文
posted @ 2016-08-14 19:47 john8169 阅读(911) 评论(0) 推荐(0) 编辑