Java
文章平均质量分 70
邹迪飞
这个作者很懒,什么都没留下…
展开
-
Effective Java 学习笔记(1)
通常情况下,我们在写一个类时,一般会赋予它一个或几个public的构造函数,让外部程序能够创建对象. 然而,在effective java 中,从另一个角度告诫我们在使用public的构造函数前,先考虑用public 的静态函数来创建对象. 其优点如下:1. 一个静态的工厂函数,可以取不同的名字. 而构造函数的名字只能与类同名. 一个API的设计中,一个好懂的名字可以免去使用者在文原创 2010-01-13 22:56:00 · 383 阅读 · 0 评论 -
Java语言的非对称加密的实现
众所周知,互联网上的安全是非常重要的一个课题,如何让我们的软件,通信协议更加安全,是每个程序员都需要思考的问题。 本文主要讨论三种非对称加密的情况。 1.私钥加密-公钥解密 2.公钥加密-私钥解密 3.私钥签名-公钥验证产生密钥对无论上述哪种情况,我们都需要产生一个密钥对。使用Keytool生成需要借助JDK中自带的keytool来生成。在命令行模式下输入keytool.如果配置正常,应该显原创 2016-04-24 00:37:01 · 3095 阅读 · 2 评论 -
React-Native Windows完全安装指南
React Native背景React Native 是facebook推出的,React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。React Native的特点使用ReactNative可以动态原创 2016-02-27 22:52:26 · 4172 阅读 · 0 评论 -
依赖注入与Dragger2使用入门
依赖注入在开始之前,我们先要搞懂什么是依赖注入。第一个版本。/** * Created by REXZOU on 2015/11/21. */ public class Motor { public void addGas() { }}/** * Created by REXZOU on 2015/11/21. */ public class Car { private原创 2015-12-24 21:49:08 · 1695 阅读 · 0 评论 -
Retrofit 2.0 常用写法示例
由于Retrofit的官方文档实在是很难理解,我这里收集了一些常见的写法,供在实际使用中参考。对URL的处理BASEURL通常我们在定义retrofit的时候,会设置一个baseurl。Retrofit.Builder builder = new Retrofit.Builder(); builder.baseUrl(mBaseUrl);在2.0中,url的拼接规则与网页中的<a href="url原创 2016-02-25 15:10:35 · 2788 阅读 · 1 评论 -
Retrofit2.0的Converter使用
在Retrofit中, 不管是发送数据或是接收数据, 最基本都是通过OKHttp的RequestBody和ResponseBody来实现,但是通常为了方便,我们在定制协议的时候,不会直接使用原始的RequestBody或是ResponseBody,因此,在Retrofit中,我们就需要对它进行转换。在Retrofit的类的定义中,有个converterFactories的List,我们可以在buil原创 2016-02-29 19:33:19 · 5039 阅读 · 2 评论 -
Android 6.0 新增API 简介(5)
摄像头新的API能够访问闪光和再处理图像。闪光灯API如果一台摄像机带有闪光灯,则你可以在不打开摄像头的情况下,调用setTorchmode方法来开关灯。应用不需要独占闪光灯或是摄像头。当摄像不可用时或是有其他摄像头资源有占用时,电筒模式会被关掉。其他应用可以使用setTorchMode方法来关掉电筒模式。可以使用registerTorchCallback()注册一个回调,当电筒模式有改变时能够通知翻译 2015-10-20 19:43:24 · 2298 阅读 · 0 评论 -
Effective Java 学习笔记(8)
当重载equals方法时,遵循惯例.equals不是每个类都必须重载,当以下几个条件满足,可以不重载equals.1. 类的实例只有同一个才被判为相等. 如Thread类.2. 不用关心两个对象是否逻辑相等的时候,或是说比较对象没有意义.3.父类已经重载了equals,而且父类的equals也适用于子类,子类就不用重载equals.4.这是一个私有类或是包内访问,你确定equa原创 2010-01-24 19:34:00 · 397 阅读 · 0 评论 -
Effective Java 学习笔记 (7)
Finalizer 不可计划的,也是危险的,一般也是不必要的.不能在finalizer中放任何与依赖时间相关的操作,因为你不知道它什么时候被执行. 比如在finalizer中关闭文件的做法就是错误的, 根据JVM的实现方式不同,有可能导致打开的文件数过多而无法再打开文件.也不能在finalizer中改变状态,如给数据库解锁等.finalizer还能带来严重的性能问题,显示的调用的终原创 2010-01-24 19:30:00 · 454 阅读 · 0 评论 -
Effective Java 学习笔记 (7)
Finalizer 不可计划的,也是危险的,一般也是不必要的.不能在finalizer中放任何与依赖时间相关的操作,因为你不知道它什么时候被执行. 比如在finalizer中关闭文件的做法就是错误的, 根据JVM的实现方式不同,有可能导致打开的文件数过多而无法再打开文件.也不能在finalizer中改变状态,如给数据库解锁等.finalizer还能带来严重的性能问题,显示的调用的终原创 2010-01-24 19:27:00 · 402 阅读 · 0 评论 -
Effective Java 学习笔记 (6)
及时消除不使用的对象的引用, 理论上, 带有内存管理的语言是不存在内存泄漏的, 但是如果对对象的操作不当,也是可能会造成内存泄漏.如有一个stack, 其pop函数如下.public Object pop(){ if( Element.length() == 0) return null; return Element[s原创 2010-01-24 19:27:00 · 404 阅读 · 0 评论 -
Effective Java 学习笔记(5)
尽量复用对象,而不是创建新的对象,特别是当一个对象是immutable(不可改变)的时候。如String对象,String s= new String(“String”); 千万不要这样做,因为这里实际上创建了两个对象。要避免出现这样的情况,1是可以用静态工厂函数,来解决,如类库中的Boolean.valueOf(“true”),这种方式要优于new Boolean(“true原创 2010-01-24 19:26:00 · 362 阅读 · 0 评论 -
Effective Java 学习笔记(4)
这个原则很简单,就是使用私有构造函数防止类被实例化。有时,我们会写一些工具类,如java.lang.Math 或是 java.util.Arrays, 这些类中都是静态函数,在设计的时候,这些类并不是用来被实例化的。这个时候,就很有必要把构造函数私有化。public class UtilityClass { private UtilityClass() { throw new Assert原创 2010-01-24 19:25:00 · 364 阅读 · 0 评论 -
Effective Java 学习笔记(3)
在实现singleton模式时,我们有以下几种方法。1. public static final 字段加上private 的构造函数。public class Singleton{ public static final Singleton INSTANCE = new Singleton(); private Singleton() { .原创 2010-01-24 19:23:00 · 479 阅读 · 0 评论 -
Effective Java 学习笔记(2)
有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比较原始的办法就是采用telescoping constructor模式,例子如下。原创 2010-01-24 19:12:00 · 469 阅读 · 0 评论 -
Java 中的内部静态类
Java 中内部动态类(没有static)关键字和内部静态类的就在于内部动态类不能定义静态变量或是静态方法,如果要在内部类中使用静态成员,必须将类声明为静态类.内部类中的静态方法可以访问外部类的静态方法和本类中的静态方法或成员, 非静态方法可以访问其他所有的方法或成员原创 2010-01-24 19:03:00 · 438 阅读 · 0 评论 -
深入理解okio的优化思想
随着越来越多的应用使用OKHttp来进行网络访问,我们有必要去深入研究OKHTTP的基石,一套更加轻巧方便高效的IO库okio.OKIO的优点有同学或会问,目前Java的IO已经非常成熟了,为什么还要使用新的IO库呢?笔者认为,答案有以下几点: 低的CPU和内存消耗。后面我们会分析到,okio采用了segment的机制进行内存共享和复用,尽可能少的去申请内存,同时也就降低了GC的频率。我们知道,过于原创 2016-04-24 18:48:46 · 12464 阅读 · 7 评论