Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
e5c0da0
no message
fengyuxia Mar 5, 2017
7e265d9
Merge remote-tracking branch 'refs/remotes/origin/master' into guodon…
zjhylove Mar 6, 2017
d5dac8b
Merge https://github.com/onlyliuxin/coding2017
yuanfangblues Mar 6, 2017
191789c
Merge pull request #2 from luoziyihao/master
williamgx8 Mar 6, 2017
5e28c6b
Merge pull request #2 from 844028312/master
dustheart Mar 7, 2017
f67fec9
sortdemo singleton
Mar 7, 2017
7d464ac
第二次作业
fengyuxia Mar 7, 2017
2582ff1
Merge pull request #41 from fengyuxia/master
844028312 Mar 8, 2017
3b3e38b
Merge pull request #40 from ddyblackhat/master
844028312 Mar 8, 2017
8f6229d
Merge pull request #2 from 844028312/master
sulei0205 Mar 8, 2017
c499d92
Merge remote-tracking branch 'upstream/master'
dustheart Mar 8, 2017
fb079fa
add 数据结构(三) 单向链表
Mar 12, 2017
1ad824f
LinkedList&&download
Mar 12, 2017
3842736
Merge remote-tracking branch 'refs/remotes/origin/master' into guodon…
zjhylove Mar 13, 2017
0430932
重构
zjhylove Mar 13, 2017
3192aec
在更新一遍
zjhylove Mar 13, 2017
67dd53a
download
Mar 13, 2017
4cd0036
中途提交保存
Mar 13, 2017
23875d0
第三次作业
yuanfangblues Mar 13, 2017
4849ef4
二分之一数据结构和算法
Mar 13, 2017
f43e9c1
refactor ArrayList
Mar 14, 2017
b027575
Merge remote-tracking branch 'upstream/master'
Mar 14, 2017
3c81c87
中途提交保存
Mar 14, 2017
a0677e9
Merge remote-tracking branch 'refs/remotes/guodongym/master'
zjhylove Mar 14, 2017
8ca1d72
中途提交
Mar 14, 2017
4f47779
add 多线程下载
Mar 14, 2017
0524896
thirdhomework
sulei0205 Mar 15, 2017
f4e3a16
多线程下载
wiertty Mar 15, 2017
c75d832
Merge pull request #47 from wiertty/master
zhanglifeng Mar 15, 2017
d9e0ba1
Merge pull request #48 from onlyliuxin/master
zhanglifeng Mar 15, 2017
da29e3e
ok
Mar 15, 2017
1ad30ca
edit 多线程下载
Mar 15, 2017
8f8af8c
重构
zjhylove Mar 16, 2017
c2e1644
中途提交保存
Mar 21, 2017
c8521e2
update ArrayUtil
maishihang Mar 21, 2017
a92fdfc
多线程下载
vegetableDogBai Mar 23, 2017
6c48050
update 2 weekWork
maishihang Mar 23, 2017
3a4f316
完善多线程下载
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
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
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
375887c
update 3 weekwork
maishihang Mar 27, 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
5b2acd4
down load work
hongxin230 Mar 28, 2017
9934fe6
upload work
hongxin230 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
5e23f86
Merge pull request #1 from guodongym/master
vegetableDogBai Mar 29, 2017
59b56aa
thirdHomeWork
sulei0205 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
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
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
02df22a
download finish afterall
gukz Mar 31, 2017
c1dcc0d
Merge remote-tracking branch 'guodongym/master'
gukz Mar 31, 2017
5a761d6
JVM第一周作业
zhanglifeng 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
6be7e88
compele LRU
maishihang Mar 31, 2017
d9efccd
com
luoziyihao Mar 31, 2017
66c9c50
Merge remote-tracking branch 'gdcoding2017/master'
gukz Apr 1, 2017
f2f1717
第五周作业,顺便修改了第二周作业的struts。xml为相对路径
gukz Apr 1, 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
db9e1f9
LRU complete
hongxin230 Apr 3, 2017
2d1be53
383117348LRU算法实现
SmilePoorCat Apr 3, 2017
3e7a31a
mini jvm
Apr 3, 2017
ee1795d
Merge pull request #50 from Kandde/master
zhanglifeng Apr 3, 2017
92fda23
add miniJvm
Apr 4, 2017
403c94e
add LRU
Apr 4, 2017
61c4192
jvm
Apr 4, 2017
c9b213b
lru classloader
zhiyuan0101 Apr 4, 2017
282b626
文章
Ren650119726 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
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
362e737
article.
zhiyuan0101 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
ffe1628
第四周作业—-代码
240094626 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
fcc7c89
refactor
onlyliuxin Apr 14, 2017
2461d51
refactor
onlyliuxin Apr 14, 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