eclipse中类似myeclipse打开explorer的插件
myeclipse中选择工程名,然后点击open in explorer可以打开工程文件夹,eclipse也可以实现
插件地址:http://blog.samsonis.me/2009/02/open-explorer-plugin-for-eclipse/
myeclipse中选择工程名,然后点击open in explorer可以打开工程文件夹,eclipse也可以实现
插件地址:http://blog.samsonis.me/2009/02/open-explorer-plugin-for-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开头的了)
纪念莱斯·保罗电吉他之父诞辰 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压缩文件的代码实例
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%)");
}
}
}
有时候需要实现一组线程任务,但是我们希望线程一个执行完成后再去执行另外一个,有一个很简单的方法,就是使用thread的join()方法,如下:
Thread t = new Thread(r); t.start(); t.join();
| Java Language Type | Native Type | De**s**cription |
| boolean | jboolean | unsigned 8 bits |
| byte | jbyte | signed 8 bits |
| char | jchar | unsigned 16 bits |
| short | jshort | signed 16 bits |
| int | jint | signed 32 bits |
| long | jlong | signed 64 bits |
| float | jfloat | 32 bits |
| double | jdouble | 64 bits |
字符 Java类型 C类型 V void void Z jboolean boolean I jint int J jlong long D jdouble double F jfloat float B jbyte byte C jchar char S jshort short [I jintArray int[] [F jfloatArray float[] [B jbyteArray byte[] [C jcharArray char[] [S jshortArray short[] [D jdoubleArray double[] [J jlongArray long[] [Z jbooleanArray boolean[]JNINativeMethod方法的结构如下:
typedef struct {
const char* name;
const char* signature;
void* fnPtr;
} JNINativeMethod
第一个变量name是Java中函数的名字。
第二个变量signature,用字符串是描述了函数的参数和返回值
第三个变量fnPtr是函数指针,指向C函数。
第二个方法的涵义是: