没有合适的资源?快使用搜索试试~ 我知道了~
面试宝典已回答篇.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 126 浏览量
2022-11-27
22:04:01
上传
评论
收藏 814KB PDF 举报
温馨提示
试读
11页
...
资源推荐
资源详情
资源评论
Java 面试宝典(
待回答
篇)
1、oracle 如何实现读写分离
(1)基于 RAC 架构的,使用其中某个节点作为读库;
(2)基于 Streams 数据复制技术的,实时将数据复制到另外一个库供读取;
(3)使用第三方数据复制软件的,如 Golden Gate(已经被 Oracle 收入囊中)、DSG 的,也是实
时复制数据到另外一个库中。
(4)使用 Logical standby 技术,实时复制数据到一个库,且该库是对应用而言是只读的。
2、说说你对排它锁,读写锁的理解
(1)排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁
被释放之后才可能获取到锁。
(2)读写锁拆成读锁和写锁来理解。读锁可以共享,多个线程可以同时拥有读锁,但是写锁
却只能只有一个线程拥有,而且获取写锁的时候其他线程都已经释放了读锁,而且该线程获
取写锁之后,其他线程不能再获取读锁
3、在读写锁的基础上如何实现防止幻读(不能使用 MVCC,也
不能使用序列化的隔离级别)
4、线程池用过吗?newcachedThreadPool 在使用过程中有什
么需要注意的吗
创建一个可缓存的线程池。如果线程池的大小超过了处理任务所需要的线程,那么就会回收
部分空闲(60 秒不执行任务)的线程,当任务数增加时,此线程池又可以智能的添加新线
程来处理任务。此线程池不会对线程池大小做限制,线程池大小完全依赖于操作系统(或者
说 JVM)能够创建的最大线程大小。
5、oracle 的联合主键在创建的时候有什么需要注意的吗
6、谈谈你对分布式的理解
分布式就是把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些
部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
7、js 写的怎么样,js 是怎样实现继承的
js 常用的继承方法有:原型链、借用构造函数、组合继承、原型式继承、寄生式继承、寄生
组合式继承。
8、struts Filter 和拦截器有什么区别?
拦截器是基于 java 的反射机制的,而过滤器是基于函数回调。
拦截器不依赖与 servlet 容器,过滤器依赖与 servlet 容器。
拦截器只能对 action 请求起作用,而过滤器则可以对几乎所有的请求起作用。
拦截器可以访问 action 上下文、值栈里的对象,而过滤器不能访问。
在 action 的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
9、抽象工厂方法和工厂方法区别是什么?
工厂方法 :用来生产同一等级结构中的固定产品。(支持增加任意产品)
抽象工厂 :用来生产不同产品族的全部产品。(对于增加新的产品,无能为力;支持增加
产品族)
10、在负载不能支撑的情况下,如何将 redis 实例从 10 个扩充
到 20 个
11、说说你对 ThreadLocal 的理解
(1)每个线程都有自己的局部变量
每个线程都有一个独立于其他线程的上下文来保存这个变量,一个线程的本地变量对其
他线程是不可见的(有前提,后面解释)
(2)独立于变量的初始化副本
ThreadLocal 可以给一个初始值,而每个线程都会获得这个初始化值的一个副本,这样才
能保证不同的线程都有一份拷贝。
(3)状态与某一个线程相关联
ThreadLocal 不是用于解决共享变量的问题的,不是为了协调线程同步而存在,而是为了
方便每个线程处理自己的状态而引入的一个机制,理解这点对正确使用ThreadLocal 至关重
要。
12、http 协议,put 用过吗?讲讲,如何使用 http 协议传送多
个文件
(1)在 form 中设置多个文件输入框,用数组命名他们的名字
(2)在 form 中设置多个文件输入框,但名字不同
13、可重入锁与 syncronized 区别() 完美世界:
ReentrantLock 除了 synchronized 的功能,多了三个高级功能.
等待可中断,公平锁,绑定多个 Condition.
(1)等待可中断
在持有锁的线程长时间不释放锁的时候 ,等待的线程可以选择放弃等待 . tryLock(long
timeout, TimeUnit unit)
(2)公平锁
按照申请锁的顺序来一次获得锁称为公平锁.synchronized 的是非公平锁,ReentrantLock 可以
通过构造函数实现公平锁. new RenentrantLock(boolean fair)
(3)绑定多个 Condition
通过多次 newCondition 可以获得多个 Condition 对象,可以简单的实现比较复杂的线程同步的
功能.通过 await(),signal();
14、约瑟夫问题知道吗?15 分钟写出来
public class RingTest{
public static void main(String[] args){
System.out.println("程序说明如下:");
System.out.println("由 m 个人围成一个首尾相连的圈报数。
从第一个人开始,从 1 开始报数,报到 n 的人出圈,剩下的人继续从 1 开始报数,
直到所有的人都出圈为止。对于给定的 m 和 n,求出所有人的出圈顺序.");
//提示输入总人数
System.out.println("请输入做这个游戏的总人数:");
Scanner sca=new Scanner(System.in);
int m=sca.nextInt();
//提示输入要出圈的数值
System.out.println("请输入要出圈的数值:
");
int n=sca.nextInt();
System.out.println("按出圈的次序输出序号:
");
//创建有 m 个值的数组
int[] a=new int[m];
//初始长度,以后出圈一个,长度就减一
int len=m;
//给数组赋值
for(int i=0;i<a.length;i++)
a[i]=i+1;
//i 为元素下表,j 代表当前要报的数
int i=0;
int j=1;
while(len>0){
if(a[i%m]>0){
剩余10页未读,继续阅读
资源评论
若♡
- 粉丝: 6172
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功