Начинающий
- Статус
- Оффлайн
- Регистрация
- 18 Сен 2024
- Сообщения
- 38
- Реакции
- 0
вот сурс моей jvm
че там по твоему старью, вайт1337)))
jvm:
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;
public class SimpleJVM {
private Stack<Integer> stack;
private Map<String, ClassObject> classLoader;
public SimpleJVM() {
this.stack = new Stack<>();
this.classLoader = new HashMap<>();
}
public ClassObject loadClass(String className) {
if (classLoader.containsKey(className)) {
return classLoader.get(className);
}
ClassObject classObj = new ClassObject(className);
classObj.addMethod("main", new int[]{0x10, 0x01, 0x00});
classLoader.put(className, classObj);
return classObj;
}
public void execute(String className) {
ClassObject classObj = loadClass(className);
int[] mainMethod = classObj.getMethod("main");
for (int instruction : mainMethod) {
switch (instruction) {
case 0x10:
stack.push(42);
break;
case 0x01:
System.out.println(stack.pop());
break;
case 0x00:
return;
default:
throw new RuntimeException("Unknown instruction: " + instruction);
}
}
}
public static void main(String[] args) {
SimpleJVM jvm = new SimpleJVM();
jvm.execute("MyClass");
}
}
class ClassObject {
private String name;
private Map<String, int[]> methods;
public ClassObject(String name) {
this.name = name;
this.methods = new HashMap<>();
}
public void addMethod(String methodName, int[] bytecode) {
methods.put(methodName, bytecode);
}
public int[] getMethod(String methodName) {
return methods.get(methodName);
}
}
че там по твоему старью, вайт1337)))