为啥 我这反射0,普通方法252- -,不是反射比普通方法运行慢吗
package com.a.cx; import java.lang.reflect.Method; /** * 测试反射机制的效率 */ public class TestReflectDemo2 { public static void main(String[] args) { try { //反射耗时 Class clazz = Class.forName("com.a.cx.Users"); //newInstance() 返回的是Object类型的结果,这里强制类型转换为Users类型 Users users = (Users)clazz.newInstance(); long reflectStart = System.currentTimeMillis(); Method method = clazz.getMethod("setUsername", String.class); for (int i=0;i<100000000;i++){ method.invoke(users,"李二狗"); } long refectEnd = System.currentTimeMillis(); //非反射方式耗时 long start = System.currentTimeMillis(); Users u = new Users(); for (int i=0;i<100000000;i++){ u.setUsername("oldlu"); } long end = System.currentTimeMillis(); System.out.println("反射执行时时间:"+(refectEnd-refectEnd)); System.out.println("非反射执行时时间:"+(end-start)); } catch (Exception e) { e.printStackTrace(); } } }
老师我想问一下,Set不是单例集合么 为什么能存键值对呢
老师为什么我调用不了呀
老师,这个FileInputStream和FileOutputStream关闭有先后顺序吗
package com.bjsxt; import java.io.*; import java.util.ArrayList; import java.util.List; public class ObjectStreamObjectTypeDemo { public void ObjectOutputStreamObjectTypeDem(List<Person> list) { ObjectOutputStream oos = null; List<Person> list1 = new ArrayList<>(); try { oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("J:\\课堂练习\\课程目录\\01.02JAVA入门与深化提高\\智能电话本项目实战\\电话簿.txt"))); for (int i = 0; i < list.size(); i++) { list1.add(list.get(i)); } oos.writeObject(list1); oos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (oos != null) { oos.close(); } } catch (Exception e) { e.printStackTrace(); } } } public List<Person> ObjectInputStreamObjectTypeDemo(List<Person> list) { ObjectInputStream ois = null; List<Person> ls = null; try { ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream("J:\\课堂练习\\课程目录\\01.02JAVA入门与深化提高\\智能电话本项目实战\\电话簿.txt"))); ls = (List<Person>) ois.readObject(); for(int i = 0;i<ls.size();i++){ list.add(ls.get(i)); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (ois != null) { ois.close(); } } catch (Exception e) { e.printStackTrace(); } } return list; } }
老师的课堂作业,我写了一个类,然后在Operate 类中加了两个方法,一个是在退出时调用类下的方法 将list 遍历到自定义的数组然后将数组序列化到本地文件,
public void exit(){ ObjectStreamObjectTypeDemo os = new ObjectStreamObjectTypeDemo(); os.ObjectOutputStreamObjectTypeDem(this.list); System.exit(0);; }
一个是初始化,运行项目时就调用类下的方法将文件的内容读到自定义数组 然后遍历给list,
/** * 传入电话薄 */ public void Initialize(){ ObjectStreamObjectTypeDemo os = new ObjectStreamObjectTypeDemo(); os.ObjectInputStreamObjectTypeDemo(this.list); }
不知道对不对,功能可以实现。就是我给的都是绝度路径,不知道怎么设定为相对路径,不知道制作成Jar包,能不能用
pw = new PrintWriter(socket.getOutputStream());
老师PrintWriter可以直接将字节流转为字符流,不需要借助转换流吗?
老师,我这个按照你的代码来打的,为啥运行了几次他都是先让生产者生产完了然后再让消费者去消费。代码我检查了几次了,应该没问题的,是什么原因呢?
老师请问为什么我这个代码打印输出,只显示013演示?
package com.bjsxt.tsetflie; import java.io.File; /** * 使用递归遍历目录和树结构 * @author Administrator * */ public class TestFile { public static void main(String[]args){ File f=new File("E\\013演示"); PrintFile(f,0); } public static void PrintFile(File file,int level){ //打印树桩结构的层次关系 for(int i=0;i<level;i++){ System.out.print("-"); } //输出目录或者文件的名称 System.out.println(file.getName()); if(file.isDirectory()){//判断File对象是否是目录 File [] listFiles=file.listFiles(); for(File temp:listFiles){ //自己调用自己 PrintFile(temp,level+1); } } } }
问题:子为父买烟案例中
控制台输出,有没有可能“儿子出门买烟”在“爸爸等待儿子买烟回 来”之前。
运行好几次,都是之后(就跟课堂上一样),但个人感觉,在前这种 可能也是有的哇,求解惑
public class JoinDemo { public static void main(String[] args) { System.out.println("爸爸和儿子买烟的故事"); Thread t = new Thread(new FatherThread()); t.start(); } } /** * 儿子买烟线程 */ class SonThread implements Runnable{ @Override public void run() { System.out.println("儿子出门买烟"); System.out.println("儿子买烟需要10分钟"); for (int i=1; i<11; i++){ System.out.println("第"+i+"分钟"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("儿子买烟回来了"); } } /** * 爸爸抽烟线程 */ class FatherThread implements Runnable{ @Override public void run() { System.out.println("爸爸想抽烟,发现烟抽完了"); System.out.println("爸爸让儿子去买一包红塔山"); Thread t = new Thread(new SonThread()); t.start(); System.out.println("等待儿子买烟回来"); try { t.join(); } catch (InterruptedException e) { e.printStackTrace(); System.out.println("爸爸出门找儿子"); System.exit(1); } System.out.println("爸爸高兴的接过烟,并把零钱给了儿子"); } }
老师:
感觉还是分不清红黑树的节点怎么判断他是黑色还是红色,红色节点的子节点必须是黑色,那么怎么判断一个节点是不是红色呢?
老师
问题1:请问怎么理解这两个User类中的serialVersionUID必须是相同的?,
问题2:这个唯一性标识工作的原理过程是什么?
l老师我读不懂这几行代码,它这是在做什么鸭?老师能不能解释一下
T02_HowToCreateThread { MyThread Thread{ (){ System..println ()} } MyRun Runnable{ (){ System..println ()} } MyCall Callable<String> { String (){ System..println ()} } (String[] args) { MyThread ().start ()Thread (MyRun()).start()Thread(()->{ System..println ()}).start ()Thread t = Thread(FutureTask<String> (MyCall() ) )t.start ()ExecutorService service= Executors.()service.execute ( ()->{ System..println ()} )service.shutdown ()} }
老师,可以发一下您上课时看的那个jdk1.8的中文api吗
老师,调用这个pool.submit()方法,是线程池已经执行了吗?还是在调用了f.get()时线程池才执行?
参数泛型类型后面为什么要加一个name?name是表示什么?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637