- 博客(9)
- 资源 (12)
- 收藏
- 关注
原创 Java基础之枚举
可变参数的特点:只能出现在参数列表的最后;...位于变量类型和变量名之间,前后有无空格都可以;调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。增强for循环:迭代的集体变量可以是数组或者是实现了Iterable接口的集合类,还可以在类型声明前加修饰符如final写书的人在哪里看到的呢,知识的源头在java语言规范里。基本类型的自...
2016-09-20 22:00:36 448
原创 优秀css案例欣赏
*{margin: 0;padding: 0;list-style: none;}body{background: #E7EAEC;font-size: 12px/1.5 tahoma, arial, "Hiragino Sans GB";color: #666;background: #E7EAEC;}a {color: #42A6F5;text-decoration:...
2016-09-06 18:04:29 1739
原创 正则表达式与unicode
本文专门谈谈我们主要讲述一下Unicode编码本身的特性,以便更好地运用正则表达式解决与Unicode相关的问题。 Unicode Code PointUnicode字符多种多样,除去ascii中的字母、数字、标点和中文字符,还包括其它多种语言和多种符号,有些符号甚至很难打出来(比如表示商标注册的?),这时候该如何表示呢?再说远一点,如果我们想用一个字符组匹配所有中文字符,能不能像『[...
2016-09-05 19:02:56 6163
原创 Java对象的深复制与浅复制
深复制与浅复制:浅复制(shallow clone):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。深复制(deep clone): 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那...
2016-09-05 15:53:49 437
转载 ABA问题
CAS算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化。比如说一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且two进行了一些操作变成了B,然后two又将V位置的数据变成A,这时候线程one进行CAS操作发现内存中仍然是A,然后one操作成功。尽管线程one的CAS操作成功,但是不代表这个过程就是没有问题的...
2016-09-05 12:32:35 5092 1
原创 Java CAS原理
引言独占锁:是一种悲观锁,synchronized就是一种独占锁,会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。乐观锁:每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止。在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引...
2016-09-05 11:23:26 833
原创 volatile关键字解析(转摘)
Java并发编程:volatile关键字解析 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理. 1.内存模型的相关概念大家都知道,计算机在执行程序时,每条指令都是在C...
2016-09-03 23:38:53 401
原创 关于map reduce的一点思考
最近看了一篇map reduce的文章,个人感觉map reduce就是一个拆跟一个合的过程,这跟前端工程模块化里的拆跟合很相似,前端工程变大了之后,要把任务分解,所以有了模块化的管理工具,最后用工程化的方式再把各个模块合起来。同样map reduce的拆也是为了更好地合,只不过map reduce是为了解决一个个具体的任务,map是站在分解任务的角度来讲的,任务最初的状态是怎样的,怎样分解最...
2016-09-03 22:43:43 422
原创 Java 编解码与字符集
一、起初java提供两种方式来对字符串进行编码和解码,一个是String类,一个是Charset类,用法如下:使用String类时:编码:字符串变成字节数组;String -->byte[]; (String类的方法):str.getBytes(charsetName);;将该字符串按照指定编码表编码。解码:字节数组变成字符串;byte[] -->String; (...
2016-09-03 21:00:41 2271
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人