Java学习
liuconen
这个作者很懒,什么都没留下…
展开
-
对Java线程同步的认识
synchronized关键字实际上synchronized锁住的是对象,而不是代码。对于非static的synchronized方法,锁的对象是this。但一般来说可分为synchronized方法和synchronized代码块。synchronized方法由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于原创 2017-04-04 12:24:03 · 256 阅读 · 0 评论 -
Java异常捕获相关
异常的产生 异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就将中断执行。 我们要做的是即使程序出现了异常,也要让程序在可控范围内正确的执行完毕。Java异常类继承结构 Java所有的异常类型最高的继承类是Throwable,Throwable下有两个子类: 1. Error:指的是JVM错误,这个时候的程序并没有执行,无法处理; 2. E原创 2017-03-17 13:03:19 · 253 阅读 · 0 评论 -
关于在外部对内部类进行实例化和引用
有些时候在写一些小的项目或者demo时,为了方便或者逻辑上归类往往定义一些内部类,比如一些小型的model,各种Adapter、BroadcastReceiver等等。例如:class A{ static class B{ public void put(){ System.out.println("abc"); }原创 2016-10-06 16:47:57 · 12771 阅读 · 3 评论 -
Jsoup解析时ClassName中存在空格的问题
使用Jsoup解析html节点时,如果class名中含有空格将返回null。有两种方法可以解决: 假设className为:list list-text使用select Elements elements = doc.select(".list").select(".list-text"); 直接根据属性名、属性值获取 Elements elements = doc.getE原创 2017-04-29 22:28:19 · 1525 阅读 · 0 评论 -
Java不定长参数
我们使用重载方法的方式解决了对不同的参数类型、参数个数进行同样的计算。但有时会遇到类型相同,但参数数量不定的情况,如果此时依然使用方法重载将会使得代码异常臃肿甚至无法实现。这时你可能会想到使用数组,但Java提供了不定长参数的机制使得在语法和写法上更为优雅。示例:public class Test{ public static void main(String[] args) {原创 2017-04-21 15:11:12 · 549 阅读 · 0 评论 -
对双大括号初始化的理解
偶然见到一种实例化方式,感到十分新奇: //新建一个列表并赋初值A、B、C ArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }};还有其他比如HashMap的初始化: Map map = new HashMap原创 2017-03-14 22:36:22 · 3861 阅读 · 8 评论 -
Java对GIF的简单删帧操作
问题简介最近在一些网站爬了一些搞笑动态图片,没想到保存好之后预览竟然是是这样:用图片浏览器逐帧看了一下,原来每一张图片第一帧都是类似空白的画面,所以预览的缩略图也是第一张画面。那么如果如果能用代码读取到GIF的每一帧,删除后在合并为一个新GIF那问题就解决了。于是找了下Java 操作GIF图片的类库,最后在GitHub上找到了这个:animated-gif-lib-for-原创 2017-08-06 21:47:41 · 1971 阅读 · 0 评论