Day: June 24, 2017

2017年你不能错过的Java类库

各位读者好, 这篇文章是在我看过 Andres Almiray 的一篇介绍文后,整理出来的。 因为内容非常好,我便将它整理成参考列表分享给大家, 同时附上各个库的特性简介和示例。 请欣赏! Guice Guice (发音同 ‘juice’) ,是一个 Google 开发的轻量级依赖性注入框架,适合 Java 6 以上的版本。 # Typical dependency injection public class DatabaseTransactionLogProvider implements Provider<TransactionLog> { @Inject Connection connection; public Transaction… Read More

Java(Android)线程池详解

介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。 1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差。 b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。 c. 缺乏更多功能,如定时… Read More

Java: set和list集合类的使用方法

集合概述 由于Set集合和List集合都继承于Collection,都用于管理多个对象,所以统称为集合类。如下图所示: 数组与集合类都可以用于管理多个对象,有何不同? 数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。 集合类的特点? 集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。 Java集合框架实际上是java对各种数据结构的实现。比如,线性表,链表,队列,堆,栈,二叉树等,不像C语言,需要全部自己实现。   共性方法 由于大部分集合类都继承了Collection接口,所以Collection接口的方法就是集合类的共性方法,… Read More

Java遍历HashMap,Set, List, ArraryList 删除(remove)或者修改

遍历list的时候为什么不能修改呢? 具体语言实现不同,这里是一些语言无关的点 如果你在遍历时往数组增加数据,会导致遍历不完整(因为增加了新成员长度变了),或者死循环(因为总是有新的进去) 如果在遍历时删除数据,则会导致数组访问越界(因为长度缩短了,指针指向了一个已经标示为空的区域) 如果你只是在遍历时修改这个节点本身的数据,一般来说是安全的(当然需要看具体场景) 以下默认修改为 list 的 add/remove 操作 首先, java 里面有很多种 list :   java.util.ArrayList;   java.util.LinkedList;   java.util.Stack;   java.ut… Read More