Java基础每日10题——第四天
2018-03-23 08:06
453 查看
1.Java中ArrayList和LinkedList区别
总结的说:当操作是在一列数据后面添加或删除数据时,而不是在前面或者中间,并且需要随机访问其中的元素时,使用ArrayList会提供比较好的性能;
当你的操作是在一列数据的前面或中间添加或删除数据,并且按照顺序访问其中的元素时,就应该使用LinkedList了
对比来说的话,参考https://blog.csdn.net/hantiannan/article/details/5447567
2.用两个队列模拟堆栈结构
参考https://blog.csdn.net/wangyangkobe/article/details/5910362到时我再用java实现一下
3.Collection和Map的集成体系
参考我写过的这篇文章https://blog.csdn.net/tryandfight/article/details/790490884.Map中的key和value可以为null吗
对于HashMap来说是可以的,对于HashTable来说是不可以的,对应HashMap的值的时候,如果希望输出的结果跟我们输入的结果一致的话,可以用API列名的ListOrderedMap来满足要求。5.对Java中反射的理解
参考知乎上的理解https://www.zhihu.com/question/243042896.写一个ArrayList的动态代理类
public class ArrayList的动态代理类{ static class ArrayListProxy { /** * 定义一个返回代理对象的类 */ public MyArrayListInterface getArrayListProxy(){ MyArrayListInterface myArrayListProxy = (MyArrayListInterface) Proxy.newProxyInstance(MyArrayListInterface.class .getClassLoader(), new Class[]{ MyArrayListInterface.class }, new InvocationHandler() { //定义一个myArrayList对象 private List myArrayList = new MyArrayList(); @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { //定义记住此时时间的变量 long start = System.currentTimeMillis(); //执行al的对于方法 Object objReturn = method.invoke(myArrayList,proxy); //输出被调用方法执行所需时间 System.out.println(method.getName()+"运行时间:"+(System.currentTimeMillis()-start) +"毫秒"); //返回被调用方法执行结果 return objReturn; } }); return myArrayListProxy; } } } /** * 定义一个实现MyArrayListInterface的类MyArrayList */ class MyArrayList extends ArrayList implements MyArrayListInterface{ @Override public boolean hasNext() { return false; } @Override public Object next() { return null; } } /** * 定义一个接口,同时继承ArrayList类实现的全部接口 */ interface MyArrayListInterface<E> extends Serializable,Cloneable,Iterator<E>, Collection<E>,List<E>,RandomAccess{ }
这里对原始的ArrayList加上了一个计算运行时间的方法,注意前置增强和后置增强
7.JVM的内存结构和内存分配
参考http://www.importnew.com/19085.html 好文章8.Java中引用类型都有哪些?
参考http://www.importnew.com/20468.html9.heap(堆)和stack(栈)有什么区别
参考https://blog.csdn.net/pt666/article/details/7087641010.解释内存中的堆、栈和方法区的用法
参考https://www.cnblogs.com/dangjunhui/p/5473787.html相关文章推荐
- Java基础每日10题——第三天
- Java基础每日10题——第五天
- Java基础每日10题——第一天
- 黑马程序员--网络编程--java学习日记10(基础知识)
- Java读书笔记10 图形程序设计基础
- Java基础学习第四天——选择与循环结构
- Java基础知识强化之IO流笔记10:File类输出指定目录下指定后缀名的文件名称案例(File类的文件过滤器方法改进list( FilenameFilter ff))
- java基础每日学习20131029--序列化
- 黑马程序员-(10)Java基础之面向对象(五)内部类
- 黑马程序员—10—java基础:有关多线程安全的学习笔记和学习心得体会
- java基础问题10
- 黑马程序员_java编程基础10面向对象
- I010-黑马程序员_毕向东_Java基础视频教程第01天-10-注释
- java===java基础学习(10)---对象构造
- No_16_0223 Java基础学习第四天
- IT十八掌作业_java基础第四天_复习运算符、进制转化和数组
- [每日一题]Java 基本数据类型基础面试题
- Java基础入学考blog-10
- (每日一转) 黑马程序员----跟着老毕学Java之基础篇(一)
- java基础10