Parcelable vs Serializable

序论

在Android中,我们需要传递对象的引用在activity和fragment之间,因此我们不得不放在Intent/Bundle中。

通过api我们了解到有两种选择,可以使用对象的**Parcelable或者Serializable**形式,作为Java的开发者,我们已经知道Serializable机制,那么为什么还有Parcelable?

要回答这个问题,先让我们看看这两个方法。

Serializable,简单之主

// access modifiers, accessors and constructors omitted for brevity
public class SerializableDeveloper implements Serializable
    String name;
    int yearsOfExperience;
    List<Skill> skillSet;
    float favoriteFloat;

    static class Skill implements Serializable {
        String name;
        boolean programmingRelated;
    }
}

Serializable的美在于你只需要将类和他的子类实现Serializable接口,这是一个标记接口,意味着没有方法来实现,Java可以简单有效的实现它的序列化。

这个方法的问题是,他使用到了反射,并且它是一个缓慢的进程。正是这个机制,创造了大量的临时对象,并且造成大量的gc。

Android Studio Tips of the Day(2)

原作者:Philippe Breault
原文地址:http://www.developerphil.com/…the-day-roundup-2/

关于快捷键

Android Studio 提供了不同的按键对应关系(在快捷键和动作之间的映射).你能看到你正在使用的案件映射,通过Settings->KeyMap.

1.重复的行

Mac Win&Linux
cmd+d ctrl+d

它可以复制当前行并且粘贴它到下一行,不会影响剪切板的内容。

dumplicate

Android Studio Tips of the Day(1)

原作者:Philippe Breault
原文地址:http://www.developerphil.com/…day-roundup-1/

关于快捷键

Android Studio 提供了不同的按键对应关系(在快捷键和动作之间的映射).你能看到你正在使用的案件映射,通过Settings->KeyMap.

1.高亮显示

Mac Win&Linux
cmd+shift+f7 ctrl+shift+f7

高亮显示光标所在的字符,这不仅仅是一个简单的匹配模式,它会了解当前的范围,并且高亮范围内同类的字符。你可以向上、向下浏览,通过:Edit -> Find -> Find Next/Previous

其他提示:

  • 高亮一个方法中的“return”或者“throw”,其他方法也会同样高亮显示
  • 高亮类声明中“extends”或者“implements”,同样会高亮 override/implemented的方法
  • 高亮一个 import 会同样高亮使用它的地方
  • 可以通过 Escape 取消高亮

ctrlshiftf7

Java的连接与初始化

原文作者:iceAeterna
原文链接:http://www.cnblogs.com/iceAeterNa/p/4876747.html

序言

Java虚拟机通过装载、连接、初始化来使得一个Java类型可以被Java程序所使用,如下图所示,其中连接过程又分为验证、准备、解析三个部分。其中部分类的解析过程可以推迟到程序真正使用其某个符号引用时再去解析。

解析

解析过程可以推迟到类的初始化之后再进行,但这是有条件的,Java虚拟机必须在每个类或接口主动使用时进行初始化。
以下为主动使用的情况:

  • 创建某个类新的实例(无论直接通过new创建出来的,还是通过反射、克隆、序列化创建的)
  • 使用某个类的静态方法
  • 访问某个类或接口的静态字段
  • 调用JavaAPI中的某些反射方法
  • 初始化某个类的子类(要求其祖先类都要被初始化,否则无法正确访问其继承的成员)
  • 启动某个标明为启动类的类(含有main()方法)
    主动使用会导致类的初始化,其超类均将在该类的初始化之前被初始化,但通过子类访问父类的静态字段或方法时,对于子类(或子接口、接口的实现类)来说,这种访问就是被动访问,或者说访问了该类(接口)中的不在该类(接口)中声明的静态成员。

通过Swiftype实现hexo站内搜索

hexo默认提供的是google的搜索,但是国内很蛋疼,无意中了解到swiftype效果不错,之前也看了一些方法不是很凑效,无奈自己研究了一下,可以正常使用了,这里就把方法share给大家,下面就直接进入正题吧。

注册swiftype账号

官方地址:https://swiftype.com/

创建搜索引擎

注册完账号,接下来就是创建搜索引擎了,这里都是以图片引导,关键步骤都有;
1、CREATE AN ENGINE:
CREATEANENGINE
2、继续点击创建:
create

| | 总字数统计:93.5k