java笔试面试题准备
J2SE基础
- 九种基本数据类型的大小,以及它们的封装类
- byte 8 Byte
- char 16 Character
- short 16 Short
- int 32 Integer
- long 64 Long
- float 32 Float
- double 64 Double
- void Void
- Switch能否用string做参数?
- java7以前不可以,现在可以了
- equals与==的区别
- equals检查内容是否一致
- ==检查内存存储的地址是否一致
- equals相等hashcode必相等;hashcode相等equals可能不相等(地址冲突的情况)
- Object有哪些公用方法?
- hashCode(); wait(); notify(); equals(); getClass(); toString(); clone(); finalize();
- java的四种引用,强弱软虚,用到场景
- Hashcode的作用
- 用来比较两个对象是否相同,比如Set的相同就是通过hashcode来比较的
- ArrayList, LinkedList, Vector的区别
- 都实现了List接口,vector是线程安全的
- ArrayList是连续内存,查找方便,LinkdeList是链表结构,增删方便
- Collections Java集合框架中,用来操作集合对象的工具类,如Contains.sort()方法
- Collection
- List(有序允许重复)
- LinkedList
- ArrayList
- Vector
- Stack
- Set(无序不允许重复)
- HashSet
- TreeSet
- List(有序允许重复)
- Map
- HashMap
- TreeMap
- HashTable
- String, StringBuffer, 与StringBuilder的区别
- String是字符串常量,不可改变,其余的是字符串变量,主要用于字符串的修改,buffer线程安全,builder非线程安全
- Map, Set, List, Queue, Stack的特点与用法
- 键值对: hashmap, hashtable, weakhashmap, sortedmap
- 不重复集合: sortedset, hashset
- 有序数列: linkedList, arrayList, vector
- HashMap和HashTable的区别
- hashtable线程安全,不接受键值对为null
- 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)
- TreeMap, HashMap, LinkedhashMap的区别
- try catch finally, try里有return, finally依然执行
- try块里有return,finally块里也有return,返回的是finally块中的值
- Throwable是万恶之源,有两个儿子error和Exception
- error是硬伤
- Exception常用的RuntimeException和非RuntimeException
- throw是抛出异常,throws是抛出异常的声明
- Java面向对象的三个特征与含义
- 封装: 方法与属性封装
- 继承: 节省代码,扩展
- 多态: 父类引用指向不同的实a例,重写,重载
- Override和Overload的含义与区别
- 重写: 子类中有一个父类中名字参数一样的函数,返回值小于等于父类,抛出的异常小于等于父类,访问修饰符大于等于父类
- 重载: 同类当中方法名相同,参数类型不同,数目不同,顺序不同,方法返回值和访问修饰符可以不同
- 访问修饰符
- private 本类中可以访问
- public 任何地方都能访问
- protected 同包内的类和包外的子类能访问
- 默认 同包内能访问
- Interface与abstract类的区别
- 一个是类,一个是接口
- 接口内部变量必须是public static final
- abstract可以有抽象的方法,接口全部没实现
- 访问权限: 接口只有public和protected修饰
- 实现多线程的两种方法: 继承Thread类和实现Runable接口
- 线程的waiting状态和blocked状态有什么区别?
- waiting状态,该线程已经获得了锁,并执行了wait方法,等待另一个线程的动作,比如notify或notifyAll
- blocked状态,该线程未获得锁,等待锁的释放
- 线程的waiting状态和blocked状态有什么区别?
- 如何停止一个线程?
- 使用退出标志,使线程正常退出
- 使用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
- 线程同步的方法:sychronized、lock、reentrantLock等。
- sychronized:修饰的方法,块一次只有一个线程可以访问,其他的阻塞
- lock:一个接口,用于try的finally中可以主动的释放锁,trylock方法可以指定等待时间,灵活
- reentrantLock:lock的实现类
- 要注意Set集合中contains方法和List集合中contians方法的本质究竟有什么区别
- Set集合中的contains方法要满足两个条件hashCode方法返回的哈希码要相等,同时对象的equals方法也要相等
- List集合中的contains方法只需要满足hashCode返回哈希码相同就行了
- comparable接口和comparator接口
- comparable默认比较规则
- comparator临时比较规则
- 要想使用Contains.sort方法,就得实现comparable接口,为什么String可以进行比较,因为它实现了comparable接口
- Java中的锁
- ReentrantLock可重入锁,唯一实现了Lock接口的方法,注意lock()方法的使用,一般在try中lock(),在finally块中unlock()
- 可中断锁 lockInterruptibly方法,如果线程没有竞争到锁,即处于阻塞队列中,此时可以响应外部的中断
- 公平锁(synchronized是非公平锁)
- ReentrantReadWriteLock读写锁, 一般在try中rwl.readLock().lock(); 在finally中rwl.readLock().unlock()
- ThreadPool用法与优势
- newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
- newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
- newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
- newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
- wait()和sleep()的区别
- sleep没有放弃对象锁,wait放弃了
- 泛型常用特点,Lis《String》能否转为List《Object》,灵活变换参数类型,可以
- 解析XML的几种方式的原理与特点:DOM、SAX、PULL。
- DOM:获取整个DOM树,便于节点操作,
- SAX:一边解析,一边处理数据,必须自己维护父子关系
- JDOM:比较适合比较小的,不需要实时处理的
- DOM4J:可移植性差
java笔试面试题准备的更多相关文章
- Java笔试面试题整理第八波
转载至:http://blog.csdn.net/shakespeare001/article/details/51388516 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第六波(修正版)
转载至:http://blog.csdn.net/shakespeare001/article/details/51330745 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第五波
转载至:http://blog.csdn.net/shakespeare001/article/details/51321498 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第四波
转载至:http://blog.csdn.net/shakespeare001/article/details/51274685 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第三波
转载至:http://blog.csdn.net/shakespeare001/article/details/51247785 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第二波
转载至:http://blog.csdn.net/shakespeare001/article/details/51200163 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题整理第一波
转载至:http://blog.csdn.net/shakespeare001/article/details/51151650 作者:山代王(开心阳) 本系列整理Java相关的笔试面试知识点,其他几 ...
- Java笔试面试题007
Java笔试面试题007 1.请用正則表達式匹配出QQ号(如果QQ号码为5-10位). 解答: ^ \d{5,10}$ 2.String, StringBuffer StringBuilder的差别. ...
- Java笔试面试题001
Java笔试面试题之中的一个 1.Struts1中actionform和action属于MVC哪一层,为什么? 解答:actionform和action属于MVC的Model层,Action用来处理业 ...
- OpenJDK源码研究笔记(二)-Comparable和Comparator2个接口的作用和区别(一道经典的Java笔试面试题)
Comparable和Comparator是JDK中定义的2个比较接口,很相似,但又有所不同. 这2个接口的作用和区别也是Java中的常见经典面试题. 下面我们就来详细介绍下这2个接口的定义.作用.区 ...
随机推荐
- Hadoop- 集群启动详解
NameNode启动过程详解 第一次启动:HDFS格式化后,生成fsimage文件 hdf
- SESSION应用的一个场合
Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间.每 一访问者都会单独获得一个Session.在Web应用程序中,当一个用户访问该应用 时,Session类型的变量可以供这个用户 ...
- 英语发音规则---字母组合ou的发音规律
英语发音规则---字母组合ou的发音规律 一.总结 一句话总结: 1.先练习一下题,单词enough划线部分与下列那个单词划线部分读音相同:A. touch B. mouth C. soul D ...
- java:eclipse4.4 安装tomcat插件
一.Eclipse 4.4下载地址:http://www.eclipse.org/downloads/ (Eclipse官网).Eclipse4.4版本默认已经集成了Ant和Maven插件,这点挺不错 ...
- 【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) ...
- 【leetcode刷题笔记】Remove Duplicates from Sorted Array II
Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For exampl ...
- 小米5安装Xposed框架——需要解锁刷机
Xposed官网 https://forum.xda-developers.com/xposed 官方模块厂库 https://repo.xposed.info/ 中文站点 https://xpose ...
- ffpanel --ffmpeg的GUI,让ffmpeg离开黑黑的命令行
程序及源码下载地址 :https://github.com/langsim/ffpanel from:http://blog.csdn.net/langsim/article/details/47 ...
- 多媒体的框架 - OpenCore框架概述
OpenCore是一个多媒体的框架,从宏观上来看,它主要包含了两大方面的内容:PVPlayer:提供媒体播放器的功能,完成各种音频 (Audio).视频(Video)流的回放(Playback)功能. ...
- IP通信中音频编解码技术与抗丢包技术概要
此文较长,建议收藏起来看. 一.一个典型的IP通信模型 二.Server2Server技术分类 Server2Server这块也是一个专门的领域,这里只简单分个类. 1.同一国家相同运营商之间: 同一 ...