NIO-DO Java 线上笔试(编程)题,蔚来汽车

2023-11-12

NIO-DO Java 线上笔试(编程)题

1.使用二分查找的方式来定位某一元素

2.请用你熟悉的开发语言,完成如下题目:
输入:若干个集合,各集合中的元素不会重复
输出:求这些集合的笛卡尔积例如:
输入:N个集合(这里N=3) :(a,b)(x,y)(1,2,3)
输出: ((a,x,1), (a,x,2)…(b,y,3))
在保证正确性的情况下尽可能优化效率,同时注意代码风格

3.利用循环的方式实现我输入n 得到n对应的裴波拉契数字,裴波拉契举例:1 1 2 3 5 8 13 21 。。。。。。。

4.用Java编写一个会导致死锁的程序

5.Java写代码来解决生产者——消费者问题

6.在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?

1.使用二分查找的方式来定位某一元素
public int search(List listA, int keyword) {
int startNo=0;
int endNo=listA.size()-1;
while (startNo< endNo) {
int middleNo = (startNo + endNo)>>>1;
if (keyword == listA.get(middle)) {
return middle;
} else if (keyword< listA.get(middle)) {
endNo = middle -1;
} else {
startNo = middle +1;
}
}
return -1;
}

4.用Java编写一个会导致死锁的程序
public class Entrance {
public static void main(String[] args) {
DeadLockThread deadlock1 = new DeadLockThread();
DeadLockThread deadlock2 = new DeadLockThread();
deadlock1.flag = true;
deadlock2.flag = false;
new Thread(deadlock1).start();
new Thread(deadlock2).start();
}
}

public class DeadLockThread implements Runnable {
private static final Object objectA = new Object();
private static final Object objectB = new Object();
public boolean flag;

@Override
public void run() {
    if (flag) {
        synchronized (objectA) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("flag=true && lock objectA");
            synchronized (objectB) {
                System.out.println("flag=true && lock objectB");
            }
        }
    } else {
        synchronized (objectB) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("flag=false && lock objectB");
            synchronized (objectA) {
                System.out.println("flag=false && lock objectA");
            }
        }
    }
}

}

5.Java写代码来解决生产者——消费者问题
public class ProducerConsumer {
private LinkedList storeHouse = new LinkedList();
private int MAX = 5;

public ProducerConsumer() {
}

public void start() {
    new Producer().start();
    new Comsumer().start();
}

class Producer extends Thread {
    public void run() {
        while (true) {
            synchronized (storeHouse) {
                try {
                    while (storeHouse.size() == MAX) {
                        System.out
                                .println("storeHouse is full , please wait");
                    storeHouse.wait();
                }
                Object newOb = new Object();
                if (storeHouse.add(newOb)) {
                    System.out
                            .println("Producer put a Object to storeHouse");
                    Thread.sleep((long) (Math.random() * 3000));
                    storeHouse.notify();
                }
            } catch (InterruptedException ie) {
                System.out.println("producer is interrupted!");
            }

        }
    }
}

}

class Comsumer extends Thread {
public void run() {
while (true) {
synchronized (storeHouse) {
try {
while (storeHouse.size() == 0) {
System.out
.println(“storeHouse is empty , please wait”);
storeHouse.wait();
}
storeHouse.removeLast();
System.out
.println(“Comsumer get a Object from storeHouse”);
Thread.sleep((long) (Math.random() * 3000));
storeHouse.notify();
} catch (InterruptedException ie) {
System.out.println(“Consumer is interrupted”);
}
}
}
}
}

public static void main(String[] args) throws Exception {
    ProducerConsumer pc = new ProducerConsumer();
    pc.start();
}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NIO-DO Java 线上笔试(编程)题,蔚来汽车 的相关文章

  • 基于轨迹数据的人口流向分析技术,精准病毒传播追踪

    2019年12月 我国出现了新型冠状病毒引发的多起病例 全国逐渐开启疫情防疫监控 严重地区甚至实施封闭管理 而此次疫情正好恰逢春运期间 大规模的跨地区人口流动会助长病毒传播 甚至传染到全球范围 因此 科学管理人口流动成为疫情防控关键 基于疫

随机推荐

  • paddledetection在window使用cpu快速上手 & 在cpu端训练自己的VOC类型数据集

    使用cpu快速上手 配置文件 配置文件在configs文件夹下 包含了基本上所有常见模型的配置文件 以yolov3 mobilenet v1 roadsign yml为例 BASE datasets roadsign voc yml run
  • mysql完全卸载方法

    首先注意 一台机器上可以装不同的mysql实例 可以装不同版本的mysql 所以如果非十分必要 可不必对mysql进行完全卸载 下面给出MySQL的完全卸载方法 1 运行cmd 执行net start 查看与mysql相关的服务名称 并记录
  • QCC300x笔记(4) -- 蓝牙地址的规则

    哈喽大家好 这是该系列博文的第四篇 篇 lt lt 系列博文索引 快速通道 gt gt 蓝牙地址分为三部分 LAP 24位地址低端部分 UAP 8位地址高端部分 和NAP 16位无意义地址部分 其中 NAP和UAP是生产厂商的唯一标识码 必
  • ubuntu技巧--python查看已安装包

    1 打开terminal 输入python 进入交互环境 2 比如要查看是否安装numpy包 则输入 help numpy
  • Pnpm:高性能的 npm

    pnpm 英文里面的意思叫做 performant npm 意味 高性能的 npm 官网地址可以参考 https pnpm io 什么是pnpm Pnpm 本质上就是一个包管理器 这一点跟 npm yarn 没有区别 但它作为杀手锏的两个优
  • python中对于bool布尔值的取反

    背景 根据公司业务的需求 需要做一个对于mysql数据库的大批量更新 脚本嘛也是干干单单 使用了redis的队列做缓存 可以异步并发的多任务进行更新 有点难受的地方在于 请求访问时 因为一些网速 速率之内的原因 导致正常的数据会请求失败 处
  • 游戏在计算机丢失,运行游戏时提示丢失d3dx9_43.dll的多种解决方法

    很多人遇到dll文件被丢失首先想到的就是电脑被中毒了 电脑被入侵了 其实往往都是自己对电脑的认识不够深而导致遇到一些小故障就盲目不知道该如何下手 当然遇到没有找到d3dx9 43 dll我们该怎么办呢 下面就来好好认识这个d3dx9 43
  • layui table默认选中指定行

    表格默认选中行 在回调里写入 done function res curr count tableData res data data field id css display none var data res data var num
  • win10系统谷歌浏览器怎么用不了?谷歌浏览器打不开网页的解决方法

    1 我们下载好谷歌浏览器后 搜索时 界面一直卡在主界面 一直在刷新 就是弹不出东西 2 通过设置来是谷歌浏览器可以进行搜索 点击右上角的三个小黑点 在下拉界面中点击 设置 3 在 地址了使用的搜索引擎 后面 点击Google后面的小三角 选
  • 【Linux】进程地址空间

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 虚拟地址 二 对进程地址空间的理解 三 32位下的进程
  • STM32CubeMX时钟源的选择

    使用STM32CubeMX进行时钟源RCC配置的时候 可以选择使用内部时钟或外部时钟 当程序对时钟精度要求较高时 通常使用外部时钟 下拉选框如下图 Disable 禁用外部时钟 BYPASS Clock Resource 外部有源晶振 旁路
  • 在windows上使用ubuntu(非虚拟机模式)

    工具 wsl ubuntu20 04 步骤 在powershell下执行wsl install等待进度条完成 在控制面板 gt 程序 gt 启用或者关闭windos功能 勾选适用于Linux的windos子系统 任务栏的搜索框输入Micro
  • python实验总结_python实训总结和体会_python实训心得体会 - CSDN

    1 字符串格式化表达式 功能 生成一个特定格式的字符串运算符 语法格式 格式化字符串 参数值或格式化字符串 参数值1 参数值2 参数值3 描述 左边是字符串的格式 右边是参数值 当有多个参数值 使用括号 分离格式字符串并使用一个逗号 分隔格
  • MySQL删除数据库

    删除数据库是指在数据库系统中删除已经存在的数据库 数据库删除之后 原来分配的空间将被收回 需要注意的是 数据库删除之后该数据库中所有的表和数据都将被删除 因此删除数据库要特别小心 一 通过SQL语句 MySQL中 删除数据库通过SQL语句D
  • tensorflow学习(二)——训练分类时,对图像进行增强(基于tf.image存在的一些问题)

    0 写作目的 好记性不如烂笔头 1 图像分类时 图像的数据增强 在博主进行图像增强时 存在一些问题 和大家分享一下 1 1 使用tensorflow自带的读取图像函数存在的问题 如果采用直接读取图像的方式 使用tf image进行读取图像
  • zookeeper介绍

    1 简介 Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目 它主要是用来解决分布式应用中经常遇到的一些数据管理问题 如 统一命名服务 状态同步服务 集群管理 分布式应用配置项的管理等 Zookeeper 作为一个
  • Spring-Data-Jpa AuditingEntityListener @CreatedDate @LastModifiedDate 用法

    import com fasterxml jackson annotation JsonIgnoreProperties import org hibernate validator constraints NotBlank import
  • OpenStack学习笔记(二)计算服务NOVA

    本篇记录OpenStack的计算服务NOVA一些内容 很多看不懂 汗 只捡一小部分记录 一 逻辑图 OpenStack 计算服务NOVA 是基础设施服务IAAS的主要部分 采用Python实现 1 因为认证 与OpenStack 身份认证k
  • 如何将GB7714-2015格式的参考文献表转换为bib文件

    如何将GB7714 2015格式的参考文献表转换为bib文件 1 背景 latex使用参考文献是一个自动化的工作 但建立和维护bib文件其实一个长期的积累活动 有些参考文献的bibtex数据是存在 比如从各类学术网站上可以下载到 但有些网站
  • NIO-DO Java 线上笔试(编程)题,蔚来汽车

    NIO DO Java 线上笔试 编程 题 1 使用二分查找的方式来定位某一元素 2 请用你熟悉的开发语言 完成如下题目 输入 若干个集合 各集合中的元素不会重复 输出 求这些集合的笛卡尔积例如 输入 N个集合 这里N 3 a b x y