https://www.gravatar.com/avatar/7a0c24f697ea1587001c36d00039b60f?s=240&d=mp

Eclipse快捷键大全(转载)

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)

Ctrl+D: 删除当前行

Ctrl+Alt+↓ 复制当前行到下一行(复制增加)

Ctrl+Alt+↑ 复制当前行到上一行(复制增加)

Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)

Alt+↑ 当前行和上面一行交互位置(同上)

Alt+← 前一个编辑的页面

Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)

Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性

Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)

Shift+Ctrl+Enter 在当前行插入空行(原理同上条)

Ctrl+Q 定位到最后编辑的地方

Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)

Ctrl+M 最大化当前的Edit或View (再按则反之)

Ctrl+/ 注释当前行,再按则取消注释

Ctrl+O 快速显示 OutLine

Ctrl+T 快速显示当前类的继承结构

Ctrl+W 关闭当前Editer

Ctrl+K 参照选中的Word快速定位到下一个

Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)

Ctrl+/(小键盘) 折叠当前类中的所有代码

Ctrl+×(小键盘) 展开当前类中的所有代码

Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)

Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)

Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)

Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)

Ctrl+Shift+F4 关闭所有打开的Editer

Ctrl+Shift+X 把当前选中的文本全部变味小写

Ctrl+Shift+Y 把当前选中的文本全部变为小写

Ctrl+Shift+F 格式化当前代码

Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)

Google 决定永久收藏弹吉他 doodle

纪念莱斯·保罗电吉他之父诞辰 96 周年的可以直接弹奏的 doodle昨天已经多放了一天了,但是大家还是玩得不亦乐乎,总不能再多放一天吧?于是Google决定把这个doodle单独放到一个永久的网页里,大家可以随时玩个够了。

这好像也是继吃豆人游戏doodle之后,第二个被Google永久收藏的doodle。

弹吉他 doodle 永恒的归宿:http://www.google.com/logos/2011/lespaul.html

附上一些曲谱:

欢乐颂:EERT TREW QQWE EWW EERT TREW QQWE WQQ 春江花月夜:H-HHK-LHGG-G-H-KLDD-SDG-DGHKL-;-K-L;LKH-G(-和~是长音) 沧海一声笑:pouyt uytew wewetyuop ppouyty

Java建立Zip压缩文件

本文是关于实现Java建立Zip压缩文件的代码实例

import java.io.*;
import java.util.zip.*;

class Zip {
    public static void main(String[] args) throws IOException {
        byte[] b = new byte[512];
        ZipOutputStream zout = new ZipOutputStream(System.out);

        for (int i = 0; i < args.length; i++) {
            InputStream in = new FileInputStream(args[i]);
            ZipEntry e = new ZipEntry(args[i].replace(File.separatorChar, '/'));
            zout.putNextEntry(e);
            int len = 0;
            while ((len = in.read(b)) != -1) {
                zout.write(b, 0, len);
            }
            zout.closeEntry();
            print(e);
        }
        zout.close();
    }

    public static void print(ZipEntry e) {
        PrintStream err = System.err;
        err.print("added " + e.getName());
        if (e.getMethod() == ZipEntry.DEFLATED) {
            long size = e.getSize();
            if (size > 0) {
                long csize = e.getCompressedSize();
                long ratio = ((size - csize) * 100) / size;
                err.println(" (deflated " + ratio + "%)");
            } else {
                err.println(" (deflated 0%)");
            }
        } else {
            err.println(" (stored 0%)");
        }
    }
}

JNI的基本类型

第二个方法的涵义是:

“()V”

“(II)V”

“(Ljava/lang/String;Ljava/lang/String;)V”

“()” 中的字符表示参数,后面的则代表返回值。例如”()V” 就表示void Func();

“(II)V” 表示 void Func(int, int);

参考文章:http://hi.baidu.com/zhlg_hzh/blog/item/f0d782081f2f45d963d986f5.html