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个接口的定义.作用.区 ...
随机推荐
- 数据分析第三篇:Numpy知识点
Numpy 将字符型数据转为datetime import numpy as np f = np.array([','2019-01-01','2019-01-02 01:01:01']) # 把f数 ...
- Delpih - Format
Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 首先看它的声明:function Format(const Format: ...
- 分享知识-快乐自己:揭秘HDFS
揭秘HDFS: 一):大数据(hadoop)初始化环境搭建 二):大数据(hadoop)环境搭建 三):运行wordcount案例 四):揭秘HDFS 五):揭秘MapReduce 六):揭秘HBas ...
- 二 Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器
Django框架,urls.py模块,views.py模块,路由映射与路由分发以及逻辑处理——url控制器 这一节主讲url控制器 一.urls.py模块 这个模块是配置路由映射的模块,当用户访问一个 ...
- Netty组件理解(转载)
转载的文章,写的非常好. 一.先纵览一下Netty,看看Netty都有哪些组件? 为了更好的理解和进一步深入Netty,我们先总体认识一下Netty用到的组件及它们在整个Netty架 ...
- codeforces 655B B. Mischievous Mess Makers(贪心)
题目链接: B. Mischievous Mess Makers time limit per test 1 second memory limit per test 256 megabytes in ...
- bzoj1067降雨量
True和False都好搞 Maybe的情况: 1.Y年和X年的降雨量已知,X年的降雨量不超过Y年的降雨量,从Y+1到X-1年中存在至少一年的降雨量未知,从Y+1到X-1年中已知的降雨量都小于X年的降 ...
- 虚拟机centos系统,停机装第二块网卡,需要更改的配置
虚拟机centos系统,停机装第二块网卡,需要更改的配置. 问题描述: 虚拟机centos系统,停机装第二块网卡,发现 /etc/sysconfig/network-scripts/ifcfg-et ...
- Poj_1045
这道题难点在于基本物理知识和数学的结合. 得出公式后再code,那就是小菜一碟了. import java.util.Scanner; import java.lang.Math; public cl ...
- web攻击之七:常见CDN回源问题总结
1. URL链接出现非法链接 (如 */./Play/show/id/349281 ); 2. CDN接收未知Referer处理失效(目前搜索引擎的状态码为499); 3. CDN抓取服务器 Cach ...