没有合适的资源?快使用搜索试试~ 我知道了~
互联网公司2018年java(3年)面试必考题目汇总
需积分: 10 100 下载量 25 浏览量
2018-04-17
10:40:00
上传
评论 1
收藏 107KB DOCX 举报
温馨提示
试读
30页
18年面试了互联网前十位公司,可以说是互联网公司必问的题目,包括阿里、美团、京东、去哪、58。私下分享给很多朋友,基本都是batj。祝你成功!
资源推荐
资源详情
资源评论
目录
第一部分 基础
第一节
第二节 反射
第三节 多线程
第四节 集合
第五节
第六节 其他
第七节 关键字
第八节 操作符
第九节 基础类型
第十节 异常
第十一节
第十二节
第二部分 调优及原理
第一节 原理
第二节 调优
第三节 原理
第三部分 数据库
第一节 编写
第二节 事物
第三节 锁
第四节 索引分区
第四部分
第五部分 使用及原理
第一节 !"#原理
第二节 !"#事务
第三节 $
第四节 !"# 原理
第五节 %&'(
第六部分 常用及 编程
第七部分 设计模式及算法
第八部分 项目介绍
第九部分 网络
第一部分 基础
兄弟:
以下是内容是我面试了 家互联网公司遇到的问的最多的题目汇总,包括 $),每一
个问题都认真学吧,都弄明白了,进个京东肯定是没啥问题的。建议先从 *+, 虚拟机开始
学习。接下来看多线程,理解的会快一些,其他顺序看你心情。问题在查的时候建议多看
一些文档,有些文档写的比较傻逼不一定是正确的,能够自己写代码验证的问题,就别查
了。就这些吧,面过了的话,心情好,记得请我吃饭(秋秋 -)。
祝你成功!
说下面试流程:
电话面:聊基础
笔试:基础
一轮技术:基础+
二轮技术:基础++
Boss:唠嗑
人力:为啥离职,期望薪资、唠嗑
过了人力面就等 oer 吧,基本稳了。
这是最全流程,基本都在这个范围了。
简历中把这些内容加上,这样被问题到下面题母的概率比较大。
1.JAVA 基础扎实、熟练运用设计模式、理解 IO/NIO、反射、多线程编程、了解 JVM 原理;
2.熟悉 Oracle、MySQL、了解非关系型数据库 redis;
3.熟悉 Spring、Spring MVC、MyBatis 框架。
第一节
和 的区别, 优点。
答:
面向流 面向缓存
阻塞 非阻塞
无 选择器
面向流与面向缓冲:
面向流意味着每次从流中读取一个或多个字节。直至读取所有字节,它们没有被缓存在任
何地方。不能够前后移动流中的数据,如果需要移动,则需要先缓存在一个缓冲区。
数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区前后移动,增加了处理过程的灵
活性,需要检查数据完整性。
阻塞与非阻塞 :
的各种流是阻塞的,意味着当一个线程调用 &./0或 1 !2/0时,该线程被阻塞,直到有
一些数据被读取,或数据完全写入,该线程在此期间不能再干任何事。 为非阻塞,线
程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用
就什么都不获取,不保持线程阻塞,所以直至数据可以读取之前,线程可以继续做其他事
情,非阻塞写也是相同,不必等到完全写入,线程通常将非阻塞 的空闲时间用在其他通
道上执行操作,所以一个单独的线程,可以管理多个输入和输出通道。
选择器:
&+& 的选择器允许一个单独的线程来监视多个输入通道,你可以注册多个通道使用一
个选择器,然后使用一个单独的线程来“选择”通道:这些通道里已经有可以处理的输入,
或者选择已准备写入的通道。这种选择机制,使得一个单独的线程很容易来管理多个通道。
注:$$ 中有两个包:
&(3&#*&+&!45下面的类都是面向流的。
&(3&#*&+&"!45都是面向缓冲的,类名多包涵 67 。
!"工作在 #$%%协议栈是哪一层?
基础:
)
应用层
应用层
表示层
会话层
传输层 传输层
网络层(又称互联层) 网络层
网络接口层(又称链路层) 数据链路
物理层
答:传输层
#$%、&'%区别及 ()(实现方式?
) 是面向连接(可靠传输),8 面向非连接(不可靠):
) 建立连接时需要传说的三次握手,服务端与客户端需要确认对方身份而已,建立好连
接后,就开始传递消息,直到有一方断开连接位置。 就好比两个人打电话,要先通了才能
说话。
8 只是数据报发送,它的优点速度快,并非要向 ) 那样麻烦建立,它只负责将信息发
出,但是并不确保信息的准确完整性等,就好比发短信,短信是出去了,但是中间是否有
问题,是否对方手机能收到就不管了。
在 *&+& 中想要实现上述两种协议通信,可采用 4(32 建立连接,4(32 可以理解为码头,
其实是套接字,这里简单说下,就好比两个城市运输货物,通过码头走货一样。
*说几点 的最佳实践?
&)使用有缓冲区的 类,而不要单独读取字节或字符。
)使用 和
()在 9"&::%块中关闭流,或者使用 2 %;1!2<; 46 (语句。
.)使用内存映射文件获取更快的 。
、、 是什么?
如何创建缓冲区,缓冲区的内存回收问题如何解决?
这块时间充足的话多写写代码帮助理解,时间紧的话可以只了解概念。
第二节 反射
+()( 反射机制了解么?
什么是 ()(的反射?说说你了解的 +()( 反射。
* 在没有 ," 和 " 方法的前提下-修改类中的 ./)("(0这个属性的值。
提示:通过 +()( 反射实现,一定要手写代码去了解。仔细看下 $( 对象中的方法如何使用。
这块建议好好看看 )1 类加载的内容,对于 +()( 反射会有很深入的理解。
在你的项目中是否使用到 +()( 反射,应用场景是什么。
第三节 多线程
线程池构造器中的参数你知道哪些,都有什么用?
线程池有几种创建方式,分别有什么特点。
* 你常用的线程池创建方式是什么?用 ( 的方式会有什么问题。
如果线程池中的线程数已经超过最大线程数,会发生什么。
为什么要使用线程池?
2 /3 用在类上、方法上、静态方法上有什么区别。
一个线程访问一个对象的 2 /3 方法,其他线程能否同时 访问这个类的非
2 /3 方法。
4 一线程访问一个对象的同步代码块,其他线程能否同时访问这个类的 2 /3 方法?
其他 2 /3 同步代码块呢?非 2 /3 方法呢?
5 2 /3 是如何实现同步机制的?
6 2 /3 锁的是对象还是代码?
除了 2 /3,+()( 还有什么别的方法保证线程安全?
(7 了解吗?在什么情况下使用,是否能够保证线程安全。
* (7 是如何保证可见性的。
使用 66 次 8/ 循环做 99操作,同时有 个线程调用该循环,最终结果是什么情况?为
什么?
一定要写代码测试
" 是线程安全的吗?+()( 提供什么解决方案?
("1 "/,/的实现原理是什么?
什么是 (?
4 用 +()( 模拟 6 匹马赛跑,你如何设计?
考点是如何让 6 个线程在某一时刻同时执行。
多线程的优点?
答:
优点
0.耗时的操作使用线程,提高应用程序响应
0.并行操作时使用线程,如 架构的服务器端并发线程响应用户的请求。
0.多 8 系统中,使用线程提高 8 利用率
0.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独
立的运行部分,这样的程序会利于理解和修改。
0提高应用程序响应。这对图形界面的程序尤其有意义,当一个操作耗时很长时,整个系
统都会等待这个操作,此时程序不会响应键盘、鼠标、菜单的操作,而使用多线程技术,
将耗时长的操作(',(4"6,!"#)置于一个新的线程,可以避免这种尴尬的情况。
-0使多 8 系统更加有效。操作系统会保证当线程数不大于 8 数目时,不同的线程运行
于不同的 8 上。
0改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立
的运行部分,这样的程序会利于理解和修改。
缺点
0等候使用共享资源时造成程序的运行速度变慢。这些共享资源主要是独占性的资源 =如
剩余29页未读,继续阅读
资源评论
caodanlaoxie
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Windows系统安装VMware虚拟机的教程
- OTN光传输网络OTU、OPU、ODU、PM、SM、TCM各种开销图
- Windows系统安装VMware虚拟机的教程
- Python-数据库.xmind(思维导图)
- STM32计数器PCB 1602 2个传感器.PcbDoc
- Windows系统安装VMware虚拟机的教程
- WOA-HKELM鲸鱼算法优化混合核极限学习机多变量回归预测(Matlab完整源码和数据)
- Screenshot_2024-05-14-22-47-39-925_com.alibaba.android.rimet.hznu.jpg
- 盟主测试TV.apk
- Windows系统上配置MATLAB环境教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功