常用快捷键总结

  • ECLIPSE:

    查看代码

    Ctrl+O 搜索当前类变量及方法

    Ctrl+H 打开搜索对话框

    Ctrl+Shift+G 搜索选中变量或方法的引用

    Ctrl+D 删除当前行

    Ctrl+Shift+F 格式化代码

    F4 查看当前类继承结构

    Ctrl+Shift+R 搜索类,文件等资源

    Ctrl+Shift+O 倒包

    Ctrl + 1 :快速修复

    Ctrl + Shift + /(小键盘) :收起左侧导航树或代码(依据当前焦点而定)

    Ctrl + *(小键盘) :展开代码

    Shift + Enter :在当前行下方插入一行空行

    Alt + 向上键 :当前行与上方行交换

    Alt + 向下键 :当前行与下方行交换

    Shift + Alt + R : 重命名

    Shift + Alt + L (表达式末尾):为表达式赋值为局部变量

    Shift + 向上键/向下键 : 选中此行

    Shift + Alt + M : 提取选中代码为一个方法

    Ctrl + . : 下一个错误

    阅读全文 »

Markdown

Markdown 是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

即:Markdown 就是一种类似于Html的标记语言,比Html更简单,通过转换之后使普通文本内容具有一定的格式。

常用语法

makedown 语法


代码

```
public void main(String args[]){
System.out.print(“Hello World”);
}
```

Use the `printf()` function.


阅读全文 »

notify 问题

今天遇到了这么个情况:
有线程若干,我需要他们按顺序执行。
代码大概长这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class SyncTag {
public int threadNO;
public SyncTag() {
threadNO = 0;
}
}
class ThreadA extend Thread{
SyncTag syncTag;
int scriptNO;
ThreadA(SyncTag syncTag,int scriptNO){
this.syncTag=syncTag;
this.scriptNO=scriptNO;
}
public void Run(){
synchronized (syncTag) {
if (syncTag.threadNO != scriptNO) {
try {
syncTag.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
dosomething();
syncTag.threadNO++;
syncTag.notifyAll();
}
}
}
public class Test{
public static void main(String args[]){
SyncTag syncTag=new SyncTag();
for(int i=0;i<10;++i){
ThreadA t=new ThreadA(syncTag,i);
t.start();
}
}
}

阅读全文 »

java同步锁锁什么

在今天的苦逼遍代码的过程中,有这样一个问题困扰了我半天:
情景是这样的:有N个线程ThreadTest,在类A中被创建。构造ThreadTest,向其传入A中的成员变量 Integer i;
ThreadTest中的成员变量 j 被赋值为 i
在 ThreadTest 的 run 方法中,我 加入了 synchronized块,对象锁正是 j ;
在synchronized块中,我改变了这个 j 的值。代码大概是这样的:

1
2
3
4
5
6
7
8
9
Integer j;
ThreadTest(Integer i){
j=i;
}
public void run() {
synchronized(j){
j++;
}
}

阅读全文 »