2018java面试知识汇总
1. 多线程
1.1 多线程7种同步方法?
答:同步方法
同步代码块
使用重入锁实现线程同步(ReentrantLock)
使用特殊域变量(volatile)实现同步(每次重新计算,安全但并非一致)
使用局部变量实现线程同步(ThreadLocal)以空间换时间
使用原子变量实现线程同步(AtomicInteger(乐观锁))
使用阻塞队列实现线程同步(BlockingQueue (常用)add(),offer(),put()
1.2 四大线程池?
答:newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
1.3 进程与线程的区别?
答:进程是资源分配的基本单位,线程是调度的基本单位。进程包含线程,线程共用进程的资源。
1.4 线程的生命周期?
答:新建,就绪,运行,阻塞,结束
1.5 如何判断队列已满?
1.6 定时任务
答:newScheduledThreadPool, Timer
1.7 线程的五种状态及切换
1.8 sleep()和wait(),sleep()和yield的区别?
答:sleep()没有释放锁,
yield()直接让线程进入就绪状态,并且只能给同等级和高级的线程让步
join()调用,主线程进入阻塞状态,等待当前线程执行完,主线程才可以执行。
1.9 当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?不能
1.91 请说出与线程同步以及线程调度相关的方法。
答:wait():使一个线程处于等待(阻塞)状态,并且释放所持有的对象的锁;
sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要处理InterruptedException异常;
notify():唤醒一个处于等待状态的线程,当然在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且与优先级无关;
notityAll():唤醒所有处于等待状态的线程,该方法并不是将对象的锁给所有线程,而是让它们竞争,只有获得锁的线程才能进入就绪状态; 2. 通信
http
tcp
udp
socket
2.1 tcp和udp的区别?
2.2 tcp的三次握手和四次挥手?
3. java jvm
3.1 五大组成部分图?
答:程序计数器,虚拟机栈,本地方法栈,堆,方法区
程序计数器(和系统相关)
虚拟机栈:存放局部变量
本地方法栈
堆:存放所有new出来的东西
方法区:被虚拟机加载的类信息、常量、静态常量等。 3.2 JVM规范中的五大java内存区域 4. 反射,代理,泛型
4.1 反射的作用和应用场景?反编译
4.2 Java反射的三种实现方式?
答:通过Object类的getClass方法 Class cla = foo.getClass();
通过对象实例方法获取对象 Class cla = foo.class;
通过Class.forName方式 Class cla = Class.forName("xx.xx.Foo");
4.3 jdk代理和cglib的区别?
答:jdk代理一定要有接口,cglib 没有接口;动态代理,目标对象一定要实现接口,静态代理,目标对象和代理对象都要实现接口 5. IO
字节流:InputStream, OutputStream
字符流:Reader, Writer
6. 封装,继承,多态
7. 接口与抽象类
8. 重载和重写
10. 集合
List -> ArrayList, LinkList, vector
Set -> HashSet, treeSet
Map -> HashMap, Hashtable, treeMap, concurrentHashMap,linkHashMap 11. &和&&
12. 异常
12.1 常见的异常有哪些?
答:空指针异常,数组越界异常,类找不到,算数异常
13. 自动装箱和拆箱
13.1 int和Integer有什么区别?
答:- 原始类型: byte,short,int,long,char, float,double, boolean
- 包装类型:Byte,Short,Integer,Long,Character,Float,Double, Boolean 14. 设计模式
单例模式,工厂模式,原型模式,代理模式,观察者模式,适配器模式 15. 接口服务
rest
eip
httpclient
webservice 16. 网络方面的面试题
17. 网络框架netty,Mina
18. Redis
19. spring
spring bean 的生命周期
spring的设计模式
spring ioc三种注入方式 20. NIO(non-blocking io)
21. 任务调度框架Quartz
2018java面试知识汇总的更多相关文章
- linux云计算面试知识汇总,文件共享--vsftpd秘籍
随着天气的升温快要步入夏天,紧随着面试季来喽,想知道Linux运维面试时都会被问到哪些问题吗?特整理出这些资料给大家参考学习,据说知道全部答案的人,月薪能过万,还不快快码下,以备后用! 今天小编将继续 ...
- Java面试知识点汇总
Java面试知识点汇总 置顶 2019年05月07日 15:36:18 温柔的谢世杰 阅读数 21623 文章标签: 面经java 更多 分类专栏: java 面试 Java面试知识汇总 版权声明 ...
- 2016年Web前端面试题目汇总
转载: 2016年Web前端面试题目汇总 以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢 ...
- Hive知识汇总
两种Hive表 hive存储:数据+元数据 托管表(内部表) 创建表: hive> create table test2(id int,name String,tel String) > ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- MySql面试题、知识汇总、牛客网SQL专题练习
点击名字直接跳转到链接: Linux运维必会的100道MySql面试题之(一) Linux运维必会的100道MySql面试题之(二) Linux运维必会的100道MySql面试题之(三) Linux运 ...
- Oracle手边常用70则脚本知识汇总
Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...
- Oracle 数据库知识汇总篇
Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...
- Vertica 数据库知识汇总篇
Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...
随机推荐
- ios开发之--搜索框的使用(PYSearchViewController的使用)
最近需要开发搜索框,比较了以前的各个版本的搜索框,UISearchDisplayController和UISearchController的使用,以后再做记录,随着ios11的更新,一些控件发生了,改 ...
- 屏蔽win10中文输入法
Windows 10自带的默认输入法,是通过Shift键来切换中/英文,这样为玩一些不需要打字,却需要使用Shift键的游戏带来了不便,比如,在进行游戏的时候,按下Shift键后,再按跳跃.射击等键, ...
- hbase2.0.0-安装部署
依赖hadoop 环境,我这边的版本是hadoop-2.6.5 选择hbase2.0.0版本的时候,去官网查看支持的hadoop版本 1.伪分布式安装 下载:http://mirror.bit.edu ...
- 【代码审计】ThinkSNS_V4 任意文件下载漏洞分析
0x00 环境准备 ThinkSNS官网:http://www.thinksns.com 网站源码版本:ThinkSNS V4 更新时间:2017-09-13 程序源码下载:http://www ...
- 【代码审计】iCMS_v7.0.7 keywords.admincp.php页面存在SQL注入漏洞分析
0x00 环境准备 iCMS官网:https://www.icmsdev.com 网站源码版本:iCMS-v7.0.7 程序源码下载:https://www.icmsdev.com/downloa ...
- (数字IC)低功耗设计入门(一)——低功耗设计目的与功耗的类型
低功耗设计这个专题整理了好久,有一个月了,有图有证据: 然而最近一直有些烦心事.郁闷事,拖延了一下,虽然现在还是有点烦,但是还是先发表了吧.下面我们就来聊聊低功耗设计吧,由于文章比较长,因此我就不一次 ...
- 在wepy里面使用redux
wepy 框架本身是支持 Redux 的,我们在构建项目的时候,将 是否安装 Redux 选择 y 就好了,会自动安装依赖,运行项目后看官方给的 demo 确实是可以做到的,但是官方文档里却对这一块只 ...
- JSP基本用法(一)运行机制和语法
一.概述 JSP是一种建立在Servlet规范功能上的动态网页技术,在网页文件中嵌入Java代码和JSP标记用于产生动态内容. 本文简单介绍JSP的运行机制和JSP的语法. 二.JSP的运行机制 JS ...
- iOS - 转场时 appear 与 disappear 的调用顺序探索
不同的转场方式 A.B viewDidDisappear调用的流程不同 在A页面跳转到B页面的过程中 A 的 viewDidDisappear 方法和 B 的 viewDidAppear 谁先调用? ...
- linux 查看版本
输入"uname -a ",可显示电脑以及操作系统的相关信息. 输入"cat /proc/version",说明正在运行的内核版本.输入"cat /e ...