自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

哈罗德Android笔记

Android 及编程相关技术学习分享

  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java NIO 详解

nio 的基本组成1. Buffer 高效的数据容器,除布尔类型,所有原始数据类型都有Buffer实现。使用步骤:写入数据到 Buffer调用flip()方法调整指针位置准备读取从 Buffer 中读取数据调用clear()方法或者compact()方法清理缓存主要属性值:capacity:Buffer缓冲区大小,只能写入capacity个原始类型。不...

2018-06-30 21:47:26 1869

原创 JDK1.8 IO 包中的两种设计模式

适配器模式 适配器模式是指,将一个类的接口转换成客户希望的另外一个接口。Adpter 模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作何时使用?在软件开发前期,类和方法的命名应该就规范地设计好,在一开始出现不兼容时就应该通过重构来同一接口。通常只有在开发后期或维护期,由于双方都不太容易修改接口是,才应该考虑使用适配器模式。另一种情况是,在设计系统是,考虑使用第...

2018-06-30 08:46:03 1703

原创 JDK1.8并发之CountDownLatch

CountDownLatchCountDownLatch 是java.util.concurrent包中的类,初始化时需要一个正整数参数作为初始 status 值,Thread#1 中每次调用它的countDown()方法都使得 status 减一,Thread#2 中调用它的await()方法会导致 Thread#2 阻塞直到 status 为0。它可以用来设置一个任务阻塞直到其他 n...

2018-06-28 18:58:02 1517

原创 JDK1.8中的try-with-resources声明

JDK1.7开始,java引入了 try-with-resources 声明,将 try-catch-finally 简化为 try-catch,这其实是一种语法糖,在编译时会进行转化为 try-catch-finally 语句。新的声明包含三部分:try-with-resources 声明、try 块、catch 块。它要求在 try-with-resources 声明中定义的变量实现了 Aut...

2018-06-26 11:36:32 38627 12

原创 JDK1.8集合框架之Set

总述Set利用Map实现,不允许重复元素(Map中的Key值唯一,可为null)。TreeSet,利用TreeMap实现。支持按插入顺序访问,但是添加、删除、包含等操作相对低效(log(n)时间)。HashSet,底层是HashMap。利用哈希算法,理想情况,可以提供常数时间的添加、删除、包含等操作,但是不能保证有序。LinkedHashSet,用LinkedHashMap实现。内部...

2018-06-24 15:55:30 1735

原创 JDK1.8并发之生产者消费者问题

本文讨论了生产者消费者模式的三种实现方式,第三种BlockingQueue实际上就是JDK对第二种方式的封装。为了提高程序的拓展性,方便测试,我用StockRoom接口来抽象产品库存的put和take操作。这样三种实现方式可以使用相同的Producer和Consumer类代码。这些可复用的代码如下:// 测试方法:private static void test(StockRoom st...

2018-06-24 15:36:03 1047

原创 JDK1.8并发之synchronized和Lock

什么是线程安全? 线程安全是指保证多线程环境下共享的、可修改的状态的正确性。保证线程安全的两个办法: - 封装:将对象的内部状态隐藏、保护起来。 - 不可变:final变量产生了某种程度地不可变(immutable)效果,可以用于保护只读数据。线程安全需要保证几个基本特性: - 原子性:相关操作不会中途被其他线程干扰,一般通过同步机制实现。 - 可见性:一个线程修改了某个...

2018-06-23 19:25:36 6280

原创 Jdk1.8集合框架之LinkedHashMap源码解析

LinkedHashMap和HashMap的区别HashMap的迭代器LinkedHashMap的迭代器LinkedHashMap.Entry保存插入顺序和访问顺序LinkedHashMap和HashMap的区别LinkedHashMap是HashMap的子类,它和HashMap的区别是,可以按照节点插入的自然顺序(或者节点的操作顺序)来迭代所有节点。而且它的迭代比...

2018-06-22 14:47:56 468

原创 Jdk1.8集合框架之HashMap源码解析(详细解析红黑树)

HashMap特点不同步,支持null的键和值,put或get操作通常是常数时间。Map接口的实现。去掉了Hashtable的contains(Object value)方法,保留containsKey和containsValue方法。使用Iterator而不是Enumration。内部字段// 默认初始长度为16static final int DEFAULT_INI...

2018-06-20 17:20:51 2127 3

原创 Android新手必读的RecyclerView使用总结

RecyclerView比ListView要复杂一些,如果总结起来,使用方法也很清晰。希望我的总结能帮助到更多的Andoid爱好者。1.依赖库使用RecylerView需要Google支持库recyclerview-v72.RecylerView作用:回收和定位屏幕上的View,列表项显示数据还是需要另外两个子类的支持:ViewHolder子类和Adapter子类。s...

2018-06-11 13:32:07 522

原创 ThoughWorks编程体验

最近参加了ThoughtWorks举办的活动,对公司的编程规范有一个大致的印象,希望给对思特沃克公司感兴趣的求职者一些参考。这是我们做的编程项目的要求:在最后的评审阶段,大约感觉前辈们对下列要求很重视(重要性依次递减):1.单元测试单元测试不一定需要很多,很复杂,但一定要有,对一些基本的对象的功能要建立测试类。2.功能的完成度需求应该全部完成,每一个功能不一定要非常完美,但整体功能应该完备。3.框...

2018-06-11 12:43:25 789

原创 Java中类的实例化过程变量的初始化顺序,以及常见笔试程序阅读题分析

类是在任何static成员被访问时加载的(构造器也是static方法)。类的整个加载过程包括加载、验证、准备、解析、初始化5个阶段。我这里只讨论我们在笔试题中比较关心的、影响程序输出的部分。类加载:在准备阶段,static变量在方法区被分配内存,然后内存被初始化零值(注意和static变量初始化的区别)。在初始化阶段,执行类构造器<clinit>()方法(注意和实例构造器<ini...

2018-06-06 19:23:25 979

原创 Java中的反射

最近在学习java反射机制,读到了一篇很棒的博客,我的这篇文章是对原文的概括性笔记,总结了这部分知识的学习体系。 1. java.lang.Class获取Class对象知道类名时,编译期加载:Class myObjectClass = MyObject.class通过读取字符串,运行时加载:Class class = Class.forName("com.jenkov.myapp...

2018-06-05 15:10:25 188

原创 RadioGroup中显示radiobutton之外的其他组件

RadioGroup是一种Layout,它的RadioButton按钮必须是它的直接子控件,这就否定了将RadioButton和其他TextView子类的控件放在单独的Layout下的思路。我采取的办法实际上不是在RadioGroup中直接添加了子控件,而是通过布局的拼凑来实现的。<RelativeLayout android:layout_width="match_...

2018-06-04 11:22:47 1466

MySQL必知必会(高清带书签)

MySQL必知必会(高清晰中文书签版)+书中所用数据库 短小精悍却面面俱到,居家工作常备。4小时就能读完,但是最好边看边练习,效果更好。

2018-03-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除