Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
368 commits
Select commit Hold shift + click to select a range
443147a
Merge pull request #40 from wanghongdi56/master
gaodekui Mar 21, 2017
c8521e2
update ArrayUtil
maishihang Mar 21, 2017
a92fdfc
多线程下载
vegetableDogBai Mar 23, 2017
6c48050
update 2 weekWork
maishihang Mar 23, 2017
23892fb
upload week03 download commit
Mar 24, 2017
7518a62
supple LinkedList commit
Mar 25, 2017
3a4f316
完善多线程下载
Mar 26, 2017
82a3fbd
Merge pull request #26 from jiaxun1990/master
BlindingDark Mar 26, 2017
7d6a7a4
Merge pull request #44 from vegetableDogBai/master
guodongym Mar 26, 2017
9259a57
Merge pull request #48 from qilei/master
844028312 Mar 27, 2017
8330ecb
Merge pull request #46 from sulei0205/master
844028312 Mar 27, 2017
ce8dfa1
Merge pull request #47 from WithoutCause/master
844028312 Mar 27, 2017
b0fa778
Merge pull request #45 from onlyliuxin/master
guodongym Mar 27, 2017
ec72e23
Merge pull request #45 from begin16119/master
844028312 Mar 27, 2017
660b890
Merge pull request #44 from ddyblackhat/master
844028312 Mar 27, 2017
dc9d8ea
Merge pull request #43 from dustheart/master
844028312 Mar 27, 2017
65d5f82
Merge pull request #42 from xiaomingbai/master
844028312 Mar 27, 2017
18cc76a
Merge pull request #49 from onlyliuxin/master
zhanglifeng Mar 27, 2017
710ed88
第三次作业
844028312 Mar 27, 2017
c0e36e8
Merge branch 'master' of https://github.com/loveyuanyuanisluckly/codi…
zjhylove Mar 27, 2017
84cc097
merge
844028312 Mar 27, 2017
e043eb9
Merge remote-tracking branch 'refs/remotes/origin/master'
zjhylove Mar 27, 2017
ab4aa45
Merge pull request #3 from 844028312/master
dustheart Mar 27, 2017
1b86753
项目重构
zjhylove Mar 27, 2017
d673992
383117348字节码文件读取实现
SmilePoorCat Mar 27, 2017
4504b89
Merge remote-tracking branch 'refs/remotes/guodongym/master'
zjhylove Mar 27, 2017
ca4a1ed
zndbl
Mar 27, 2017
fc1362a
383117348修改字节码文件读取路径
SmilePoorCat Mar 27, 2017
457ddfb
383117348移动了linkedlist位置
SmilePoorCat Mar 27, 2017
186bcc3
根据刘老师文件夹结构重构代码
GordenChow Mar 27, 2017
5656b93
Merge pull request #3 from guodongym/master
onlyLYJ Mar 27, 2017
36f0af9
Signed-off-by: ajie9608 <1778842360@qq.com>
lsuccess Mar 27, 2017
64076d1
jvm1 done
onlyLYJ Mar 27, 2017
ad155e5
Merge branch 'master' of https://github.com/onlyLYJ/coding2017.git
onlyLYJ Mar 27, 2017
08fb35f
1
onlyLYJ Mar 27, 2017
f7e585e
week2
Mar 27, 2017
375887c
update 3 weekwork
maishihang Mar 27, 2017
53c3bd5
第三周作业,因上周有事耽误了
Mar 18, 2017
012bc6e
Merge remote-tracking branch 'origin/master'
Mar 28, 2017
8ed01b9
第三次作业
Mar 28, 2017
f711520
Merge remote-tracking branch 'upstream/master'
Mar 28, 2017
743e20d
addignore
zhiyuan0101 Mar 28, 2017
3ff26bc
addignore2
zhiyuan0101 Mar 28, 2017
91ab9be
LRU实现
zjhylove Mar 28, 2017
a37a03f
类加载器实现
zjhylove Mar 28, 2017
b062dfb
LRU
Mar 28, 2017
a89517d
week2Update
Mar 28, 2017
5b2acd4
down load work
hongxin230 Mar 28, 2017
9934fe6
upload work
hongxin230 Mar 28, 2017
1508170
homework0312
MedalJiao Mar 28, 2017
eafc9cc
Merge branch 'master' of https://github.com/jodie-zss/coding2016
MedalJiao Mar 28, 2017
9311ccd
week04 lru commit
Mar 28, 2017
cbf0818
upload work
hongxin230 Mar 28, 2017
7cd1d0b
upload work
hongxin230 Mar 28, 2017
0d3203d
step1
hongxin230 Mar 28, 2017
b062454
com 3week
maishihang Mar 28, 2017
772a9e9
Merge remote-tracking branch 'refs/remotes/onlyliuxin/master'
gaodekui Mar 28, 2017
0823aa0
Merge branch 'master' of https://github.com/gaodekui/coding2017
gaodekui Mar 28, 2017
5e23f86
Merge pull request #1 from guodongym/master
vegetableDogBai Mar 29, 2017
59b56aa
thirdHomeWork
sulei0205 Mar 29, 2017
5d785fe
Merge pull request #27 from Memory-Cunese/master
BlindingDark Mar 29, 2017
3cdc5f3
Merge pull request #28 from luojunyi/master
BlindingDark Mar 29, 2017
78e0366
Merge pull request #51 from sulei0205/master
844028312 Mar 29, 2017
c3ea03c
Merge pull request #50 from txp-reps/master
844028312 Mar 29, 2017
9cb1cf1
Merge remote-tracking branch 'refs/remotes/jodie-zss/master'
gabywong Mar 29, 2017
9295418
170402作业&重构文件目录
gabywong Mar 29, 2017
9caa104
lru
zhiyuan0101 Mar 29, 2017
33c6545
分包
maishihang Mar 29, 2017
1a02317
分包
maishihang Mar 29, 2017
ee74cda
添加JVM
maishihang Mar 29, 2017
a07ca28
Merge remote-tracking branch 'refs/remotes/guodongym/master'
maishihang Mar 29, 2017
c99a7b8
补交作业
jiangshaojie Mar 29, 2017
f089e21
补交作业
jiangshaojie Mar 29, 2017
b659f4d
补交作业
jiangshaojie Mar 29, 2017
534e035
数据结构作业完成
vegetableDogBai Mar 30, 2017
861b04b
jvm第一周作业完成
vegetableDogBai Mar 30, 2017
7698e1e
第四周作业提交
GordenChow Mar 30, 2017
e772308
finish half
Mar 30, 2017
d710110
fourthHomework
sulei0205 Mar 30, 2017
7fcbdd0
完成验证魔数
hongxin230 Mar 30, 2017
747eec6
Merge remote-tracking branch '844028312/master'
wubingyang527 Mar 30, 2017
07d5ec9
add file
jiangshaojie Mar 30, 2017
26bfff2
Merge remote-tracking branch 'upstream/master'
jiangshaojie Mar 30, 2017
4d4f2a5
jvm
Mar 30, 2017
fcd09d2
Merge pull request #3 from BlindingDark/master
Lizhny Mar 31, 2017
02df22a
download finish afterall
gukz Mar 31, 2017
c1dcc0d
Merge remote-tracking branch 'guodongym/master'
gukz Mar 31, 2017
9cb7321
补交第三次作业
Lizhny Mar 31, 2017
5a761d6
JVM第一周作业
zhanglifeng Mar 31, 2017
7b5c997
3.31
Mar 31, 2017
4cf00ff
Merge pull request #32 from Lizhny/master
BlindingDark Mar 31, 2017
39e4662
finish lru
Mar 31, 2017
983e4a8
homework of 17/3/26 finished ,first jvm homework and LRU
Wrecksoul Mar 31, 2017
6433478
Merge remote-tracking branch 'refs/remotes/origin/master' into onlyli…
jodie-zss Mar 31, 2017
6be7e88
compele LRU
maishihang Mar 31, 2017
d9efccd
com
luoziyihao Mar 31, 2017
b91ac58
Merge pull request #45 from onlyliuxin/master
jodie-zss Apr 1, 2017
ef53d76
Merge pull request #42 from gabywong/master
jodie-zss Apr 1, 2017
72a0198
week3redo
Apr 1, 2017
e98df32
blog
Apr 1, 2017
66c9c50
Merge remote-tracking branch 'gdcoding2017/master'
gukz Apr 1, 2017
28af9b3
0326作业
wanghongdi56 Apr 1, 2017
9785895
Merge pull request #33 from zndbl/master
BlindingDark Apr 1, 2017
91f5697
LinkedList
Lizhny Apr 1, 2017
f2f1717
第五周作业,顺便修改了第二周作业的struts。xml为相对路径
gukz Apr 1, 2017
d2e8c31
前三周全部实现一遍
Apr 1, 2017
5ec64cf
Merge pull request #42 from wanghongdi56/master
gaodekui Apr 1, 2017
b13d52e
Merge pull request #35 from SJsunshine/master
BlindingDark Apr 1, 2017
7b1158a
Merge pull request #34 from Lizhny/master
BlindingDark Apr 1, 2017
500c11d
delete some temporary file
MedalJiao Apr 2, 2017
c1967ef
Merge branch 'master' of https://github.com/jodie-zss/coding2017
MedalJiao Apr 2, 2017
d7db7ba
week4 homework and blog
Apr 2, 2017
8a2fe58
Merge pull request #36 from SJsunshine/master
BlindingDark Apr 2, 2017
4e5adfc
4.2作业 LRU&ClassFileLoader
jjyyjjyy Apr 2, 2017
12c5a2a
add jvm homework
earlywusa Apr 2, 2017
459904f
add jvm
earlywusa Apr 2, 2017
940f6bf
add LRU
earlywusa Apr 2, 2017
4d40a1a
add LRU also
shuiqing05 Apr 2, 2017
bf736e4
litestruts
Apr 2, 2017
dd4cc36
Merge pull request #37 from wjwzero/master
BlindingDark Apr 2, 2017
26327f6
Merge pull request #29 from jiaxun1990/master
BlindingDark Apr 2, 2017
fae45f5
3.27作业
jiangshaojie Apr 2, 2017
f9b49bb
Merge branch 'work'
jiangshaojie Apr 2, 2017
62f51e3
删除非必要文件
jiangshaojie Apr 2, 2017
36ce885
删除文件
jiangshaojie Apr 2, 2017
c5351d2
Delete test.jpg
jiangshaojie Apr 2, 2017
398347f
Delete LinkedListTest.java
jiangshaojie Apr 2, 2017
2a3085b
Delete LinkedListbakTest.java
jiangshaojie Apr 2, 2017
b39ff69
Delete testss.java
jiangshaojie Apr 2, 2017
b79d926
Delete ArrayList.java
jiangshaojie Apr 2, 2017
8b4c00d
Delete Iterator.java
jiangshaojie Apr 2, 2017
50d0003
Delete LinkedList.java
jiangshaojie Apr 2, 2017
1fcb28a
Delete LinkedListbak.java
jiangshaojie Apr 2, 2017
c2d3dca
Delete List.java
jiangshaojie Apr 2, 2017
802541f
Delete Queue.java
jiangshaojie Apr 2, 2017
ab672d0
Delete Stack.java
jiangshaojie Apr 2, 2017
6102c85
Delete test.java
jiangshaojie Apr 2, 2017
40cc2e0
Delete ArrayUtil.java
jiangshaojie Apr 2, 2017
19d3d85
Delete ArrayUtilTest.java
jiangshaojie Apr 2, 2017
2a26efc
Delete DownloadThread.java
jiangshaojie Apr 2, 2017
8fbd102
Delete FileDownloader.java
jiangshaojie Apr 2, 2017
d172248
Delete FileDownloaderTest.java
jiangshaojie Apr 2, 2017
a093db7
Delete ConnectionImpl.java
jiangshaojie Apr 2, 2017
efcaa53
Delete ConnectionManagerImpl.java
jiangshaojie Apr 2, 2017
4b39626
Delete Connection.java
jiangshaojie Apr 2, 2017
7a91980
Delete ConnectionException.java
jiangshaojie Apr 2, 2017
9064f0d
Delete ConnectionManager.java
jiangshaojie Apr 2, 2017
48b3195
Delete DownloadListener.java
jiangshaojie Apr 2, 2017
3fb447c
Delete LoginAction.java
jiangshaojie Apr 2, 2017
4a154e5
Delete Struts.java
jiangshaojie Apr 2, 2017
8b7da4d
Delete StrutsTest.java
jiangshaojie Apr 2, 2017
4ffb52f
Delete View.java
jiangshaojie Apr 2, 2017
7f4548b
Delete struts.xml
jiangshaojie Apr 2, 2017
5685e91
download
Apr 2, 2017
db9e1f9
LRU complete
hongxin230 Apr 3, 2017
2d1be53
383117348LRU算法实现
SmilePoorCat Apr 3, 2017
73447d1
Merge pull request #38 from wjwzero/master
BlindingDark Apr 3, 2017
7142932
重构
stackwei Apr 3, 2017
3e7a31a
mini jvm
Apr 3, 2017
ee1795d
Merge pull request #50 from Kandde/master
zhanglifeng Apr 3, 2017
bb6e373
完成多线程下载
zhan2016 Apr 4, 2017
92fda23
add miniJvm
Apr 4, 2017
403c94e
add LRU
Apr 4, 2017
bfc0033
Merge pull request #47 from jiangshaojie/master
jodie-zss Apr 4, 2017
4c79772
Merge pull request #46 from jy97799/master
jodie-zss Apr 4, 2017
61c4192
jvm
Apr 4, 2017
c9b213b
lru classloader
zhiyuan0101 Apr 4, 2017
282b626
文章
Ren650119726 Apr 4, 2017
88e0583
2017.04.04
MedalJiao Apr 4, 2017
54c7cdb
Merge pull request #37 from SmilePoorCat/master
wizardzhang2017 Apr 5, 2017
c51a3d5
Merge pull request #36 from GordenChow/master
wizardzhang2017 Apr 5, 2017
66ec539
Merge pull request #51 from loveyuanyuanisluckly/master
guodongym Apr 5, 2017
8788cae
Merge pull request #49 from GUK0/master
guodongym Apr 5, 2017
0880b89
Merge pull request #48 from onlyLYJ/master
guodongym Apr 5, 2017
df16ffe
Merge pull request #47 from vegetableDogBai/master
guodongym Apr 5, 2017
fa90c8e
Merge pull request #50 from shuiqing05/master
guodongym Apr 5, 2017
80ede5d
Merge pull request #46 from maishihang/master
guodongym Apr 5, 2017
4d2cd3e
Merge pull request #52 from onlyliuxin/master
guodongym Apr 5, 2017
66b8374
thrid homework
starlight0405 Apr 5, 2017
a27e629
Signed-off-by: CoderXLoong <413007522@qq.com>
CoderXLoong Apr 5, 2017
a6781e3
com
luoziyihao Apr 5, 2017
0d75444
add 20170326-20170402.md
luoziyihao Apr 5, 2017
bbfef7b
add 20170326-20170402.md
luoziyihao Apr 5, 2017
a3dfb88
Merge pull request #55 from Ren650119726/patch-2
luoziyihao Apr 5, 2017
500a408
Merge branch 'master' of https://github.com/luoziyihao/coding2017.git
zhiyuan0101 Apr 5, 2017
7e3076f
12
zhiyuan0101 Apr 5, 2017
6ee423f
Merge branch 'master' of https://github.com/luoziyihao/coding2017.git
zhiyuan0101 Apr 5, 2017
e5f94d8
article
zhiyuan0101 Apr 5, 2017
093649a
Merge pull request #45 from zhan2016/master
gaodekui Apr 5, 2017
d7b34fa
Merge pull request #44 from stackwei/master
gaodekui Apr 5, 2017
292522f
Merge pull request #46 from starlight0405/master
gaodekui Apr 5, 2017
362e737
article.
zhiyuan0101 Apr 5, 2017
9c7c3d0
Merge remote-tracking branch 'refs/remotes/onlyliuxin/master'
gaodekui Apr 5, 2017
5247bf6
Merge branch 'master' of https://github.com/gaodekui/coding2017
gaodekui Apr 5, 2017
00c94d2
完成二周作业
wubingyang527 Apr 5, 2017
e75f61b
完成jvm第一次作业
Apr 5, 2017
ccf558f
Merge remote-tracking branch 'origin/master'
Apr 5, 2017
f878406
完成3月26日作业
Apr 5, 2017
b2764c4
Merge pull request #153 from gaodekui/master
onlyliuxin Apr 6, 2017
789b1ec
Merge pull request #152 from CoderXLoong/master
onlyliuxin Apr 6, 2017
b097d88
读取常量池
onlyliuxin Apr 6, 2017
8574bac
读取常量池
onlyliuxin Apr 6, 2017
d9e5387
Merge branch 'master' of https://github.com/onlyliuxin/coding2017.git
onlyliuxin Apr 6, 2017
e51e577
Merge pull request #48 from brucejiao1/master
jodie-zss Apr 6, 2017
bbbacce
Merge remote-tracking branch 'refs/remotes/BlindingDark/master'
Lizhny Apr 6, 2017
6f90ec5
Merge pull request #50 from onlyliuxin/master
jodie-zss Apr 6, 2017
6c40fef
Update 26组情况统计.md
Lizhny Apr 6, 2017
ffe1628
第四周作业—-代码
240094626 Apr 6, 2017
0cfb220
Merge pull request #39 from Lizhny/master
BlindingDark Apr 6, 2017
c247cbb
Merge pull request #155 from BlindingDark/master
onlyliuxin Apr 6, 2017
26460f9
Merge pull request #154 from jodie-zss/master
onlyliuxin Apr 6, 2017
af82526
Delete !
onlyliuxin Apr 6, 2017
187bb04
Merge branch 'master' of https://github.com/luoziyihao/coding2017 int…
earlywusa Apr 6, 2017
88266ef
add article link
earlywusa Apr 6, 2017
dda2d82
Merge pull request #56 from wubingyang/master
844028312 Apr 6, 2017
2689358
Merge pull request #55 from dustheart/master
844028312 Apr 6, 2017
0523622
Merge pull request #54 from xiaomingbai/master
844028312 Apr 6, 2017
24c5544
Merge pull request #53 from qilei/master
844028312 Apr 6, 2017
53f753c
work_jvm_1_LRU
240094626 Apr 6, 2017
f7defa2
Merge pull request #52 from sulei0205/master
844028312 Apr 6, 2017
764b94f
confilct fix
844028312 Apr 6, 2017
2acc24b
Merge branch 'master' of https://github.com/844028312/coding2017
844028312 Apr 6, 2017
ed148dd
第四次作业
844028312 Apr 6, 2017
d23e98d
Merge pull request #3 from wizardzhang2017/master
guoqixuan Apr 6, 2017
6d1c751
Merge pull request #38 from onlyliuxin/master
wizardzhang2017 Apr 6, 2017
fa116c4
Merge pull request #53 from onlyliuxin/master
guodongym Apr 6, 2017
e2633d2
重构
guodongym Apr 6, 2017
0d51654
half getElements
luoziyihao Apr 6, 2017
7820046
week04
guoqixuan Apr 7, 2017
d1ab3d1
Merge pull request #4 from wizardzhang2017/master
guoqixuan Apr 7, 2017
33d05df
Merge pull request #40 from guoqixuan/master
wizardzhang2017 Apr 7, 2017
1696720
home
luoziyihao Apr 9, 2017
768f6e9
Merge pull request #52 from onlyliuxin/master
zhanglifeng Apr 9, 2017
e1cec01
add 20170326-20170402.md 20170402-20170409.md
luoziyihao Apr 9, 2017
4c26bd8
Merge pull request #58 from 240094626/master
luoziyihao Apr 9, 2017
b19ecb3
Merge pull request #57 from earlywusa/1282579502-Branch
luoziyihao Apr 9, 2017
5605adb
Merge pull request #56 from williamgx8/master
luoziyihao Apr 9, 2017
407435f
Merge pull request #53 from 12378wzy/master
luoziyihao Apr 9, 2017
9d47036
Merge pull request #51 from Wrecksoul/master
luoziyihao Apr 9, 2017
f5f1524
Merge pull request #162 from luoziyihao/master
onlyliuxin Apr 9, 2017
6a5d931
Merge pull request #159 from guodongym/master
onlyliuxin Apr 9, 2017
4549b9d
Merge pull request #158 from wizardzhang2017/master
onlyliuxin Apr 9, 2017
72b592a
Merge pull request #157 from 844028312/master
onlyliuxin Apr 9, 2017
d0ad2e6
Merge pull request #156 from zhanglifeng/master
onlyliuxin Apr 9, 2017
79af98a
中序表达式
onlyliuxin Apr 9, 2017
2172f14
上传jvm第二次作业的代码
onlyliuxin Apr 9, 2017
8eb5ba7
Merge branch 'master' of https://github.com/onlyliuxin/coding2017.git
onlyliuxin Apr 9, 2017
f462045
上传第二次作业的代码
onlyliuxin Apr 9, 2017
dcc31ff
实现StackUtil和StackUtilTest
onlyliuxin Apr 10, 2017
e6fe324
refactor
onlyliuxin Apr 12, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,12 @@

public class ConnectionException extends Exception {

/**
* 自定义异常错误
* @param string
*/
public ConnectionException(String string) {

}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.coderising.download.api;

public interface DownloadListener {

public void notifyFinished();
}
2 changes: 1 addition & 1 deletion group04/1020483199/1020483199Learning/.classpath
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
package com.coderising.jvm.loader;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;



public class ClassFileLoader {

private List<String> clzPaths = new ArrayList<String>();

public byte[] readBinaryCode(String className) {
/**
* class文件存储位置
*/
String location = clzPaths.get(0);
File file = new File(location);
File[] files = file.listFiles();
InputStream in = null;
byte[] bt = null;

int size = 0;
for(File fileSon:files){
/**
* 判断出为class文件时
*/
if(fileSon.isFile() && fileSon.getName().endsWith("EmployeeV1.class")){
try {
long length = fileSon.length();
bt = new byte[(int) length];
byte[] context = new byte[1024];
in = new FileInputStream(fileSon);
int tempbyte;
while((tempbyte = in.read(context)) != -1){
for(int i = 0;i < context.length;i++){
System.arraycopy(context, 0, bt, size, tempbyte);
}
size = tempbyte;
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(in != null){
try {
in.close();
} catch (IOException e) {
}
}
}

}
}
return bt;
}


public void addClassPath(String path) {

clzPaths.add(path);

}



public String getClassPath(){
StringBuilder sb = new StringBuilder();
for(int i = 0;i < clzPaths.size();i++){
if(i == clzPaths.size() - 1){
sb.append(clzPaths.get(i));
break;
}
sb.append(clzPaths.get(i)).append(";");

}
return sb.toString();
}





}
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package com.coderising.jvm.test;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import com.coderising.jvm.loader.ClassFileLoader;





public class ClassFileloaderTest {


static String path1 = "F:/myGithub/coding2017/group04/1020483199/FourthHomeWork/bin/com/coderising/jvm/test";
static String path2 = "C:/temp";



@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void testClassPath(){

ClassFileLoader loader = new ClassFileLoader();
loader.addClassPath(path1);
loader.addClassPath(path2);

String clzPath = loader.getClassPath();
Assert.assertEquals(path1+";"+path2,clzPath);

}

@Test
public void testClassFileLength() {

ClassFileLoader loader = new ClassFileLoader();

loader.addClassPath(path1);

String className = "com.coderising.jvm.test.EmployeeV1";

byte[] byteCodes = loader.readBinaryCode(className);
// 注意:这个字节数可能和你的JVM版本有关系, 你可以看看编译好的类到底有多大
Assert.assertEquals(1056, byteCodes.length);

}


@Test
public void testMagicNumber(){
ClassFileLoader loader = new ClassFileLoader();
loader.addClassPath(path1);
String className = "com.coderising.jvm.test.EmployeeV1";
byte[] byteCodes = loader.readBinaryCode(className);
byte[] codes = new byte[]{byteCodes[0],byteCodes[1],byteCodes[2],byteCodes[3]};


String acctualValue = this.byteToHexString(codes);

Assert.assertEquals("cafebabe", acctualValue);
}






private String byteToHexString(byte[] codes ){
StringBuffer buffer = new StringBuffer();
for(int i=0;i<codes.length;i++){
byte b = codes[i];
int value = b & 0xFF;
String strHex = Integer.toHexString(value);
if(strHex.length()< 2){
strHex = "0" + strHex;
}
buffer.append(strHex);
}
return buffer.toString();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.coderising.jvm.test;

public class EmployeeV1 {


private String name;
private int age;

public EmployeeV1(String name, int age) {
this.name = name;
this.age = age;
}

public void setName(String name) {
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public void sayHello() {
System.out.println("Hello , this is class Employee ");
}
public static void main(String[] args){
EmployeeV1 p = new EmployeeV1("Andy",29);
p.sayHello();

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.coding.basic.linkedList;

public interface Iterator {
public boolean hasNext();
public Object next();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
package com.coding.basic.linkedList;

/**
* 用双向链表实现LRU算法
* @author liuxin
*
*/
public class LRUPageFrame {

private static int stateAtHead = 0;
private static int stateAtLast = 1;
private static int stateAtMid = 2;

private static class Node {

Node prev;
Node next;
int pageNum;

Node(){

}
}

private int capacity;

private int size;
private Node first;// 链表头
private Node last;// 链表尾


public LRUPageFrame(int capacity) {

this.capacity = capacity;

}

/**
* 获取缓存中对象
*
* @param key
* @return
*/
public void access(int pageNum) {
/**
* 空链表
*/
size ++;
Node newNode = new Node();
newNode.pageNum = pageNum;
if(size <= capacity){
if(last == null){
last= newNode;
first = newNode;
}else{
Node preHead = first;//记录原来的头节点
first = newNode;
first.next = preHead;
preHead.prev = first;
}
}else{
Node currentNode = first;
int judgeNum = currentNode.pageNum;
Node preHead = first;//记录原来的头节点
Node preLast = last;//记录原来的尾节点
int state = -1;//记录当前状态
/**
* 当前插入的值为等于链表头的位置
*/

int k = 0;
if(judgeNum == pageNum){
state = stateAtHead;
}else if(preLast.pageNum == pageNum){
state = stateAtLast;
}
while(currentNode != null && k < capacity - 1){
k++;
currentNode = currentNode.next;
judgeNum = currentNode.pageNum;
if(judgeNum == pageNum && judgeNum != preLast.pageNum){
state = stateAtMid;
break;
}
}

switch (state) {
case -1:
first = newNode;
last = preLast.prev;
first.next = preHead;
first.prev = null;
preHead.next = last;
preHead.prev = first;
last.next = null;
break;
case 0:

break;

case 1:
last = preLast.prev;
last.next = null;//原来尾节点的上一个节点变成了尾节点
first = newNode;
first.prev = null;
first.next = preHead;
break;
case 2:
first = newNode;
first.next = preHead;
first.prev = null;
preHead.next = last;
preHead.prev = first;
last.prev = preHead;
break;
}

}




}



public String toString(){
StringBuilder buffer = new StringBuilder();
Node node = first;
while(node != null){
buffer.append(node.pageNum);

node = node.next;
if(node != null){
buffer.append(",");
}
}
return buffer.toString();
}

}
Loading