有没有写过多线程的代码
1.实现多线程的方法包括哪几种,那一种更好,为什么?
2.hashcode,equals方法的重写原因
3.HashTable和HashMap的区别,HashMap中的数据如何全部遍历出来?
4.String类可不可以继承:String类是final类故不可以继承。
5.Java的内存分配,堆的划分,jvm原理
6.GC的原理
7.ArrayList和LinkedList的区别
8.Shell的命令  grep  scp   
9.Read/Writer和InputStream/OutputStream的区别?
10.实现多线程同步的方法有几种?
11.oracle的内存结构PS:知道多少回答多少,分不多,互相学习

解决方案 »

  1.   

    1.有三种:
    继承Thread类
    实现Runnable接口
    使用Timer和TimerTask组合
    其中实现Runnable接口比较好,一个类可以实现任意多个接口,所以该种实现方式在实际实现时的通用性要比其他的方式好一些,比较灵活。
    7.ArrayList和LinkedList比较:
    它们都是具有相同接口和外部行为的简单的序列,但它们对某些操作所花费的代价却是天壤之别。在ArrayList中,随机访问元素是一个花费固定时间的操作;但是,对LinkedList来说,随机选取元素在列表中的移动,这种代价是高昂的,访问越靠近表尾的元素,花费的时候越长。而另一方面,如果想在序列中间插入一个元素,LinkedList的开销却比ArrayList要小。
    (ArrayList适于随机访问,LinkedList适于插入操作)
      

  2.   

    1.实现多线程的方法包括哪几种,那一种更好,为什么?
    我只知道thread 和runnable两种
    2.hashcode,equals方法的重写原因
    equals是用来比较的 如果你不重写的话默认只是继承object 的实现 和==没区别 也就是说他们比的事指针地址java的说话就是比较引用而不比较引用指向的实际变量,换一种情况,如果比较的是两个自定义的类那么实际上我们相比较的应该是类的属性,自己实现一下就ok了 . hashcode 据本人理解是因为散列表的原因,散列表是通过对象的值进行散列运算产生结果作为一个数组的索引保存这个对象,对象的值相同的情况下(equals相同),hashcode肯定相同了,因为是用一个字符(这里只是打比方)同一种算法计算出来的.
    3.HashTable和HashMap的区别,HashMap中的数据如何全部遍历出来?
    其中一个实现了同步 我忘记是哪一个了,便利的方法就是获得hashmap的keyset 然后iterator出来每一个索引在hashmap.get()就行了
    4.String类可不可以继承:String类是final类故不可以继承。5.Java的内存分配,堆的划分,jvm原理
    内存分配有代码区 常量区 局部变量区 new的区域(怎么称呼忘记了)
    6.GC的原理
    就是每new一次 虚拟机会有一个对象引用数的累加值,当累加值=0时进行内存释放,当然这也不是实时的 好像优先级不高7.ArrayList和LinkedList的区别
    这个就如楼上说的.
    8.Shell的命令 grep scp   
    没用过linux
    9.Read/Writer和InputStream/OutputStream的区别?
    一个是字符流 一个是字节流
    10.实现多线程同步的方法有几种?
    synchronized和那个wait notify并用两种方法吧
    11.oracle的内存结构
    这个没研究过 就做过分区优化 索引之类的
      

  3.   

    只有当一个实例等于它本身的时候,equals()才会返回true值。此时比较的是两个引用是否指向内存中的同一个对象,也可以称做是否实例相等。而我们在使用equals()来比较两个指向值对象的引用的时候,往往希望知道它们逻辑上是否相等,而不是它们是否指向同一个对象。在这样的情况下, 如果超类也没有重写equals()以实现期望的行为,这时我们就需要重写equals方法。而且这样做更好的也使得这个类的实例可以被用做映射表(map)的键,或者集合(set)的元素,并使映射表或者集合表现出预期的行为。
    覆盖了equals方法后 为了使得两个equals后返回true的对象能够得到相同的hashCode ,即一致性  就得重写hashCode方法...
      

  4.   

    HashMap  和 Hashtable 区别:
    Hashtable 是线程安全的 而HashMap  是非线程安全的  故而HashMap  只适合单个线程的情况
    除此之外:HashMap允许讲null作为entry的key或者value  但是 Hashtable则不可...
      

  5.   

    1.多线程还有一个接口Callable
    3.(The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls)API原话,HashMap大致等于Hashtable,除了HashMap 是非同步的和允许空(这里的空是指既允许空键也允许空值)
      

  6.   

    1.多线程还有一个接口Callable
    3.(The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls)API原话,HashMap大致等于Hashtable,除了HashMap 是非同步的和允许空(这里的空是指既允许空键也允许空值)
      

  7.   

    个人觉得hashcode方法就是为了实现在collection接口下的每个集合类中的元素散列码的生成,可以作为唯一的索引值来进行对HashMap和HashSet中的值的插入判断,不过这种方法是为了提高相对的性能么,还是必须要这样做呢。
      

  8.   

    这个问题 怎么说那.. 起初设计hashcode是为了提高性能 但是到后来考虑到要统一  就加上了 arraylist就没必要使用散列值 因为数组的买一个元素之间的内存距离是相等的 cpu需要知道第几个位置即可
      

  9.   


    6.GC的原理
    当没有外部的reference指向一个object的时候,这个object就可以被gc了。但是何时gc由jvm决定。
      

  10.   

    建议你下载一个“java面试大全”文档!
      

  11.   

    实现锁的方式还有好几种,例如Java5里引入的可重入式线程,使用ReadLocker,WriterLocker,ReadWriterLocker等实现锁的机制
      

  12.   

    11:分为SGA,PGA,UGA
    共享服务器模式的话UGA在SGA中分配,专用服务器连接UGA在SGA中分配
      

  13.   

    11:分为SGA,PGA,UGA
    更正一下:共享服务器模式的话UGA在SGA中分配,专用服务器连接UGA在PGA中分配
      

  14.   

    1.实现多线程的方法包括哪几种,那一种更好,为什么?常用的两种:继承自thread  实现runnable
    2.hashcode,equals方法的重写原因
    一个hashcode可能对应多个对象,即equals不同,hashCode可能相同。
    3.HashTable和HashMap的区别,HashMap中的数据如何全部遍历出来?转成set   HashSet<Entity<E,E>>  然后 Iterator 。 getkey,getValue()拿到
    4.String类可不可以继承:
    String类是final类故不可以继承。5.Java的内存分配,堆的划分,jvm原理
    内存就三块,堆,栈,方法区6.GC的原理
    对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是可达,哪些对象是不可达的.当GC确定一些对象为不可达时,GC就有责任回收这些内存空间。7.ArrayList和LinkedList的区别
    ArrayList相当于数组,linkedList相当于链表8.Shell的命令 grep scp   
    9.Read/Writer和InputStream/OutputStream的区别?字符,,字节。
    10.实现多线程同步的方法有几种?
    三: synchronized,  wait  notify
    11.oracle的内存结构
      

  15.   

    前面的都还正常吧 总觉得突然问道oracle内存结构 有点拔高 
      

  16.   

    我们公司在招工程师,http://special.csdn.net/zhaopin/index.html 
      

  17.   

    关于Java的内存分配,楼主可以参考:
    http://blog.csdn.net/codolio/archive/2010/03/28/5424483.aspx
    GC的原理,楼主可以参考JAVA之父参与编写的一本书:
    《Java程序设计语言》
    一直想研究研究线程的并发。
      

  18.   

    顺便附加一道题String a = "ab";
    String b = "a" + "b";问题   a == b  返回的值,ab值是存放在堆中还是栈中,他是一个对象,还是一个变量值?