Requirements

   Author: Gentleman.Hu
   Create Time: 2020-10-13 19:40:21
   Modified by: Gentleman.Hu
   Modified time: 2020-11-12 19:08:48
   Email: justfeelingme@gmail.com
   Home: https://crushing.xyz
   Description: My interview requirements all in one

基础

  • 常见数据结构算法

  • 网络编程,TCP/IP ,Http, Socket等

  • SQL语言,MySql,NoSql,Memcached等

  • 操作系统知识

强化基础

  • Spring全家桶使用及其原理理解

  • 多线程,IO,AIO,BIO等,JUC,JMM,JVM等知识

  • 设计模式和原则

  • 数据库三大范式

  • 大数据相关

    • HDSF

    • Hadoop

    • Yarn

    • Kafka

  • 中间件

    • Dubbo

    • mq

    • kafka

    • es

    • ..

  • 分布式系统原理,存储,计算,消息队列,集群管理等理解

  • Rest,RPC等

  • MongoDB,Hbase等

  • Java, Web UI/Angular.JS, big data/Spark, Data/ETL, AI/ML .

其他

  • 负载均衡,高可用,容灾备份

Android

  • Java语言,Kotlin语言熟练

  • 跨平台框架React Native,Flutter

  • Android SDK熟练,常用组件

  • Android Framework层理解

一个安卓岗

1. 全日制本科以上在校生,计算机、软件、通信等相关专业

2. 有扎实的Java 或C,C++基础知识,拥有良好的编程规范,熟悉常用的数据结构和设计模式

3. 熟悉 Android 应用开发,对 UI 开发、应用框架、网络通信、多线程IO模型和数据库存储等有较深了解

4. 善于学习和运用新知识,有进取心。

5. 具有主动的沟通意识,良好的团队合作精神,和一定的承压能力。

6. 热爱移动产品研发,有较强的学习能力,有强烈的求知欲、好奇心和进取心 ,能及时关注和学习业界最新的移动开发技术

7. 熟悉kotlin基础知识或有Android项目开发经验者优先

another

3.对OOP有深刻的理解,有扎实的JAVA基础,熟练Spring、Hibernate、redis等技术应用
4.熟悉数据库设计规范,熟练Mysql数据库开发技术
5.熟悉日常的Linux操作命令
6.熟悉I/O、多线程、集合等基础框架,熟悉分布式、缓存、消息机制等。具备高效解决问题的能力

Lazada,Java一般开发岗

2. 2年及以上使用JAVA开发的经验,JAVA基础扎实,理解io、多线程、集合等基础框架,对JVM原理有一定的了解,对Spring,ibatis,struts等开源框架熟悉;
3. 熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息等机制;能对分布式常用技术进行合理应用,解决问题;
4. 掌握多线程及高性能的设计与编码及性能调优;有高并发应用开发经验;
5. 掌握Linux 操作系统和大型数据库(Oracle、MySql);对sql优化有丰富的经验;
6. 学习能力强,适应能力好,有强烈的责任心,具备耐心/细心的品质;
7. 有良好英语沟通者优先考虑。
2.熟悉linux的编程环境,了解Linux日常运维的基本命令,数据shell脚本更佳
3.熟悉Mysql及sql语言,了解no-sql、key-value 存储原理。能进行基本的数据分析和sql语句的编程
4.熟悉Java及Web应用的开发,了解spring,ibatis,cache,rpc,jvm等机制与代码,有了解源码者优先考虑
5.java基础扎实,熟练掌握网络和多线程编程,对tcp/ip,http协议有很深刻的了解,并了解xml和html语言
6.熟悉基本的设计模式,了解分布式
7.有一定的自学能力,积极向上
8.英文听说读写能力优秀者优先

牛客一个大神字节面试(JAVA)真题合集

作者:字节跳动|内推
链接:https://www.nowcoder.com/discuss/562887?channel=1009&source_id=home_feed
来源:牛客网

Java基础
1.JAVA 中的几种数据类型是什么,各自占用多少字节。

2.String 类能被继承吗,为什么。

3. 两个对象的 hashCode() 相同,则 equals() 也一定为 true,对吗?

4. String 属于基础的数据类型吗?

5.Java 中操作字符串都有哪些类?它们之间有什么区别?

6.Java 中 IO 流分为几种?

7.BIO、NIO、AIO 有什么区别?

8.用过哪些 Map 类,都有什么区别,HashMap 时线程安全的吗,并发下使用的 Map 是什么,他们的内部原理分别是什么,比如存储方法,hashcode,扩容,默认容量等。

9. 如何将字符串反转?

10.抽象类必须要有抽象方法吗?

11.普通类和抽象类有哪些区别?

12.抽象类能使用 final 修饰吗?

13.ArrayList 和 LinkedList 有什么区别?

14.ConcurrentHashMap的数据结构(必考)

15.volatile作用(必考)

16.Atomic类如何保证原子性(CAS操作)(必考)

17.为什么要使用线程池(必考)

Redis
Redis的应用场景
Redis支持的数据类型(必考)
zset跳表的数据结构(必考)
Redis的数据过期策略(必考)
Redis的LRU过期策略的具体实现
如何解决Redis缓存雪崩,缓存穿透问题
Redis的持久化机制(必考)
Redis为什么是单线程的?
什么是缓存穿透?怎么解决?
Redis持久化有几种方式?
Redis为什么这么快?(必考)
Redis怎么实现分布式锁?
Redis如何做内存优化?
Redis淘汰策略有哪些?
Redis常见的性能问题有哪些?该如何解决?
Redis的使用要注意什么?
ZooKeeper
CAP定理
ZAB协议
leader选举算法和流程
zookeeper 是什么?
zookeeper 有几种部署模式?
zookeeper 怎么保证主从节点的状态同步?
Mysql
事务的基本要素
事务隔离级别(必考)
如何解决事务的并发问题(脏读,幻读)(必考)
MVCC多版本并发控制(必考)
binlog,redolog,undolog都是什么,起什么作用
InnoDB的行锁/表锁
myisam和innodb的区别,什么时候选择myisam
为什么选择B+树作为索引结构(必考)
索引B+树的叶子节点都可以存哪些东西(必考)
查询在什么时候不走(预期中的)索引(必考)
sql如何优化
explain是如何解析sql的
order by原理
JVM
运行时数据区域(内存模型)(必考)
垃圾回收机制(必考)
垃圾回收算法(必考)
Minor GC和Full GC触发条件
GC中Stop the world(STW)
各垃圾回收器的特点及区别
双亲委派模型
JDBC和双亲委派模型关系
JVM 中一次完整的 GC 流程是什么样子的,对象如何晋升到老年代,说说你知道的几种主要的 JVM 参数
Spring
Spring的IOC/AOP的实现(必考)
动态代理的实现方式(必考)
Spring如何解决循环依赖(三级缓存)(必考)
Spring的后置处理器
Spring的@Transactional如何实现的(必考)
Spring的事务传播级别
BeanFactory和ApplicationContext的联系和区别
其他
高并发系统的限流如何实现
高并发秒杀系统的设计
负载均衡如何设计
操作系统篇
进程和线程的区别
进程同步的几种方式
线程间同步的方式
什么是缓冲区溢出。有什么危害,其原因是什么
进程中有哪几种状态
分页和分段有什么区别
多线程篇
多线程的几种实现方式,什么是线程安全
volatile 的原理,作用,能代替锁吗?
sleep 和 wait 的区别
sleep(0)的意义
Lock 和 Synchronized 的区别
synchronized 的原理是什么,一般用在什么地方(比如加载静态方法和非静态方法的区别)
补充
另外还会考一些计算机网络之类的。像消息队列,RPC框架这种考的比较少。计算机网络就是分层啊,tcp/udp啊,三次握手之类的。操作系统就是进程与线程啊,进程的数据结构以及如何通信之类的。

数据结构的排序算法也比较常考,考的话一定会让你手写个快排。剩下的算法题就靠LeetCode的积累了。其实非算法岗考的算法题都蛮简单的,很多题完全就是考察你智力是否正常,稍微难点的涉及到一些算法思想的按照LeetCode题目类型的分类,每种题做一两道基本就能完全应付面试了。

Last updated