J2SE基础

  1. 九种基本数据类型的大小,以及它们的封装类

    • byte 8 Byte
    • char 16 Character
    • short 16 Short
    • int 32 Integer
    • long 64 Long
    • float 32 Float
    • double 64 Double
    • void Void
  2. Switch能否用string做参数?
    • java7以前不可以,现在可以了
  3. equals与==的区别
    • equals检查内容是否一致
    • ==检查内存存储的地址是否一致
    • equals相等hashcode必相等;hashcode相等equals可能不相等(地址冲突的情况)
  4. Object有哪些公用方法?
    • hashCode(); wait(); notify(); equals(); getClass(); toString(); clone(); finalize();
  5. java的四种引用,强弱软虚,用到场景
  6. Hashcode的作用
    • 用来比较两个对象是否相同,比如Set的相同就是通过hashcode来比较的
  7. ArrayList, LinkedList, Vector的区别
    • 都实现了List接口,vector是线程安全的
    • ArrayList是连续内存,查找方便,LinkdeList是链表结构,增删方便
    • Collections Java集合框架中,用来操作集合对象的工具类,如Contains.sort()方法
    • Collection
      • List(有序允许重复)

        • LinkedList
        • ArrayList
        • Vector
          • Stack
      • Set(无序不允许重复)
        • HashSet
        • TreeSet
    • Map
      • HashMap
      • TreeMap
      • HashTable
  8. String, StringBuffer, 与StringBuilder的区别
    • String是字符串常量,不可改变,其余的是字符串变量,主要用于字符串的修改,buffer线程安全,builder非线程安全
  9. Map, Set, List, Queue, Stack的特点与用法
    • 键值对: hashmap, hashtable, weakhashmap, sortedmap
    • 不重复集合: sortedset, hashset
    • 有序数列: linkedList, arrayList, vector
  10. HashMap和HashTable的区别
    • hashtable线程安全,不接受键值对为null
  11. HashMap和concurrentHashMap的区别
    • HashMap实际上是数组加链表的结构,链表中节点至少有key, value, hash, next等值
    • HashMap的put方法的工作原理?
      • 对key调用hashcode方法,返回的hashcode用于找到bucket位置(即数组对应索引)存储entry对象
      • 在bucket中key对象和值对象都存储
    • HashMap中当两个key的hashcode相同会发生什么?
      • 因为hashcode相同,所以它们的bucket位置相同会发生碰撞,会将这个对象存储到LinkedList的头部
    • HashMap中如果两个key的hashcode相同,如果获取对象?
      • 找到bucket的位置之后,通过调用key的equals方法来找到LinkedList中正确的节点
    • HashMap中超过了装载因子0.75后将会发生什么?
      • 开辟一个两倍大小的bucket数组
      • 将原来的对象放入到新的bucket数组中,再哈希(rehashing)
  12. TreeMap, HashMap, LinkedhashMap的区别
  13. try catch finally, try里有return, finally依然执行
    • try块里有return,finally块里也有return,返回的是finally块中的值
  14. Throwable是万恶之源,有两个儿子error和Exception
    • error是硬伤
    • Exception常用的RuntimeException和非RuntimeException
    • throw是抛出异常,throws是抛出异常的声明
  15. Java面向对象的三个特征与含义
    • 封装: 方法与属性封装
    • 继承: 节省代码,扩展
    • 多态: 父类引用指向不同的实a例,重写,重载
  16. Override和Overload的含义与区别
    • 重写: 子类中有一个父类中名字参数一样的函数,返回值小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类
    • 重载: 同类当中方法名相同,参数类型不同,数目不同,顺序不同,方法返回值和访问修饰符可以不同
    • 访问修饰符
      • private 本类中可以访问
      • public 任何地方都能访问
      • protected 同包内的类和包外的子类能访问
      • 默认 同包内能访问
  17. Interface与abstract类的区别
    • 一个是类,一个是接口
    • 接口内部变量必须是public static final
    • abstract可以有抽象的方法,接口全部没实现
    • 访问权限: 接口只有public和protected修饰
  18. 实现多线程的两种方法: 继承Thread类和实现Runable接口
    • 线程的waiting状态和blocked状态有什么区别?

      • waiting状态,该线程已经获得了锁,并执行了wait方法,等待另一个线程的动作,比如notify或notifyAll
      • blocked状态,该线程未获得锁,等待锁的释放
  19. 如何停止一个线程?
    • 使用退出标志,使线程正常退出
    • 使用interrupt方法
      • 线程thread1内部调用this.interrupted()方法或Thread.interrupted()方法,如果为true说明其它线程(主线程)已经设置了thread1的interrupt flag标志为true,中断thread1异常,throw new InterruptedException()
      • 主线程(外部线程)通过调用线程thread1的interrupt方法,使得thread1的中断标志(interrupt flag)为true
      • interrupted方法,测试当前线程是否已经中断,并清除中断状态
      • isinterrupted方法,测试当前是否已经中断,但不清除中断状态
      • 具体表现为: 如果当前线程发生了中断,则第一次调用interrupted方法会输出true,第二次调用会输出false,而isInterrupted方法则不会发生这种情况,当前线程中断后,则会两次输出false
  20. 线程同步的方法:sychronized、lock、reentrantLock等。
    • sychronized:修饰的方法,块一次只有一个线程可以访问,其他的阻塞
    • lock:一个接口,用于try的finally中可以主动的释放锁,trylock方法可以指定等待时间,灵活
    • reentrantLock:lock的实现类
  21. 要注意Set集合中contains方法和List集合中contians方法的本质究竟有什么区别
    • Set集合中的contains方法要满足两个条件hashCode方法返回的哈希码要相等,同时对象的equals方法也要相等
    • List集合中的contains方法只需要满足hashCode返回哈希码相同就行了
  22. comparable接口和comparator接口
    • comparable默认比较规则
    • comparator临时比较规则
    • 要想使用Contains.sort方法,就得实现comparable接口,为什么String可以进行比较,因为它实现了comparable接口
  23. Java中的锁
    • ReentrantLock可重入锁,唯一实现了Lock接口的方法,注意lock()方法的使用,一般在try中lock(),在finally块中unlock()
    • 可中断锁 lockInterruptibly方法,如果线程没有竞争到锁,即处于阻塞队列中,此时可以响应外部的中断
    • 公平锁(synchronized是非公平锁)
    • ReentrantReadWriteLock读写锁, 一般在try中rwl.readLock().lock(); 在finally中rwl.readLock().unlock()
  24. ThreadPool用法与优势
    • newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
    • newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
    • newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
    • newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
  25. wait()和sleep()的区别
    • sleep没有放弃对象锁,wait放弃了
  26. 泛型常用特点,Lis《String》能否转为List《Object》,灵活变换参数类型,可以
  27. 解析XML的几种方式的原理与特点:DOM、SAX、PULL。
    • DOM:获取整个DOM树,便于节点操作,
    • SAX:一边解析,一边处理数据,必须自己维护父子关系
    • JDOM:比较适合比较小的,不需要实时处理的
    • DOM4J:可移植性差

java笔试面试题准备的更多相关文章

  1. Java笔试面试题整理第八波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  2. Java笔试面试题整理第六波(修正版)

    转载至:http://blog.csdn.net/shakespeare001/article/details/51330745 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  3. Java笔试面试题整理第五波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51321498 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  4. Java笔试面试题整理第四波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51274685 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  5. Java笔试面试题整理第三波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51247785 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  6. Java笔试面试题整理第二波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51200163 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  7. Java笔试面试题整理第一波

    转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...

  8. Java笔试面试题007

    Java笔试面试题007 1.请用正則表達式匹配出QQ号(如果QQ号码为5-10位). 解答: ^ \d{5,10}$ 2.String, StringBuffer StringBuilder的差别. ...

  9. Java笔试面试题001

    Java笔试面试题之中的一个 1.Struts1中actionform和action属于MVC哪一层,为什么? 解答:actionform和action属于MVC的Model层,Action用来处理业 ...

  10. OpenJDK源码研究笔记(二)-Comparable和Comparator2个接口的作用和区别(一道经典的Java笔试面试题)

    Comparable和Comparator是JDK中定义的2个比较接口,很相似,但又有所不同. 这2个接口的作用和区别也是Java中的常见经典面试题. 下面我们就来详细介绍下这2个接口的定义.作用.区 ...

随机推荐

  1. 数据分析第三篇:Numpy知识点

    Numpy 将字符型数据转为datetime import numpy as np f = np.array([','2019-01-01','2019-01-02 01:01:01']) # 把f数 ...

  2. Delpih - Format

    Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明:function Format(const Format: ...

  3. 分享知识-快乐自己:揭秘HDFS

    揭秘HDFS: 一):大数据(hadoop)初始化环境搭建 二):大数据(hadoop)环境搭建 三):运行wordcount案例 四):揭秘HDFS 五):揭秘MapReduce 六):揭秘HBas ...

  4. 二 Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器

    Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器 这一节主讲url控制器 一.urls.py模块 这个模块是配置路由映射的模块,当用户访问一个 ...

  5. Netty组件理解(转载)

    转载的文章,写的非常好.   一.先纵览一下Netty,看看Netty都有哪些组件?        为了更好的理解和进一步深入Netty,我们先总体认识一下Netty用到的组件及它们在整个Netty架 ...

  6. codeforces 655B B. Mischievous Mess Makers(贪心)

    题目链接: B. Mischievous Mess Makers time limit per test 1 second memory limit per test 256 megabytes in ...

  7. bzoj1067降雨量

    True和False都好搞 Maybe的情况: 1.Y年和X年的降雨量已知,X年的降雨量不超过Y年的降雨量,从Y+1到X-1年中存在至少一年的降雨量未知,从Y+1到X-1年中已知的降雨量都小于X年的降 ...

  8. 虚拟机centos系统,停机装第二块网卡,需要更改的配置

    虚拟机centos系统,停机装第二块网卡,需要更改的配置. 问题描述: 虚拟机centos系统,停机装第二块网卡,发现  /etc/sysconfig/network-scripts/ifcfg-et ...

  9. Poj_1045

    这道题难点在于基本物理知识和数学的结合. 得出公式后再code,那就是小菜一碟了. import java.util.Scanner; import java.lang.Math; public cl ...

  10. web攻击之七:常见CDN回源问题总结

    1. URL链接出现非法链接 (如 */./Play/show/id/349281 ); 2. CDN接收未知Referer处理失效(目前搜索引擎的状态码为499); 3. CDN抓取服务器 Cach ...