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. Hadoop- 集群启动详解

    NameNode启动过程详解 第一次启动:HDFS格式化后,生成fsimage文件 hdf

  2. SESSION应用的一个场合

    Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间.每 一访问者都会单独获得一个Session.在Web应用程序中,当一个用户访问该应用 时,Session类型的变量可以供这个用户 ...

  3. 英语发音规则---字母组合ou的发音规律

    英语发音规则---字母组合ou的发音规律 一.总结 一句话总结: 1.先练习一下题,单词enough划线部分与下列那个单词划线部分读音相同:A. touch  B. mouth  C. soul  D ...

  4. java:eclipse4.4 安装tomcat插件

    一.Eclipse 4.4下载地址:http://www.eclipse.org/downloads/ (Eclipse官网).Eclipse4.4版本默认已经集成了Ant和Maven插件,这点挺不错 ...

  5. 【Educational Codeforces Round 37】F. SUM and REPLACE 线段树+线性筛

    题意 给定序列$a_n$,每次将$[L,R]$区间内的数$a_i$替换为$d(a_i)$,或者询问区间和 这题和区间开方有相同的操作 对于$a_i \in (1,10^6)$,$10$次$d(a_i) ...

  6. 【leetcode刷题笔记】Remove Duplicates from Sorted Array II

    Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...

  7. 小米5安装Xposed框架——需要解锁刷机

    Xposed官网 https://forum.xda-developers.com/xposed 官方模块厂库 https://repo.xposed.info/ 中文站点 https://xpose ...

  8. ffpanel --ffmpeg的GUI,让ffmpeg离开黑黑的命令行

    程序及源码下载地址 :https://github.com/langsim/ffpanel   from:http://blog.csdn.net/langsim/article/details/47 ...

  9. 多媒体的框架 - OpenCore框架概述

    OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:PVPlayer:提供媒体播放器的功能,完成各种音频 (Audio).视频(Video)流的回放(Playback)功能. ...

  10. IP通信中音频编解码技术与抗丢包技术概要

    此文较长,建议收藏起来看. 一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一 ...