Java三目运算符空指针异常
今天在解决线上bug, 一不小心跳入了Java三目运算符自动拆箱和封箱的坑里面,遇到了NullPointerException的异常。
对于大多数App来说,并非100%的纯Native开发模式。有时候为了运营方便,会提供一个内置浏览器『Activity包含一个WebView』来加载后端的Web页面,从而可以达到App不发版,通过改动远程的Web页面来达到动态发布的目的。那么问题来了,如果后端的Web页面需要跟App的Native通讯,如何实现呢?下面介绍几种通讯方式。
移动互联网时代,推动了移动支付的发展;同时,移动支付的发展,进一步推送移动互联网的发展。目前主流的移动支付有:支付宝、微信、银联,以及2016年2月18日入华的Apply pay。下面着重比较下支付宝、微信、银联支付。
随着代码量的增加,以及使用第三方库的增多,有时候改点代码,重新运行竟然花费Long Long time,这实在是浪费程序员的生命。于是,在Android Studio 2.0版本中,加入了吊炸天的功能Instant Run
。有了这个法宝后,每次编译只会将改动的代码做成差异化文件,然后上传到调试设备上,与旧的app进行合并,生成新的app。有点类似差异化更新技术。这样改动代码,重新调试就是瞬间的事情了,真是谁用谁爽!
我们知道,HTTP请求都是明文传输的,所谓的明文指的是没有经过加密的信息,如果HTTP请求被黑客拦截,并且里面含有银行卡密码等敏感数据的话,会非常危险。为了解决这个问题,Netscape 公司制定了HTTPS协议,HTTPS可以将数据加密传输,也就是传输的是密文,即便黑客在传输过程中拦截到数据也无法破译,这就保证了网络通信的安全。
前段时间,下载了Android N Preview预览版的SDK,同时更新了Android SDK Tools到25.1.7.rc1,Android SDK Build-tools到24 rc4。之后好好体验了一把Android N以及Android N的官方demo『关于多窗口、通知栏、ScopeDirectory的示例』爽爆了。
Annotation是什么?维基百科: A form of syntactic metadaa that can be added to Java source code. 也就是说,Annotation的引入是为了从Java语言层面上,为Java源代码提供元数据的支持。参见维基百科
使用过Spring的朋友应该对AOP『Aspected Oriented Programe』很熟悉,那么是否被里面的前置增强、后置增强、环绕增强所震撼呢?有没有想过这背后的技术实现呢?其实JDK的动态代理就能实现。下面做一个简单的示例,来阐述如何在Runtime时,动态增强原有的方法。