alonealice

个人博客

Effective java读书笔记(3)

尽量不要使用原生态类型 首先,我们要知道什么是原生态类型。每一个泛型都定义一个原生态类型,比如List它的原生态类型就是List。那为什么又尽量不要使用呢?因为使用它可能会照成类型不安全。比如: 123public void add(List list,String string){ list.add(string);} 如果调用方法时是new Person().add......

Effective Java读书笔记(2)

覆盖equals方法时的通用约定 1.自反性:对于任何非null的对象x,x.equals(x)一定是true 2.对称性:对于任何非null对象x,y,x.equals(y)为true时,y.equals(x)也一定为true 3.传递性:x.equals(y)等于true,y.equals(z)也为true,那么x.equals(z)也一定为true 4.一致性:在没有修改两个对象信息的......

Effective Java读书笔记(1)

用静态工厂方法代替构造器 优势: 1.静态工厂方法有名字,可以增强阅读性,可以强化与其他静态工厂方法的区别。 2.静态工厂方法在返回对象时可以返回静态对象,不需要每次都创建新对象。 3.静态工厂方法可以返回原对象类型的子类型对象。 缺点:类如果没有公有的或者受保护的构造器,就不能被子类化。 遇到多个构造参数是用构建器 优势: 1.代码的可读性更高(看起来更高级) 2.可以有多个可变参数 示例......

Executor 框架与线程池

Executor 框架是 Java 5 中引入的,其内部使用了线程池机制,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。通过 Executor 来启动线程比使用 Thread 的 start 方法更好。首先是能够降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。其次能够提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。最后还能提高线程的可......

http断点下载

断点续传,就是从文件已经下载的地方继续下载。这在下载比较大的文件时是一个非常有用的功能,实现断点下载的主要技术点有两个:一是多线程下载数据后,实时记录各个线程下载的数据量,二是从网络上分段下载数据。 下面我就简单的讲讲文件断点下载的简单思路: 首先,需要先使用HttpURLConnection,连接链接,获取文件的大小。 12345HttpURLConnection conn= (HttpU......

java正则表达式语法大全

正则表达式是一种专门的语法模式来匹配或找到其他字符串或字符串集,可以用来搜索编辑或是操纵文本和数据。 java中要使用它主要需要用到以下两个类: Pattern类:一个 Pattern 对象是正则表达式编译表示。 Pattern 类没有提供公共的构造函数。要创建一个 Pattern 对象,你必须首先调用他的公用静态编译方法来获得 Pattern 对象。这些方法的第一个参数是正则表达式。 Ma......

java注解的使用

java注解是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 java注解可用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,注解可以分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注......

java反射机制

JAVA反射机,简单的说就是在程序运行过程中,对于任意一个类、方法和对象,我们都能知道它的信息并且调用;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性。同时,我们可可以通过它来实现对原先无法调用的方法和对象的调用。因此在开发过程中有很重要的作用。那么我们要怎样来使用它呢? 获取类 获取累的对象几乎是所有......

matrix pre、post和set的区别

在使用matrix过程中,我们经常要使用到rotate、scale、translate等变换。Matrix实现这些变换的方法有3个,preXX,postXX和setXX。这个方法单用一次,你会发现实际的效果都是一样的,但是如果你多次使用或者组合使用,所出来的效果可能就完全不同了。那到底这三者有什么不同呢? pre操作从字面上就可以看到是先执行,post操作是按顺序执行,set操作是清除执行。......

canvas concat和setMatrix的区别

在自定义View的时候,我们经常会用到Canvas进行绘制,其中也会用到Matrix对图像进行移动、旋转等操作,这个时候就会涉及到concat和setMatrix这两个方法,将Matrix的变化效果设置到Canvas上,那么这两个方法有什么区别呢? 闲话不多说,先使用代码看看最终的效果: 使用setMatrix 123456789101112@Override protected vo......