
java
文章平均质量分 68
低调小一
Ubuntu重度患者,曾经的服务器开发工程师,如今正在深入学习到Android Framework
展开
-
解决java.util.concurrent.RejectedExecutionException
前言昨晚12:00运行自动化测试脚本时遇到了java.util.concurrent.RejectedExecutionException这个异常,从异常名称里很容易分析出是提交的任务被线程池拒绝了。查看源码发现是在Activity里,AsyncTask是在自定义的线程池的运行的,但是onDestory函数里确是先显示调用了线程池的shutdown方法,然后才是AsyncTask的cancel原创 2014-08-29 15:48:02 · 195844 阅读 · 8 评论 -
Java final关键字
final含义final是Java中的一个保留关键字,可以声明成员变量、方法和类。一旦你将引用声明为final类型,你将不能再改变这个引用了。编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。final变量凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫做final变量。下面是final修饰变量的例子:final int constVa原创 2015-04-09 19:13:18 · 3959 阅读 · 0 评论 -
Java实现Android客户端版本号比较
目录目录前言关键点Java代码实现前言早上看了一下优快云博客排名,本周最高排名的文章是:Java实现比较版本号。个人认为这篇文章写的不错,因为Android客户端系统中经常用到版本号比较功能,特别是在应用自升级的情况下。 原博主之所以写这篇文章,是因为考虑到大部分Java程序员可能会采用compareTo这种不靠谱的API调用或者不规则的版本号名称。 而我写这篇文章,是由于对ACM题目的原创 2015-03-04 15:30:13 · 6734 阅读 · 0 评论 -
Java类静态属性、静态块、非静态属性、非静态块、构造函数在初始化时的执行顺序
前言 今天在看Android ContentProvider实现的时候,突然想到了Java类在new的过程中,静态域、静态块、非静态域、非静态块、构造函数的执行顺序问题。其实这是一个很经典的问题,非常考察对Java基础知识的掌握程度。很多面试过程中相信也有这样的问题,趁着周末有时间复习一下。结论 这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论。在Ja原创 2014-12-15 00:07:49 · 3920 阅读 · 0 评论 -
Java正则表达式
前言看到了一篇非常不错的文章,忍不住转载学习一下,原文地址:Java正则表达式教程引言什么是正则表达式?正则表达式(regular expressions)是一种描述字符串集的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于搜索、编辑或者是操作文本和数据。它超出了java程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则转载 2013-12-20 20:46:44 · 1891 阅读 · 1 评论 -
Comparator和Comparable的区别使用
前言首先,要声明原文出处,原文链接:Comparator和Comparable的区别使用其次,我说一下为什么要写或者转载这篇文章。今天在看《尚学堂马士兵java教程》容器一章中,讲到对容器进行排序,是排序类通过实现Comparable的compareTo方法,然后调用Collections.sort方法。但是,我同时又在看《java核心技术》基础篇,万万没想到,书上的示例是实现了C转载 2013-11-27 00:55:21 · 1993 阅读 · 0 评论 -
Ubuntu12.04下Eclipse连接小米2s调试
前言初入职场第一周就让我感受到了学校和社会的差距,学校里有水平差不多一起努力的小伙伴,社会上基本上都是各路大神,而且依旧很努力。之前以为自己很用功,可能到了社会上发现这只是维持生存的平均水平,没准还可能靠下一些。其实,我心里还是庆幸的,起码我是刚入社会就进行了方向上的转变,也算是进入了一个现在更热门的领域,身边有各种大神,只能多努力多学习,小伙伴说过一句话“坚持就是胜利”,我准备继续坚持下去原创 2014-02-23 12:11:58 · 2785 阅读 · 0 评论 -
Java并发协作——Wait-Notify机制
前言周末在肯德基手写《编程之美》上的“多线程高校下”原创 2014-11-04 16:25:43 · 2264 阅读 · 0 评论 -
Java异常处理(try、catch、finally使用)
前言今天在看《重构:改善既有代码的设计》文章,转载 2014-08-22 22:31:18 · 3589 阅读 · 0 评论 -
Java反射获取Android系统属性值
目录目录反射定义为何需要反射反射方法MethodgetDeclaredMethod方法getMethod方法参数解释invoke方法Android 反射应用反射定义“反射”(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为。为何需要反射反射带来的好处包括:在运行时检测对象的类型。动态构造某个类的对象。检测类的属性和方法。任意调用对象的方法。修改构造函原创 2015-04-29 16:20:59 · 6826 阅读 · 0 评论 -
java实现根据前序遍历构建二叉树(前序遍历、中序遍历、后序遍历)
前言java关于ACM的代码真的好少,想参考如何用java实现二叉树google了一上午都没找到资料,只能自己仿照之前写的c代码,实现一遍,供大家吐槽参考题目根据二叉树前序遍历序列例如:7,-7,8,#,#,-3,6,#,9,#,#,#,-5,#,#,构建二叉树,并且用前序、中序、后序进行遍历代码import java.util.Scanner;public原创 2013-11-25 13:38:12 · 4621 阅读 · 5 评论 -
Java数组备忘录
前言最近用Java做ACM题目的时候,经常忘记数组如何实现静态初始化,所以这里记录一下Java数组使用的常识。Java数组常识数组在Java中是一个对象,数组实例需要通过new操作符进行创建。常识知识:数组大小可以通过Array.length获取。数组索引起始为0,负数索引在Java中是无效的。并且,和C语言数组不同,Java中的数组会进行越界判断,无效的索引会抛出ArrayIndexOutOf原创 2015-06-28 11:53:40 · 4103 阅读 · 1 评论 -
Java(Android)设计模式-单例模式
完善的单例模式简介,介绍了单例模式的5种实现,最全的单例模式分析.原创 2014-03-18 16:03:44 · 1319 阅读 · 1 评论 -
Java并发协作——生产者、消费者模型
概述对于多线程程序来说,生产者和消费者模型是非常经典的模型。更加准确的说,应该叫“生产者-消费者-仓库模型”。离开了仓库,生产者、消费者就缺少了共用的存储空间,也就不存在并非协作的问题了。示例定义一个场景。一个仓库只允许存放10件商品,生产者每次可以向其中放入一个商品,消费者可以每次从其中取出一个商品。同时,需要注意以下4点:1. 同一时间内只能有一个生产者生产,生产原创 2014-11-04 18:06:16 · 1475 阅读 · 0 评论 -
关于ConcurrentModificationException的个人观点
为什么要研究这个异常起因是最近再刷一本《App研发录》的书,其中作者针对这个异常说了一句话”但凡有点编程常识的程序员都应该知道在遍历一个集合时不能删除该集合中的元素”,而我对这句话很不赞同.作为一个有点编程常识的程序员,我觉得在遍历集合时是肯定可以删除元素的,只是删除的方式需要考究.接下来,就针对这个异常进行深入分析,看一下到底应该用神马样子的姿势在集合中删除元素.需要申明一点: 我看书从来都是带着原创 2016-05-16 12:53:22 · 2305 阅读 · 0 评论 -
Java HashMap的工作原理和实现
目录目录概述定义构造函数数据结构存储实现putkey value读取实现getkeyJAVA实现HashMap面试常考问题什么时候会使用HashMap他有什么特点HashMap的工作原理equals和hashCode都有什么作用如果HashMap的大小超过了负载因子load factor定义的容量怎么办 HashMap和HashTable的区别概述HashMap的基本操作如下原创 2016-02-29 18:05:46 · 3439 阅读 · 0 评论 -
Java并发之串行线程池
目录目录前言思路示例代码前言2016新年和两个小伙伴聊天的时候,提到了多线程排队的问题。也就是说,当服务器一个应用需要同时处理大量线程时,最好有个排队的机制,防止出现大并发失败的情况。研究生阶段我也是服务器开发,所以对这块也很感兴趣。同时,做Android的这两年时间,通过研究Android源码,也会Java并发处理多线程有了自己的一些理解。那么问题来了,如何实现一个串行的线程池呢?思路何为串原创 2016-01-05 11:22:10 · 6901 阅读 · 6 评论 -
《算法4》——补全左括号的问题
题目在完成《算法》课后题目的过程中,遇到一道题目内容如下:编写一道程序,从标准输入得到一个缺少左括号的表达式并打印出补全括号之后的中序表达式。例如,给定输入:1 + 2 ) * 3 - 4 ) * 5 - 6 ) ) )你的程序应该输出:((1 + 2) * ((3 - 4) * (5 - 6)))思路开始感觉这个题目就有点类似求四则表达式的题目,也就是所谓的双栈法。 双栈法的原理如下:1.原创 2016-01-17 17:28:57 · 6051 阅读 · 6 评论 -
Java abstract class vs interface
前言abstract class和interface都是java用来描述抽象体的,不知道是否有同学跟我一样对这两者的语法层面的区别以及如何选择这两者还存在着疑惑,反正接下来,让我详细介绍一下abstract class和interface。理解抽象类在面向对象的概念中,所有的对象都是通过类来描述的。但是反过来却不是这样,并不是所有的类都是用来描述对象的。因为这个类中可能没有足够的信息来描述一个具体的原创 2015-07-08 20:12:47 · 4020 阅读 · 0 评论 -
Java内部类学习总结
目录目录概述非静态内部类从外部类的非静态方法中实例化内部类从外部类的静态方法中实例化内部类内部类的this引用静态内部类从外部类的非静态方法中实例化静态内部类从外部类静态方法中实例化静态内部类匿名内部类方法内部类概述最近学习python,发现python是支持多继承的,这让我想起Java是通过内部类实现的这套机制。这篇文章不是讲如何通过内部类实现多继承,而是总结一下内部类的类型和原创 2015-06-09 20:53:36 · 4547 阅读 · 0 评论 -
正确理解ThreadLocal
前言学习ThreadLocal机制,也是因为在分转载 2014-08-03 00:43:11 · 2212 阅读 · 0 评论 -
[LeetCode]Restore IP Addresses, 解题报告
前言好久没有写关于ACM的博客了,确实是最近太忙,也怪我之前涉猎太少,i原创 2014-04-07 23:26:56 · 3198 阅读 · 0 评论 -
java设计模式——工厂模式
前言最近重新学习设计模式,参考的链接是:ImportNew,每天记录一个设计模式关于工厂模式工厂模式是根据不同的参数创建对象。例如用工厂创建人。如果我想要一个男孩,工厂就会为我们生产一个男孩。如果我想要一个女孩,工厂就会为我们生产一个女孩。工厂会根据不同的参数,为我们提供不同的物品工厂模式类图工厂模式java代码转载 2013-11-13 21:58:11 · 1197 阅读 · 1 评论 -
Java设计模式——策略模式
前言今天学习java集合的时候用到了Comparator接口,查资料说用Comparator是策略模式,所以只能先学习一下策略模式,参考书籍《设计模式》(ps:《head first系列》没在实验室)意图定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。本模式可以使算法独立于使用它的客户而变化适用性当存在以下情况时使用Strategy模式:原创 2013-11-26 22:00:13 · 1752 阅读 · 0 评论 -
Java核心-内存分配原理详解
前言无意中看到的一篇不错的文章,转载记录一下,Java核心-内存分配原理详解概述栈、堆、常量池虽同属java内存分配时操作的区域,但其适应范围和功用却大不相同。java内存分配与管理是java的核心技术之一,一般java在内存分配时会涉及到以下区域:寄存器:程序中无法控制(补充:c里是是可以通过register关键字将数据分配在寄存器上的)栈:存放基本类型的数据和对转载 2013-11-22 17:54:59 · 4452 阅读 · 0 评论 -
java实现各种基础排序(冒泡排序、快速排序、直接选择排序、堆排序、直接插入排序、归并排序)
前言经过两个月的各种笔试面试,对各种基础排序算法原理了然于胸,用c闭着眼都能写出完美ac的代码来,今天刚看完java的数组,忍不住用java将各种排序实现一遍注意,这篇文章只是为了锻炼java语法,不会深入讲各种排序原理,有兴趣的同学可以看我之前的博客,各自排序我都用c讲的非常清楚了冒泡排序public static void bubbleSort(原创 2013-11-21 15:20:53 · 2387 阅读 · 0 评论 -
使用Eclipse平台进行调试
前言之前调试php是在本地搭建了LNMP环境,在可能出错的地方用echo和exit进行调试。调试c是直接命令行gdb调试,到了java这里还是要学习一下Eclipse的调试方法、原文链接:使用 Eclipse 平台进行调试Eclipse调试器和Debug视图Eclipse SDK是针对Java开发工具(Java Development Tools,JDT)的项目,它转载 2013-11-21 12:36:13 · 1923 阅读 · 0 评论 -
用java来写ACM
前言从去年10月份开始就一直都在九度oj平台写acm,到今天在九度oj的总排名已经到了第6名,收获很多特别是算法和数据结构方面的提高,这种提高直接反映在我找工作的顺利中 但是人总要学会拥抱变化,特别是我即将加入阿里系,使用java编程,不能继续贪恋用c的快感,尽快调节自己。因此从今天开始我要转换自己的acm平台,开始使用LeetCode OJ 有点跑题,毕竟这篇博客还是原创 2013-11-20 15:05:42 · 6264 阅读 · 5 评论 -
Java类的修饰符
前言因为之前用PHP也是面向对象,但是和JAVA语言程序设计还是有所不同。JAVA定义类时除了需要使用class关键字说明所定义的数据类型是类外,还需要在class之前增加若干类的修饰符来限定所定义的类的操作特性,说明类的属性修饰符类的修饰符分为:可访问控制符和非访问控制符两种可访问控制符是 :公共类修饰符 public非访问控制转载 2013-11-05 14:36:46 · 1648 阅读 · 2 评论 -
Ubuntu12.04搭建jdk
前言准备进入阿里系,基本开发语言就是java,我这个php、c、shell的选手需要重头学起了,趁着距离入职还有一段时间,抓紧时间学习java原创 2013-11-04 12:58:48 · 1951 阅读 · 0 评论 -
Java集合LinkedList模拟栈
前言栈这种数据结构的特性我就不多说了,有需要的朋友可以看我之前的文章:栈的学习这几天学习了java集合,今天在LeetCode OJ做题恰好需要用到stack这种数据数据结构,在java里可以用LinkedList模拟,这里介绍一下方法java的泛型可以让LinkedList模拟存储各种数据类型的栈,包括int,double,String,Object等等,原创 2013-11-29 14:42:31 · 3510 阅读 · 0 评论 -
Java实现简单的socket通信
前言首先,说一件无关的事情,萧鼎的诛仙2更新了,这一等就是一年啊,今天中午思考去阿里用神马花名的时候想起来google一下诛仙二,结果50多章都没看过,555,没忍住一下午全用来看小说了,罪过罪过其次,就是今天学习了一下java如何实现socket通信,感觉难点反而是在io上,因为java对socket封装已经很完善了参考学习了一篇博客,写的不错,推荐给大家原创 2013-12-05 00:32:39 · 7519 阅读 · 4 评论 -
java小游戏——坦克大战
前言简单说一下这几天做了神马,上周六刚学完Java SE,然后周末就开始感冒发烧,到现在感冒依旧没好,蛋疼,我还每晚坚持跑步和打篮球,都不知道锻炼身体到哪去了。还有一个比较好的消息,体重从162减少到174了,哈哈,每天都有坚持仰卧起坐,当然也跟没工资吃饭有关坦克大战这是我第一次做图形化界面的东西,用的是java的awt类库,虽然很丑陋,但是我玩的还是挺hi原创 2013-12-12 12:10:09 · 2407 阅读 · 5 评论 -
Java synchronized详解
原文链接原文链接:http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html前言android学的迷迷糊糊的,跟师兄请了个假,下午想看会书,这里转载一篇讲java synchronized的文章。synchronizedjava语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够转载 2014-03-12 17:28:31 · 1102 阅读 · 0 评论 -
Ubuntu12.04配置Android反编译工具apktool
前言这周六就回北京的,这几天也还是挺忙的,走之前需要干的事情:1. android基本入门(有点无奈了,我只能说自己再拥抱变化)2. 学会倒立(身高1米9了倒立真的很难,而且我貌似从小就不会翻跟头神马的,怎么破)3. 有机会看一下linux内核实现apktool安装也是跟着网易公开课上的教程进行学习,讲到了apk反编译工具apktoo原创 2014-02-10 18:01:30 · 2143 阅读 · 3 评论 -
Google Java编程风格指南
压力最近赶紧压力还是挺大的,为了防止自己无病呻吟和胡思乱想,只能通过不停的学习来充实自己,安抚躁动的心情原文链接:http://hawstein.com/posts/google-java-style.html#Intro原文作者:Hawstein前言这份文档时Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的转载 2014-01-29 00:00:31 · 1937 阅读 · 3 评论 -
UML类图
前言用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图。通过UML类图,能更好的和大家交流,也能很容易就表达出自己的设计想法UMLUnified Modeling Language(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统原创 2013-06-24 07:34:23 · 3056 阅读 · 2 评论 -
本科生java考试练习题目
前言论文休息时间,帮实验室的师弟师妹做几道java考试题目,预祝师弟师妹考试取得优异成绩题目1、创建3个线程,每个线程睡眠一段时间(0-6秒),然后结束class SleepFun implements Runnable { private int sleepTime = 0; public SleepFun(int time) {原创 2014-01-08 13:58:02 · 2011 阅读 · 0 评论 -
Java的JDBC事务详解
事务事务(Transaction):是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,sql server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。事务通常是以begin transaction开始,以commit或rollback结束。commit表示提交,即提交事务的所有操作。具体的说,就是将事务中所有对数据的转载 2013-12-18 01:22:28 · 5796 阅读 · 2 评论 -
Java中Date类和Calendar类
前言写后台程序的时候,经常需要存储当前服务器的时间戳,使用时间戳也很方便,客户端和服务器端都可以根据自己的需求做各自的转换在php里,获取当前时间戳使用time()函数,格式化输出通过Date()函数即可,Java里相对复杂一些,这里简单介绍一下Java语言中的Calendar,Date,DateFormat组成了Java标准的一个基本但是非常重要的部分。日期是商业逻辑原创 2013-12-17 14:25:37 · 2880 阅读 · 0 评论