黑马程序员技术交流社区
标题: 【阳哥专栏】技术分活动第13期 [打印本页]
作者: 王震阳老师 时间: 2014-8-23 10:40
标题: 【阳哥专栏】技术分活动第13期
本帖最后由 就业指导-王震阳老师 于 2014-8-24 12:18 编辑
声明:以后的技术分活动中的技术题,越来越偏向于数据结构、算法、JVM、多线程、高并发等,因此对于基础的要求也是更高的。
活动目的:练习javaSE知识。
活动奖励:最高3个技术分
结束时间:2014年8月29日,过期提交可能获取不到技术分!
代码提交要求:将自己的源代码压缩然后提交,提交的时候设置为管理员权限,以其他方式提交的答案无效。上交源码的时候不需要将整个工程项目压缩,只需将用到的源文件压缩即可。
题目类型:JavaSE 自定义类加载器。
难易程度:较难
题目:老规矩,回帖领题
往期技术分题:【阳哥专栏】技术分活动第14期
http://bbs.itheima.com/thread-139429-1-1.html
【阳哥专栏】技术分活动第12期
http://bbs.itheima.com/thread-138162-1-1.html
【阳哥专栏】技术分活动第11期
http://bbs.itheima.com/thread-137632-1-1.html
【阳哥专栏】技术分活动第10期
http://bbs.itheima.com/thread-136866-1-1.html
【阳哥专栏】技术分活动第9期
http://bbs.itheima.com/thread-136465-1-1.html
【阳哥专栏】技术分活动第8期
http://bbs.itheima.com/thread-135781-1-1.html
【阳哥专栏】技术分活动第7期
http://bbs.itheima.com/thread-134321-1-1.html
【阳哥专栏】周末技术分活动第6期
http://bbs.itheima.com/thread-132893-1-1.html
【阳哥专栏】周末技术分活动第5期
http://bbs.itheima.com/thread-129859-1-1.html
【阳哥专栏】周末技术分活动第4期
http://bbs.itheima.com/thread-128854-1-1.html
【阳哥专栏】周末技术分活动第3期
http://bbs.itheima.com/thread-127326-1-1.html
【阳哥专栏】周末技术分活动第2期
http://bbs.itheima.com/thread-125800-1-1.html
【阳哥专栏】周末技术分派送活动第1期
http://bbs.itheima.com/thread-123979-1-1.html
作者: java_dream 时间: 2014-8-23 11:07
我又来领题了
作者: justin1258 时间: 2014-8-23 11:30
没抢到沙发。。。。
作者: 唕 时间: 2014-8-23 11:44
看看题:sleepy:
作者: ddewym123 时间: 2014-8-23 11:44
本帖最后由 ddewym123 于 2014-8-24 21:02 编辑
请查收!
-
-
MyClassLoader.rar
1.38 KB, 阅读权限: 200, 下载次数: 1
作者: weity 时间: 2014-8-23 11:59
看看~~拿题领分
作者: justin1258 时间: 2014-8-23 12:11
交题喽~~
-
-
MyClassLoaderDemo.zip
1018 Bytes, 阅读权限: 200, 下载次数: 1
作者: 迷失的独白 时间: 2014-8-23 12:16
本帖最后由 迷失的独白 于 2014-8-25 18:35 编辑
羊哥请查收!!!
-
-
ClassLoaderTest.rar
1.32 KB, 阅读权限: 200, 下载次数: 1
作者: 李彦来 时间: 2014-8-23 12:28
看一下下
作者: 潘多拉 时间: 2014-8-23 13:23
领题喽领题喽,滔哥万岁,滔哥一生幸福
作者: nadax 时间: 2014-8-23 14:04
我是来领题的
作者: yqj 时间: 2014-8-23 14:38
看看题!
作者: 赵连明 时间: 2014-8-23 14:42
看看来拿分了
作者: wenjd0000 时间: 2014-8-23 14:52
看下题目能做不
作者: 孙小亚 时间: 2014-8-23 19:35
阳哥真赞!!
作者: Baiye 时间: 2014-8-23 19:40
先拿题 看看
作者: java_dream 时间: 2014-8-23 19:44
交题啦!
-
-
test.rar
2.23 KB, 阅读权限: 200, 下载次数: 1
自定义类加载器
作者: 朱冰18189949658 时间: 2014-8-23 19:59
第三次领题了
作者: yqj 时间: 2014-8-23 20:04
做完了,交题!
-
-
ClassLoaderTest.zip
1.27 KB, 阅读权限: 200, 下载次数: 1
作者: lhtwm1 时间: 2014-8-23 21:03
那初学者不是 完蛋了
作者: SmallRooker 时间: 2014-8-23 21:21
本帖最后由 SmallRooker 于 2014-8-25 22:18 编辑
老师交题,虽然有些不明白 ,还有一些是抄袭了本吧里的代码。写好几遍了。已经记住原理了,现在正在刻苦学习这方面知识!加油!
-
-
cn.test.rar
7.02 KB, 阅读权限: 150, 下载次数: 2
作者: 孙小亚 时间: 2014-8-23 21:24
来提交啦!我是写了三个java文件,放在一个文件夹里面,阳哥辛苦了。。。
代码 测试结果.zip
(6.41 KB, 下载次数: 1)
作者: tonglingwang 时间: 2014-8-23 21:38
阳哥,来领题
作者: 姠佐メ亾佑つ 时间: 2014-8-23 21:46
看看 什么题目
作者: ︶ㄣ你眼中的倒 时间: 2014-8-23 21:59
顶!!!!!!!!!!!!!
作者: MeryStyle 时间: 2014-8-23 22:55
板凳,领题~!
作者: 赵连明 时间: 2014-8-23 23:05
做这个把自己反射的思路都理清了
-
-
1111111.zip
1.68 KB, 阅读权限: 200, 下载次数: 1
作者: huangxuanheng 时间: 2014-8-23 23:24
挑战来了
作者: 八零、玖羚 时间: 2014-8-23 23:29
回帖拿题,哈哈
作者: 刘亚东 时间: 2014-8-24 01:21
回帖领题
作者: 依然超级赛亚人 时间: 2014-8-24 07:01
最好了准备,领一份题。
作者: 冒牌高手 时间: 2014-8-24 07:18
明知道自己不会也得看看题
作者: 龙飞九天 时间: 2014-8-24 08:17
来看看,领题
作者: cat73 时间: 2014-8-24 09:30
看看题目 这次不要在错过了!!!!!!!!!!
作者: 萍水相逢 时间: 2014-8-24 09:31
看一下!
作者: 画了一个圈儿 时间: 2014-8-24 10:34
回帖 求题
作者: Wokno 时间: 2014-8-24 11:08
看看。。。。。。。。。。。
作者: 喜爱 时间: 2014-8-24 11:10
嘻嘻。。。。。来领了哦!
作者: Wokno 时间: 2014-8-24 11:13
请查收!
-
-
itheima.classloader.zip
6.04 KB, 阅读权限: 200, 下载次数: 1
作者: cat73 时间: 2014-8-24 12:37
本帖最后由 cat73 于 2014-8-27 22:58 编辑
不知道这个可以不- -
test.zip
(11.93 KB, 下载次数: 1)
以上文件使用自定义的类加载器实现了加载经过Base64编码后的类
并且附带了编译一个类并Base64编码的代码
需要在eclipse导入才能正常的进行编译(主要是文件名的问题...)
作者: vodart 时间: 2014-8-24 15:30
第一次领题。
作者: 3040789425 时间: 2014-8-24 18:09
看题
作者: Justfeeling 时间: 2014-8-24 18:26
只为头排,努力抢沙发!
作者: bbdeyouxang 时间: 2014-8-25 10:21
回帖取题
作者: 菜鸟一号 时间: 2014-8-25 13:43
回复看看题目
作者: 我要淡定。 时间: 2014-8-25 18:19
赞一个!
作者: 小乖乖灬浩歌 时间: 2014-8-25 22:31
这2期的技术分活动相距很近哦
作者: 黑马黄武先 时间: 2014-8-26 09:14
有这活动真好
作者: 丸子 时间: 2014-8-27 09:46
领题了。。。。
作者: 正在请求链接 时间: 2014-8-27 11:52
没沙发,板凳好硬
作者: 旭辉lin 时间: 2014-8-27 21:12
我来领题了。
作者: 小乖乖灬浩歌 时间: 2014-8-27 21:57
不得不说 做这个题目之前 我听都没有听说过ClassLoader 建议阳阳哥每次当期技术分活动结束以后 放开相应附件的下载权限 这样大家可以观摩学习下
-
-
src.zip
2.75 KB, 阅读权限: 200, 下载次数: 1
ClassLoader技术分
作者: 八零、玖羚 时间: 2014-8-28 00:48
学完,敲完,递交完,洗洗睡了
-
-
MyClassLoader.rar
1.54 KB, 阅读权限: 200, 下载次数: 1
类加载器、反射
作者: 逸晨 时间: 2014-8-28 10:20
领题看看。
作者: 王震阳老师 时间: 2014-8-28 13:30
可以:
- package com.itheima.loadertest;
- /**
- * 自定义一个类加载器,并且通过该类加载器加载一个类源码,并且运行改类中的一个方法。
- * @author Sunzy
- *
- */
- import java.io.*;
- public class MyClassLoader extends ClassLoader{
- private String name;
- // 通过这个构造方法生成的类加载器,它的父加载器是系统类加载器
- public MyClassLoader(String name) {
- super();
- this.name = name;
- }
- // 通过这个这个构造方法生成的类加载器,该加载器的父加载器是loader,如果为空,则父加载器为根加载器
- public MyClassLoader(String name, ClassLoader loader) {
- super(loader);
- this.name = name;
- }
- // 要重写findclass这个方法
- @Override
- protected Class<?> findClass(String name) throws ClassNotFoundException {
- byte[] data = null;
- FileInputStream fis = null;
- try {
- fis = new FileInputStream("E:\\workspace_Android\\DailyTest1\\bin\\com\\itheima\\loadertest\\"+name+".class");
- } catch (FileNotFoundException e) {
- System.out.println(e);
- }
- ByteArrayOutputStream abos = new ByteArrayOutputStream();
- int ch = 0;
- try {
- while ((ch=fis.read()) != -1) {
- abos.write(ch); //把字节一个一个写到输出流中
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- data = abos.toByteArray(); //把输出流中的字节弄成一个字节数组
- return this.defineClass("com.itheima.loadertest."+name,data, 0, data.length,null);
- }
-
- public String toString()
- {
- return this.name;
- }
-
- }
复制代码
作者: 王震阳老师 时间: 2014-8-28 13:31
能学到东西就行,不过你怎么把文件解压的代码提交了,这个模块提交的自定义类加载器呀?
作者: 王震阳老师 时间: 2014-8-28 13:33
挺好:
作者: 王震阳老师 时间: 2014-8-28 13:34
可以:
- package com.itheima;
- import java.io.BufferedInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- public class ClassLoaderTest {
- public static void main(String[] args)throws Exception {
- String loadDir = "";//可以加载其他文件夹的类文件,但下边的代码需要修改,且只能执行类文件的父类的方法
- String loadClazz = "com.itheima.ClassLoaderAttachment";
- Class clazz = new MyClassLoader(loadDir).loadClass(loadClazz);
- ClassLoaderAttachment cla = (ClassLoaderAttachment)clazz.newInstance().getClass().getConstructor().newInstance();
- System.out.println(cla.toString());
- cla.fun();
- }
- }
- class MyClassLoader extends ClassLoader{
- private String loadDir;
- private final String fileType = ".class";
- public MyClassLoader() {
- }
-
- public MyClassLoader(String loadDir) {
- this.loadDir = loadDir;
- }
-
- protected Class<?> findClass(String name) {
- byte[] bytes = this.loadClassData(name);
- return defineClass(null, bytes, 0, bytes.length);
- }
-
- private byte[] loadClassData(String name) {
- InputStream in = null;
- byte[] data = null;
- ByteArrayOutputStream baos = null;
-
- try {
- name = name.replace(".", "\\");
- in = new BufferedInputStream(new FileInputStream(new File(loadDir + name + fileType)));
- baos = new ByteArrayOutputStream();
- int ch = 0;
- while (-1 != (ch = in.read())) {
- baos.write(ch);
- }
- data = baos.toByteArray();
- } catch (Exception e) {
-
- e.printStackTrace();
- } finally {
- try {
- in.close();
- } catch (IOException e1) {
- e1.printStackTrace();
- } finally {
- try {
- baos.close();
- } catch (IOException e2) {
- e2.printStackTrace();
- }
- }
- }
- return data;
- }
- }
复制代码
作者: 王震阳老师 时间: 2014-8-28 13:35
good:
- package test;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.lang.reflect.Method;
- public class CompileClassLoader extends ClassLoader{
- //读取一个文件的内容(即Class文件,如Hello.class)
- private byte[] getBytes(String filename) throws IOException{
- File file = new File(filename);
- long len = file.length();
- byte[] raw = new byte[(int)len];
- FileInputStream fis = null;
- try{
- fis = new FileInputStream(file);
- //一次读取Class文件的全部二进制数据
- int r = fis.read(raw);
- if(r != len)
- throw new IOException("无法读取全部文件:"+r+"!="+len);
- return raw;
- }catch(IOException ioe){
- throw new RuntimeException("读取文件失败!");
- }finally{
- try{
- if(fis != null)
- fis.close();
- }catch(IOException ioe){
- throw new RuntimeException("读取流关闭失败!");
- }
- }
- }
-
- //定义编译指定Java源文件的方法
- private boolean compile(String javaFilename) throws IOException{
- System.out.println("CompileClassLoader:正在编译"+javaFilename+"...");
- //调用系统的Javac命令
- Process p = Runtime.getRuntime().exec("javac "+javaFilename);
- try{
- //其它线程都等待这个线程完成
- p.waitFor();
- }catch(InterruptedException ie){
- ie.printStackTrace();
- }
- //获取javac线程的退出值
- int ret = p.exitValue();
- //返回编译是否成功
- return ret == 0;
- }
-
- //重写ClassLoader的findClass方法
- protected Class<?> findClass(String name) throws ClassNotFoundException{
- Class clazz = null;
- //将包路径中的点(.)替换成斜线(/)
- String fileStub = name.replace(".", "/");
- String javaFilename = fileStub+".java";
- String classFilename = fileStub+".class";
- File javaFile = new File(javaFilename);
- File classFile = new File(classFilename);
-
- //当指定Java源文件存在,且Class文件不存在,
- //或者java源文件的修改时间比Class文件的修改时间更晚,重新编译
- if(javaFile.exists() &&(!classFile.exists() || javaFile.lastModified()>classFile.lastModified())){
- try{
- //如果编译失败,或者该Class文件不存在
- if(!compile(javaFilename) || !classFile.exists()){
- throw new ClassNotFoundException("=============ClassNotFoundException:"+javaFilename);
- }
- }catch(IOException ioe){
- ioe.printStackTrace();
- }
- }
- //如果Class文件存在,系统负责将该文件转化成Class对象
- if(classFile.exists()){
- try{
- //将class文件的二进制数据读入数组
- byte[] raw = getBytes(classFilename);
- //调用ClassLoader的defineClass方法将二进制数据转换成Class对象
- clazz = defineClass(name, raw, 0, raw.length);
- }catch(IOException ioe){
- ioe.printStackTrace();
- }
- }
- //如果clazz为null,表名加载失败,则抛出异常
- if(clazz == null){
- throw new ClassNotFoundException(name);
- }
- return clazz;
- }
-
- //定义主方法
- public static void main(String[] args) throws Exception{
- //如果运行该程序(自定义类加载器CompileClassLoader)时没有参数,即没有目标类
- if(args.length<1){
- System.out.println("缺少目标类,请按如下格式运行Java源文件:");
- System.out.println("java CompileClassLoader ClassName");
- return;
- }
- //第一个参数是需要运行的类
- String progClass = args[0];
- //剩下的参数将作为运行目标类是的参数
- //将这些参数复制到一个新数组中
- String[] progArgs = new String[args.length-1];
- System.arraycopy(args, 1, progArgs, 0, progArgs.length);
- CompileClassLoader ccl = new CompileClassLoader();
- //加载需要运行的类
- Class<?> clazz = ccl.loadClass(progClass);
- //获取需要运行的类的主方法
- Method main = clazz.getMethod("main", (new String[0]).getClass());
- Object[] argsArray = {progArgs};
- main.invoke(null, argsArray);
- }
- }
复制代码
作者: 王震阳老师 时间: 2014-8-28 13:36
很好:
- package cn.test;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.InputStream;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Method;
- /*
- * 为了方便将所有的类写在了个java文件中
- * MyClassLoader为自定义的ClassLoader
- * TestClass为用来测试类
- * ClassLoaderTest为测试类
- */
- /**
- * 自定义的ClassLoader
- */
- class MyClassLoader extends ClassLoader {
- private String rootDir;
- public MyClassLoader(String rootDir) {
- this.rootDir = rootDir;
- }
- @Override
- protected Class<?> findClass(String name) throws ClassNotFoundException {
- byte[] b = getClassData(name);
- return defineClass(name, b, 0, b.length);
- }
-
- // 读取class字节码为byte数组
- private byte[] getClassData(String name) {
- if (name == null) {
- return null;
- } else {
- //将name中的"."替换为"/"
- name = name.replace(".", "/");
- name=name+".class";
- try {//将类的class文件读取为byte数组
- InputStream in = new FileInputStream(new File(new File(rootDir), name));
- ByteArrayOutputStream out = new ByteArrayOutputStream();
-
- byte[] b = new byte[1024];
- int len = 0;
- while ((len = in.read(b)) != -1) {
- out.write(b, 0, len);
- }
- return out.toByteArray();
-
- } catch (Exception e) {
- throw new RuntimeException("读取class文件失败!");
- }
- }
- }
- }
- /**
- * 用来测试的类
- */
- class TestClass{
- private void say() {
- System.out.println("hello world!");
- }
- }
- /**
- *
- *测试用自定义的ClassLoad读取TestClass类并运行say()方法
- *需要用到反射技术
- */
- public class ClassLoaderTest {
- public static void main(String[] args) throws Exception {
- //获取当前类的父地址,由于Class.getResource("")获取的是一个URL,需要切除"file:/"前缀
- String rootDir=ClassLoaderTest.class.getClassLoader().getResource("").toString();
- rootDir=rootDir.substring("file:/".length());
- // System.out.println(rootDir);
- //用自定义的ClassLoad读取TestClass类
- MyClassLoader classLoader=new MyClassLoader(rootDir);
- Class<?> clazz=classLoader.findClass("cn.test.TestClass");
-
- //实例化clazz
- Constructor<?> c=clazz.getDeclaredConstructor();
- if(!c.isAccessible()){//暴力反射
- c.setAccessible(true);
- }
- Object o=c.newInstance();
- //获取clazz的say()方法,并执行
- Method sayMethod=clazz.getDeclaredMethod("say");
- if(!sayMethod.isAccessible()){//暴力反射
- sayMethod.setAccessible(true);
- }
- sayMethod.invoke(o); //打印成功:hello world!
- }
- }
复制代码
作者: ximi 时间: 2014-8-28 14:02
领题了,谢谢了
作者: ximi 时间: 2014-8-28 16:35
阳哥,文件已经已经提交,辛苦啦:D
-
-
ClassLoaderTest.zip
1.53 KB, 阅读权限: 200, 下载次数: 1
作者: 旭辉lin 时间: 2014-8-28 20:39
请查收!
-
-
Test3.zip
9.63 KB, 阅读权限: 200, 下载次数: 3
作者: 王震阳老师 时间: 2014-8-28 20:57
挺好:
- package classload;
- /**
- * @author:
- * @date:
- * @description:自定义ClassLoader
- */
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- public class CompileClassLoader extends ClassLoader {
- // 读入源文件转换为字节数组
- private byte[] getSource(String filename) {
- File file = new File(filename);
- int length = (int) file.length();
- byte[] contents = new byte[length];
- FileInputStream fis = null;
- try {
- fis = new FileInputStream(file);
- int r = fis.read(contents);
- if (r != length) {
- throw new IOException("IOException:无法读取" + filename);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- if (fis != null) {
- fis.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return contents;
- }
- // 编译文件
- public boolean compile(String javaFile) {
- System.out.println("正在编译" + javaFile);
- int ret = 0;
- try {
- // 调用系统命令编译文件
- Process process = Runtime.getRuntime().exec("javac " + javaFile);
- process.waitFor();
- ret = process.exitValue();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return ret == 0;
- }
- // 重写findclass
- @Override
- protected Class<?> findClass(String name) throws ClassNotFoundException {
- Class<?> clazz = null;
- // 将文件的.替换为/,例如com.lyl.reflect.Reflect被替换为com/lyl/reflect/Reflect
- String fileStub = name.replace(".", "/");
- // java源文件名
- String javaFileName = fileStub + ".java";
- // 编译后的class文件名
- String classFileName = fileStub + ".class";
- File javaFile = new File(javaFileName);
- File classFile = new File(classFileName);
- // 当指定JAVA源文件存在,且class文件不存在,
- // 或者java源文件的修改时间比class文件修改时间晚则重新编译
- if (javaFile.exists()
- && (!classFile.exists() || javaFile.lastModified() > classFile
- .lastModified())) {
- // 如果编译失败,或者class文件不存在
- if (!compile(javaFileName) || !classFile.exists()) {
- throw new ClassNotFoundException("ClassNotFoundException:"
- + javaFileName);
- }
- }
- // 如果CLASS文件按存在,系统负责将该文件转换成Class对象
- if (classFile.exists()) {
- byte[] raw = getSource(classFileName);
- // 将ClassLoader的defineClass方法将二进制数据转换成Class对象
- int divindex = name.indexOf("\\");
- String javafilename = null;
- // 如果是某个盘里面的文件,要去掉文件的盘符
- if (divindex != -1) {
- javafilename = name.substring(divindex + 1, name.length());
- }
- // 将字节数组转换为class实例
- clazz = defineClass(javafilename, raw, 0, raw.length);
- }
- // 如果clazz为null,表明加载失败,则抛出异常
- if (clazz == null) {
- throw new ClassNotFoundException(name);
- }
- return clazz;
- }
- // 定义主方法
- public static void main(String[] args) throws ClassNotFoundException,
- SecurityException, NoSuchMethodException, IllegalArgumentException,
- IllegalAccessException, InvocationTargetException {
- // 如果运行该程序没有参数,则没有目标类
- if (args.length < 1) {
- System.out.println("缺少运行的目标类,请按如下格式运行源文件");
- System.out.println("java CompileClassLoader ClassName");
- System.exit(0);
- }
- // 第一个参数为需要运行的类
- String proClass = args[0];
- // 剩下的参数将作为目标类得参数
- String[] proArgs = new String[args.length - 1];
- System.arraycopy(args, 1, proArgs, 0, proArgs.length);
- CompileClassLoader ccl = new CompileClassLoader();
- // 加载需要运行的类
- Class<?> clazz = ccl.loadClass(proClass);
- Method main = clazz.getMethod("main", (new String[0]).getClass());
- Object[] argsArray = { proArgs };
- main.invoke(null, argsArray);
- }
- }
复制代码
作者: Fengs 时间: 2014-8-29 01:56
恩恩额!
作者: ql627666537 时间: 2014-8-29 13:34
回复回复 领提领题
作者: yingsun 时间: 2014-8-30 21:37
有分送啦!
作者: fantacyleo 时间: 2014-9-1 01:04
虽然错过了,还是看看题目吧
作者: lvc 时间: 2014-9-1 03:50
看看。。。
作者: quq947115876 时间: 2014-9-1 21:27
领题看看
作者: yingsun 时间: 2014-9-2 02:56
看看学习一下。
作者: Faith_Yee 时间: 2014-9-9 10:59
回帖领题~!
作者: 21Guns。 时间: 2014-9-10 03:10
吊啊. 我也想看看题...
作者: 好听就好 时间: 2014-9-13 22:46
看看以前的题目,感受下
作者: 一苇芦江 时间: 2014-9-17 10:23
新手来领题了
作者: daoqin 时间: 2014-9-17 12:12
刚学了这个,来试试
作者: daoqin 时间: 2014-9-17 12:19
做完了,请查收
-
-
ClassLoad.rar
1.16 KB, 阅读权限: 150, 下载次数: 1
作者: 就是现在 时间: 2014-9-18 14:17
求技术分
作者: 就是现在 时间: 2014-9-18 19:32
黑马程序员训练营的入学这么严格, 难怪黑马程序员训练营敢喊不1万就业不给学费的口号,敢先培训后付款。容易得来的东西不懂得珍惜!
-
-
src.rar
1.68 KB, 阅读权限: 200, 下载次数: 1
求技术分
作者: Huberry 时间: 2014-9-20 02:27
回帖领题
作者: chensc 时间: 2014-9-21 12:18
学习学习!
作者: 追逐我的明天 时间: 2014-9-21 21:29
领题来了
作者: 炎星辰 时间: 2014-9-23 18:57
哇塞
作者: 炎星辰 时间: 2014-9-23 18:58
看看题目
作者: chensc 时间: 2014-9-23 19:54
学习学习!
作者: 遮天 时间: 2014-9-25 18:38
看下题目.........
作者: 油油油菜花 时间: 2014-10-9 10:56
加油!!
作者: sugar 时间: 2014-10-12 21:02
来领题目啦
作者: palex 时间: 2014-11-11 03:24
看看题目
作者: ttbx_刘 时间: 2014-11-20 03:19
领题!领题!领题!!!
作者: 木乃伊 时间: 2014-12-11 09:05
好变态,才刚刚开始学啊,前面的题目都不会:lol
作者: 祁祯祥 时间: 2014-12-14 19:23
回帖领题13
作者: 王震阳老师 时间: 2014-12-15 12:03
加油。
作者: lby369 时间: 2014-12-18 18:30
领题来了,看看这个会不会简单点儿
作者: 风祭将o 时间: 2014-12-28 09:03
这个知识点比较模糊
作者: Eagle 时间: 2015-1-4 13:45
类加载器是反射部分的,应该可以做
作者: gxb2459 时间: 2015-1-9 20:21
回帖领题
作者: sjzxst2 时间: 2015-1-9 23:16
看看较难的题啥样!
作者: zhouli_2014 时间: 2015-1-13 08:43
领以前的题
作者: gxb2459 时间: 2015-1-17 23:17
回帖领题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |