“The Get and Put Principle: use an extends wildcard when you only get values out of a structure, use a super wildcard when you only put values into a structure, and don’t use a wildcard when you both get and put.” 摘录来自: Maurice Naftalin. “Java Generics and Collections”。 iBooks.

Database related 解锁oracle表 dba用户登录 sqlplus / sysdba 锁表查询SQL: SELECT object_name, machine, s.sid, s.serial FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid; 释放SESSION SQL: alter system kill session 'sid, serial'; ALTER system kill session '23, 1647';

Android gradle build简明使用教程 签名 gradle本身支持直接签名,只需要在build.gradle添加如下代码即可 signingConfigs { Neusoft { storeFile file("/Users/liuzuo/Documents/Resource/KeyStore/key_neusoft_si/neusoft.si.keystore") storePassword "BK3AGmHAmUzRsfo4S6sO" keyAlias "neusoft.si" keyPassword "BK3AGmHAmUzRsfo4S6sO" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.Neusoft } debug { } } 一般填上上面的代码即可执行签名,但是这种方式不太安全,建议不要在build.gradle文件中写上签名文件的密码,因为build.gradle文件一般都会集成到代码的版本控制中,这样所有人都会有签名文件的密码。 所以应该把签名文件的密码隔离起来,写到一个配置文件中,此配置文件不包含在代码版本控制中,这样其他开发者就不会知道签名文件的密码。 gradle配置文件一般以.properties结束,我们先新建一个signing.properties文件,内容如下: STORE_FILE=yourapp.keystore STORE_PASSWORD=your password KEY_ALIAS=your alias KEY_PASSWORD=your password 注意没有字符串双引号"" 接下在guild.gradle文件中读取signing.properties配置文件,读取的代码如下: File propFile =...

一个moco的简明使用教程 moco简介 作为2013 年 Oracle Java 大赛的获奖作品 的Moco。他的作者是这样描述 Moco 的: Moco是一个简单搭建模拟服务器的程序库/工具,这个基于 Java 开发的开源项目已经在 Github 上获得了不少的关注。该项目的简介是这样描述自己的:Moco 是一个简单搭建 stub 的框架,主要用于测试和集成。这个框架的开发灵感来自 Mock 框架,如 Mockito 和 Playframework。 为什么要开发这个框架? 集成,尤其是基于 HTTP 协议的集成——web service、REST 等,在我们的项目开发中被广泛应用。以前,我们每次都要往 Jetty 或 Tomcat 等应用服务器上部署一个新的 WAR。大家都知道,开发部署一个 WAR 的过程是很枯燥的,即使在嵌入式服务器上也是如此。而且,每次我们做一点改动,整个 WAR 都要重新组装。 Moco 的出现,正是为了解决这些问题。开发团队只要根据自己的需要进行相应的配置,就会很方便得到一个模拟服务器。而且,由于 Moco 本身的灵活性,其用途已经不再局限于最初的集成测试,比如,Moco 可以用于移动开发,模拟尚未开发的服务;Moco 还可以用于前端开发,模拟一个完整的 Web 服务器,等等。 一个简单的开始 国际惯例,先从hello world开始我们的moco之旅吧。 首先,您需要:...