盒马生鲜提前批一面 时间为7月20多号 【凉】
- 单点登录
- HTTP状态
100到500
- 负载均衡分类
- 熔断保护
- java基本数据类型/具体
基本类型:int char, boolen,double float short
引用类型
- String属于什么类型 引用类型
- goto
Java 中没有goto语句,作为保留关键字
- 重写equals为什么要重写hashcode
规定相等的对象必须具有相同的hashcode
- TCP三次握手
- 七层网络四层网络
- IP,TCP属于哪个层
- HTTP属于哪一层
- hashmap和hashtable
- 什么是线程安全
在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况
- volatile
保证内存的可见性。
- 什么是可见性
一个线程修改了共享变量的值,其他线程也能看到最新修改的值 。
- synchronized和lock区别
1、Lock是java的一个interface接口,而synchronized是Java中的关键字,synchronized是由JDK实现的,不需要程序员编写代码去控制加锁和释放;Lock的接口如下:
2、synchronized修饰的代码在执行异常时,jdk会自动释放线程占有的锁,不需要程序员去控制释放锁,因此不会导致死锁现象发生;但是,当Lock发生异常时,如果程序没有通过unLock()去释放锁,则很可能造成死锁现象,因此Lock一般都是在finally块中释放锁;格式如下:
3、Lock可以让等待锁的线程响应中断处理,如tryLock(long time, TimeUnit unit),而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够中断,程序员无法控制;
4、通过Lock可以知道有没有成功获取锁,tryLock()方法返回boolean值,因此可知道是否获得了锁,而synchronized却无法办到。
5、Lock的实现类ReentrantReadWriteLock提供了readLock()和writeLock()用来获取读锁和写锁的两个方法,这样多个线程可以进行同时读操作。
6、Lock锁的范围有局限性,仅适用于代码块范围,而synchronized可以锁住代码块、对象实例、类。
- 栈和堆的区别
- 垃圾回收算法
- CMS
- spring特点
- 设计模式
- 数据库事务隔离
- ACID
- 你有什么问题
题目涉及Java基础,Java多线程,计算机网络, spring基础,设计模式基础,数据库
中兴提前批-2019/7/31 100min
- 项目介绍
- 项目问题: 分布式, 单点登录实现过程, 网关服务, 负载均衡, 有哪些负载均衡策略, zipkin如何实现, 熔断如何实现, 熔断机制
- 多线程有哪些实现方式, FutureTask有哪些特性
Java多线程,回答四种。
- 进程和线程的区别, 协程
- python协程如何实现
- 造成死锁的原因, 如何解决
互斥条件(Mutual exclusion) :资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):进程已获得了一些资源,但因请求其它资源被阻塞时,对已获得的资源保持不放。
不可抢占条件(No pre-emption) :有些系统资源是不可抢占的,当某个进程已获得这种资源后,系统不能强行收回,只能由进程使用完时自己释放。
循环等待条件(Circular wait) :若干个进程形成环形链,每个都占用对方申请的下一个资源。
- ==和equals比较
- Linux有哪些内存
- top指令介绍, 查看网络端口指令
- 用过哪些前端工具, css干什么的
- 什么是ajax
- 事务有哪些, 具体一点, Redis事务有回滚吗
- 矩阵翻转
- 数组和链表的区别
- 双向链表删除节点手写代码, 并发情况下如何考虑
- JAVA与C++区别
知识点:Java多线程,Java基础,操作系统理论(死锁,进程,线程,协程) 前端基础(css,ajax) 数据库基础,Linux查看系统硬件指令命令。
一面
- 自我介绍
- 项目介绍, 单点登录, 链路跟踪
- Linux查看系统进程, 查看网络接口, 查看内存, load三个指标
top 查看系统进程
ifconfig 查看网络接口
内存free -m # 查看内存使用量和交换区使用量
- spring中IOC/DI, AOP如何实现
- RabbitMQ
- Redis
- 多路复用, Reactor事件分发器
- 数据库如何查询大数据
- 数据库建立索引有哪些注意的地方
- 数据库索引有哪些
- 左连接和右连接的区别
- 数据序列化
- Java中HashMap与HashTable区别
- Java中HashMap底层数据结构
- Java中volatile有什么用, 能保证原子性吗 不能
- 有哪些排序算法, 堆的时间复杂度
- 跨域
- 微信发红包如何测试
- 100亿数据获取第K个大的值
- 你有什么问题
Java 基础/Java并发/数据库/Linux基础/spring基础/
- SSH如何保持连接, 连接过程
- 你对分布式看法
- 注册服务, zookeeper能否实现负载均衡
- 如何实现容错
- 链路跟踪怎么做
- 单点登录怎么做的? 为什么想到会这么做? 多个请求会出现什么
- springcloud与springboot的区别
上面的问题比较难
- ArrayList与LinkedList区别? 多线程安全吗? 如何实现多线程安全?
不完全,加锁,使用
- 类加载机制, 如何打破该机制
- 什么是ORM
- 冒泡排序过程? 比较多少次?
- 项目中神经网络模型用了哪些? 数据可视化怎么做?
- 你有什么问题
腾讯-后台开发-2019/8/6 55min 【问我几次C++都说不怎么会-凉】
- 自我介绍
- 上课学习了哪些内容
- c++中class, struct, union
- c++中&和*区别
- TCP与UDP的区别, 场景, TCP如何实现可靠传输
- TCP粘包现象, TCP分别传输10字节, 20字节, 30字节能够一下接收到60字节码
- TCP三次握手, 四次挥手, 具体状态, 为什么要2MSL
- 多线程与多进程区别
- 多线程与多进程之间的通信
- 输入网址到获得页面过程, 用了哪些网络协议
- 如何获得域名
- DNS用的什么端口, 协议, 使用UDP吗
- 什么是ARP
- HTTP与HTTPS区别, HTTPS端口一定是443吗
- Redis使用介绍(回答完后没有反应, 继续介绍底层数据结构, 持久化, 缓存策略, 淘汰策略)
- 什么是二范式, 具体例子
- MySQL中MySIM与InnoDB结构, 聚集索引与非聚集索引区别
- 事物四种隔离级别, MySIM与InnoDB分别是什么(emmm, InnoDB不支持事物)
- MySIM与InnoDB区别
- left join 过程
- 快排
腾讯会问C/C++基础,计算机网络,数据库,操作系统
浦发-系统开发-2019/8/23 20min面试+50min笔试
成都地区2000人左右面试...... 问成绩
针对项目问:
- 微服务实现怎样的功能
- 如何实现负载均衡
- 如何实现网关服务
- 事务一致性问题
- ...
基础知识:
-
有哪些设计模式
-
Spring中有哪些设计模式
-
SpringCloud和SpringBoot的区别
-
路由器属于七层模型中的什么层
-
快排
-
如何快速查找指定文件名, 文件内容
-
Java的HashMap遍历方式
使用迭代器和foreach
-
MySQL端口号 3306
-
主键外键
-
行转列
-
总结: 面试较轻松
多益网-游戏开发(投的后台开发) 26min
- 项目介绍
- 平时玩不玩游戏
- 地图导航算法...
- 函数指针
- C指针
- C中定义与声明区别
- python引用计数对象如何实现(???)
- 线程与进程区别
- 在线笔试: 数组往右移动K位
猿辅导-后端服务
一面 2019/8/23 50min
- 项目实现哪些功能, 问项目细节
- 线程安全
多个线程访问共享变量,对共享变量的操作正确无误
- 多线程synchronized锁住类方法是锁住的什么?
静态方法中,synchronized锁的是整个类对象,类似于(X.class),该类中所有加了synchronized的静态方法,一次只能调用一个
- 线程池有哪些
- 线程与进程区别
- Java内存模式(忘记问的是JVM内存模型还是JMM了, 可能回答错了)
- SpringBoot中如何写starter
- MySQL索引有哪些
- 聚集索引与非聚集索引的区别 在线笔试:
- 删除链表倒数第k个节点(双指针)
- 判断树是否为完全二叉树
二面 2019/8/30 56min
- 项目介绍
- 如何实现服务发现
- 如何实现负载均衡 ngix
- 如何实现路由配置
- 服务之间如何通讯
- 服务如何调用
- 序列化是如何实现
- final修饰符的作用
- Redis数据结构
- Redis中的字典与Java中HashMap字典区别
- HashMap为什么不是线程安全(安全失败与快速失败)
- 了解hashCode和equals吗
- TCP与UDP的区别
- 常用的单例模式, 细讲几个
- 手写单例模式(双重校验锁), 为什么要加volatile, synchornized锁住的是什么
- 环形链表实现队列, 删除后需要保存原队列, 这样就不用频繁地进行创建代码
三面 2019/9/3 60min 现场面
-
问项目
-
两个线程一个打印奇数一个打印偶数 【凉】
-
有序链表合并
-
猿辅导最近一个笔试第二题, 3个人一个组合, 输出有几个组合
-
二分法求一个数的平方根
-
总结: 面试体验很好, 菜是原罪
联影-AI软件开发-成都
简历面-2019/8/29 13min
- 哪个项目做的好
- goto是关键字吗
- char能够表示中文字符吗
- 多线程同步有哪些方式
- sleep和yield的区别
- try-catch-finally执行
- 常用的设计模式
- 垃圾回收算法有哪些
- 线程池用过吗
- MySQL索引
- MySQL中自增主键, 删除数据重启后插入数据的主键值
- MySQL中的heap表
- MySQl中怎么区分float与double
- MySQL中varchar与char区别
一面 2019/9/7 30min
- 项目介绍
- TCP与UDP的区别
- 三次握手过程, 为什么要三次握手
- 多态
- 为什么要用多态
- 梯度斜率
- 设计模式的开闭原则
- djikstr最短路径
- 一些其他问题
极米-Java软件开发-成都 【凉】
一面-2019/9/2 20min
- 自我介绍
- 什么是微服务
- 微服务优缺点
- 注册发现如何实现
- TCP三次握手四次握手
- TCP连接中, 如果客户端挂掉之前没有关闭连接, 会怎么样
- 乐观锁与悲观锁
- 一个对象有两个方法被synchronized修饰, 可以同时调用两个方法吗
- 快排
- 二叉排序