Monthly Archive: 十二月 2015

使用Wireshark抓取Origin下载链接

  年底Origin平台紧跟Steam的步伐各种打折,剁手之后,发现下载速度极慢,而且很不稳定,Ping到最快服务器改hosts也不管用。为了得到稳定高速的下载,可以使用Wireshark抓取Origin中下载任务的链接,使用迅雷等下载工具进行下载。   打开Wireshark,在“Capture” / “Interfaces”下选好接口,并将Filter设置为: [crayon-5a10bd70…
Read more

Retrofit 2使用方法举例

  Retrofit是Square推出的一个“type-safe HTTP client for Android and Java”,通过将HTTP(REST) API转换为Java接口,极大地简化了HTTP API的使用。下面通过一个例子介绍Retrofit的基本使用,通过Retrofit向TMDb请求流行电影的信息,得到JSON格式的响应,由GSON解析后,以列表的形式显示出来。 0. The…
Read more

使用Gradle在属性文件中保存API Key

  很多站点的API都需要使用API key,API key需要保密,在发布代码时,要注意不能把API key也共享了出来。下面给出一种在Android Studio上通过Gradle在属性文件中保存API key的方法。   首先在build.gradle中的buildTypes下加入:

加入函数getApiKey(): [cra…
Read more

OCA/OCP Java Note (11): Exceptions

1. Understanding Exception Types   Java中异常的种类如图1所示。   Error用于指示严重错误,程序不应尝试从错误中恢复。RuntimeException和其子类表示运行时异常,用于指示意外的非致命异常,也被称为unchecked exception。   Runtime (Unchecked) exception是异常的一个种类,并不是指在程序运行期间(r…
Read more

OCA/OCP Java Note (10): Class Design (2)

3. Implementing Interfaces 3.1. Defining an Interface 接口不能直接实例化。 一个接口中可以不包含任何方法。 接口不能标记为final。 顶层接口默认具有public或default的访问限制和abstract修饰符,将接口标记为private/protected/final会导致编译错误。此条不适用于内部接口。 接口中的所有非default方法…
Read more

OCA/OCP Java Note (7): Core Java APIs (2)

5. Understanding an ArrayList   与数组类似,ArrayList是一个有序序列,且允许重复与元素。数组中元素的个数在声明时就已经确定,不可再更改,ArrayList可以在运行时改变大小。

5.1. Creating an ArrayList   Java 5之前可以使用以下的方法创建ArrayList,…
Read more

OCA/OCP Java Note (6): Core Java APIs (1)

1. Creating and Manipulating Strings 1.1. Concatenation   使用“+”运算符进行字符串拼接时,需要注意: 如果两个操作数都是数值,则+表示数值加; 如果有一个操作数时String,则+表示拼接; 表达式按照从左向右的顺序求值。 eg.

1.2. Immutability   S…
Read more

OCA/OCP Java Note (5): Operators and Statements

1. Working with Binary Arithmetic Operators 1.1. Arithmetic Operators   Java中的求模运算可以作用于负数和浮点,对于给定的除数y和为负的被除数,求模的结果位于(-y + 1)和0之间。 1.2. Numeric Promotion   数值类型自动转换(提升)规则: 如果两个值具有不同的数据类型,Java将自动把其中一个值的…
Read more