Java
超级代码搬运工
计算机在读硕士,代码搬运工
展开
-
java nio 中关于buffer的详解
capacity是buffer的容量,position是当前读取的数据所在buffer中存放到的下标的`值`, limit是数据存放的位置,也就是说limit之后没有有效的数据,limit大于等于positon,小于等于capacity。原创 2015-11-03 10:54:47 · 562 阅读 · 0 评论 -
Java中gitter、setter方法和public的区别
关于gitXXX和setXXX方法我相信大家肯定都用过,也有很多人会产生一个疑问,那就是为什么不直接把这个变量的访问权限改为public的不是更加方便吗。一开始我一直有这个疑问,下面就来解释一下。原创 2016-03-03 14:57:30 · 833 阅读 · 0 评论 -
Java 正则表达式详解
Java 正则表达式详解 如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的"串",它定义了一个用来搜索匹配字符串的模式。 许多语言,包括Perl、PHP、Python、JavaScript和JS转载 2015-11-15 19:00:24 · 399 阅读 · 0 评论 -
Java线程同步:synchronized锁住的是代码还是对象
在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行。synchronized既可以加在一段代码上,也可以加在方法上。关键是,不要认为给方法或者代码段加上synchronized就万事大吉,看下面一段代码:[java] view plaincopy转载 2015-10-29 09:37:39 · 416 阅读 · 0 评论 -
java的线程同步机制synchronized关键字的理解
由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。需要明确的几个问题: 1)synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果 再细的分类,synchronized可作用于inst原创 2015-10-28 20:59:23 · 501 阅读 · 0 评论 -
Git 恢复误删文件
今天在写代码的时候,用的是AndroidStudio,不小心误删了一个类,我想恢复这类,按说,我没有提交到暂存区,可以直接用git checkout – 文件名恢复,然而 并没有。然后我想直接用git插件的vcs去用远程库的版本覆盖本地版本,然而却出现了这个错误 Can’t update: no tracked branch No tracked branch configured for br原创 2015-10-13 12:02:03 · 3634 阅读 · 0 评论 -
Java形参个数可变的方法
以前,由于我的java细节账务的不够牢固,所以有很多地方没有注意到,例如这个形参个数可变的方法,今天刚好又碰到了,就写一篇博客记录一下。1>从JDK 1.5以后,Java允许定义形参个数可变的参数,从而允许为方法指定数量不确定的形参。定义形参个数可变的方法:2>定义参数个数可变的方法:在方法最后一个形参的类型后面增加三个点(…),则表明该形参可以接受多个参数值,多个参数值被当成数组传入。代码如下:原创 2015-10-11 13:31:56 · 715 阅读 · 0 评论 -
JAVA自定义序列化的神奇方法
大家都知道通过实现Externalizable接口,来自定义序列化,其实也不一定,首先我们来看一下怎么通过Externalizable来实现自定义序列化以及要注意的事情。package com.liran.main.Stream;import java.io.Externalizable;import java.io.FileInputStream;import java.io.FileOut原创 2015-11-04 16:23:44 · 1856 阅读 · 2 评论 -
关于Android的gradle的中文编译错误解决办法
正常情况下,在java项目代码中出现中文的时候都会出现这个错误或者是编译通过,但是运行的时候中文乱码。这个时候只需要在build.gradle中添加下面一句话就可以解决tasks.withType(JavaCompile) { options.encoding = 'UTF-8'}例如下面这段代码package com.lira原创 2015-10-19 09:14:33 · 1921 阅读 · 0 评论 -
外观模式
使用场景在开发过程中,我们经常需要对一个应用分成不同的层次,例如经典的三层架构,就需要考虑数据访问层和逻辑处理层,逻辑处理层和表示层的层与层之间建立外观Facade,这样可以给复杂的子系统提供一个方便操作的简单的接口,使得耦合程度大大降低。其次在开发过程中,子系统往往因为过多的重构而变得越来越复杂,大多数的模式使用时也会产生很多很小的类,这本是好事,但是却增加了外部调用的复杂度,这是增加一个Fa原创 2016-02-18 12:44:20 · 368 阅读 · 0 评论