086期综合面试题系列十

2020-09-16 17:52 Java最全面试题库

  点击上方蓝色字体,关注我吧

2020年百日百更原创Java最全面试题库之往期回顾

【000期】Java最全面试题库思维导图

【020期】JavaSE系列面试题汇总(共18篇)

【028期】JavaWeb系列面试题汇总(共10篇)

【042期】JavaEE系列面试题汇总(共13篇)

【049期】数据库系列面试题汇总(共6篇)

【053期】中间件系列面试题汇总(共3篇)

【065期】数据结构与算法面试题汇总(共11篇)

【076期】分布式面试题汇总(共10篇)

【077期】综合面试题系列(一)

【078期】综合面试题系列(二)

【079期】综合面试题系列(三)

【080期】综合面试题系列(四)

【081期】综合面试题系列(五)

【082期】综合面试题系列(六)

【083期】综合面试题系列(七)

【084期】综合面试题系列(八)

【085期】综合面试题系列(九)


开篇介绍

大家好,我是Java最全面试题库提裤姐,今天这篇是综合面试题系列的第十篇,主要总结了各个大厂的面试题相关的问题;在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。


Q:

选择题

如果某系统15*4=112成立,则系统采用的是()进制
A.6
B.7
C.8
D.9

解析:A选项,假设是6进制的,把等式154=112转为十进制,就是114=44,最后验证等式成立,因此答案选择A。
也可以假设是X进制,且知道X大于5,则:(x+5)4=xx+x+2,所以最后计算的结果也为6。

不同级别的用户对同一对象拥有不同的访问权利或某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动,这种情况最好使用什么设计模式.()
A.Bridge模式
B.Facade模式
C.Adapter模式
D.Proxy模式

解析:D;代理是代替服务器去接受请求者的请求的中间人,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

同步机制应该遵循哪些基本准则?()
A.空闲让进
B.忙则等待
C.有限等待
D.让权等待

解析:ABCD

进程进入等待状态有哪几种方式?()
A.CPU调度给优先级更高的线程
B.阻塞的线程获得资源或者信号
C.在时间片轮转的情况下,如果时间片到了
D.获得spinlock未果

解析:A. 高优先级的抢占CPU,使得原来处于运行状态的进程转变为就绪状态。
B. 阻塞的进程等待某件事情的发生,一旦发生则它的运行条件已经满足,从阻塞进入就绪状态。
C. 时间片轮转使得每个进程都有一小片时间来获得CPU运行,当时间片到时从运行状态变为就绪状态。
D. 自旋锁(spinlock)是一种保护临界区最常见的技术。在同一时刻只能有一个进程获得自旋锁,其他企图获得自旋锁的任何进程将一直进行尝试(即自旋,不断地测试变量),除此以外不能做任何事情。因此没有获得自旋锁的进程在获取锁之前处于忙等(阻塞状态)。所以答案为D


Q:

简答题

Reids集群怎么动态增加或删除一个节点,保证数据不丢失?

对于Redis主节点与从节点之间的数据复制,是异步复制的,当客户端发送写请求给master节点的时候,客户端会返回OK,然后同步到各个slave节点中。

如果此时master还没来得及同步给slave节点时发生宕机,那么master内存中的数据会丢失;

解决:

1、做好aof rdb备份

2、修改参数min-slaves-to-write=1 min-slaves-max-lag=10

redis提供了可以让master停止写入的方式,如果配置了min-slaves-to-write,健康的slave的个数小于N,mater就禁止写入。master最少得有多少个健康的slave存活才能执行写命令。这个配置虽然不能保证N个slave都一定能接收到master的写操作,但是能避免没有足够健康的slave的时候,master不能写入来避免数据丢失。设置为0是关闭该功能。

延迟小于min-slaves-max-lag秒的slave才认为是健康的slave


Q:

编程题

判断一个正整数是否对称。

//判断一个正整数,是否对称
public static String symmetry(int numb) {
    String result = "true";
    //整型转字符串
    String str = "" + numb;
    //字符串转字符串数组
    String[] strArray = str.split("");
    for (int i = 0; i < strArray.length; i++) {
        if (!(strArray[i].equals(strArray[strArray.length - i - 1]))) {
            result = "false";
            break;
        }
    }
    return result;
}
public static void main(String[] args) {
    System.out.println(symmetry(1122));
}









“一个专注于分享各类Java面试题的号主,长按二维码关注我吧 ”

祝大家都能拿到心仪的offer!







长按识别二维码

等风也等你



文章都看完了不点个 吗

本文章转载自公众号:tikujie

首页 - Java 相关的更多文章: