网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
百度
- 什么是 Java 的反射机制。
- Cookie 和 Session的区别。
- get 和 post请求的区别。
- IOC的优点是什么。
- IO 和 NIO的区别,NIO优点。
- JRE、JDK、JVM 及 JIT 之间有什么不同。
- Hashcode 的作用。
- 简述一致性 Hash 算法。
- 为什么在重写 equals 方法的时候需要重写 hashCode 方法?equals与 hashCode 的异同点在哪里。
- 为什么 Map 接口不继承 Collection 接口。
- 说出几点 Java 中使用 Collections 的最佳实践?
- GC是什么?为什么要有GC。
- 什么时候会导致垃圾回收。
- GC 有几种方式?怎么配置。
- 什么时候一个对象会被GC? 如何判断一个对象是否存活。
- 垃圾回收器的基本原理是什么?
- Serial 与 Parallel GC之间的不同之处。
- JVM 中一次完整的 GC 流程是怎样的? 对象如何晋升到老年代。
- 吞吐量优先和响应优先的垃圾收集器选择。
- 说说你知道的几种主要的jvm 参数。
- Java中存在内存泄漏问题吗?请举例说明。
- 什么是线程,多线程的优点是什么?以及简单说一下多线程的几种实现方式。
- ThreadLocal 用途是什么,原理是什么,用的时候要注意什么?
- 线程池是什么?为什么要使用它?如何创建一个Java线程池?
- ThreadPool用法与优势可以说一下么?
- synchronized 的原理是什么?synchronized 和 ReentrantLock 有什么不同?
- 有T1,T2,T3三个线程,怎么确保它们按顺序执行?怎样保证T2在T1执行完后执行,T3在T2执行完后执行同步块内的线程抛出异常会发生什么?
- 什么是乐观锁(Optimistic Locking)?如何实现乐观锁?如何避免ABA问题。
- Java中活锁和死锁有什么区别?
- Executors类是什么? Executor和Executors的区别?
- 什么是设计模式(Design Patterns)?你用过哪种设计模式?用在什么场合?
- 你能写出三种单例模式实现么?
- 你知道Google是如何在一秒内把搜索结果返回给用户?
- 高并发下,如何做到安全的修改同一行数据?
- 如何避免浏览器缓存。
- 大型网站在架构上应当考虑哪些问题?
- 最近有在看什么书么,印象最深刻的是什么?
- 你们线上应用的 JVM 参数有哪些?
- 能简单说下你对算法的理解么?
- Bitmap 使用时候注意什么?
- Oom 是否可以try catch ?
- 内存泄露如何产生?
- 适配器模式,装饰者模式,外观模式的异同?
- ANR 如何产生?
- String buffer 与string builder 的区别?
- 如何保证线程安全?
- java四中引用
- Jni 用过么?
- 多进程场景遇见过么?
- 关于handler,在任何地方new handler 都是什么线程下
- sqlite升级,增加字段的语句
- bitmap recycler 相关
- 强引用置为null,会不会被回收?
- glide 使用什么缓存?
- Glide 内存缓存如何控制大小?
- 如何保证多线程读写文件的安全?
京东
- java常用的数据结构有哪些?哪些是线程安全的?是怎么保证线程安全的?
- Redis中的Lua有没有使用过? 可以用来做什么? 为什么可以这么用?
- 线程池内部工作原理可以说一下么?
- 死锁是什么意思,形成条件是什么?出现死锁是可以通过什么方式去排查。
- 在交易过程中如何放在用户在支付时的重复支付(交叉支付),请写出你了解的方案或使用的过的方案。
- 数据库索引有哪几种,他们之间的区别。
- 程序开发时通过开发工具DeBug调试时,控制台显示的内容都包含什么?哪些内容可以帮助你发现问题和解决问题。
- RPC通信过程中,假设A系统提供了一个方法入参是一个JavaBean,出参也是一个JavaBean。另外两个系统B系统、C系统调用接口,调用方B想让提供方A增加一个返回参数,假设服务提供方A增加了返回参数,请问C系统调用方需要做什么处理?
- 了解哪些设计模式,用伪代码实现一个你熟悉的设计模式。
- 讲一下怎么使用分布式锁。
- 说说HashMap的原理, 以及HashMap如何扩充bucket的大小。
- Redis的Pipeline是用来干什么的?
- Mysql索引的分类(Btree, hash),各自使用什么情况 。
- 说说Myisam, Innodb区别。
- 知道哪些负载均衡算法。
- 说一下Btree的查找原理。
- 简述三次握手,如果c端发起握手请求,s端无法立刻建立连接应该回应什么?
去哪儿网
- 自我介绍,项目介绍。
- mysql数据库调优。
- sql优化。
- like能用索引吗?
- java对象四种引用。
- GC原理。
- jvm内存结构。
- 说一下你学过jvm 在书写代码上对你有什么帮助和提高。
- 千万数据量的查询你会怎么做?
- HashMap在jdk1.7和1.8的区别,为什么引入这个概念?hash碰撞怎么解决,为什么1.8要比1.7更好,好在哪?
- 关于你的项目,如果并发很大,你会怎么改造。
- 方法区里什么样的对象有可能被回收。
- 线上cpu飙升100%你怎么处理。
- 频繁FullGC怎么处理。
- 线程池创建有几种,为什么创建定长的线程池个数最好是5,10,15这样的数字。
- linux命令。
- 伊甸区和幸存区可动态变化吗?
- redis和memcached区别。
- 说几个jdk命令,jmap是什么意思。
- 如果并发很大,你对数据的正确性怎么保证。
饿了么
- http和https的区别,https原理,http2.0与1.0的区别。
- Java的垃圾回收机制,Java文件加载机制,tomcat类加载机制,锁机制,jvm原理及线上调优,jvm内存模型。
- 多线程,有哪些可以保持进程同步的方法,创建线程的几种方法,对i++多线程访问你会怎么做。
- Java的设计模式,单例有什么模式,懒汉为什么加volotile,volotile的内存屏障,如何避免死锁。
- 考虑单例模式的编写,要线程安全且内存消耗小(剑指offer原题)。
- String、StringBuilder、StringBuffer区别;String类能被继承吗?为什么?
- 在白纸上手写二分法排序算法(lintcode上原题);二分查找的思想。
- 查找单链表中倒数第k个节点的算法,手写(lintcode上原题);最常见的排序算法你见过哪些,快排的基本思想及时间复杂度。
- 常见的数据结构有哪些。
- hashmap、hashcode一样,不equals怎么处理 ;hashcode实现原理,currentHashMap原理,实现细节,怎么实现同步的;类为什么要有hascode方法,是不是主要在集合类中都要实现hashcode方法;equals方法怎么实现;两个不同的对象可能有相同的hashcode值吗;常用集合有哪些。
- tcp三次握手,四次挥手协议。
- 架构设计一个开发性问题,设计一个Nginx管理的中间件,怎么设计。
- 所有的类都继承与object,你用过object类的直接子类有哪些,object类常用的方法有哪些。
- Java会出现内存泄漏吗,如果回,在哪种情况下?
- 抽象类和接口的区别。
- 平时怎么扩展自己的专业知识水平。
美团
- static synchronized 方法的多线程访问和作用,同一个类里面两个synchronized方法,两个线程同时访问的问题
- 内部类和静态内部类和匿名内部类,以及项目中的应用
- handler发消息给子线程,looper怎么启动
- View事件传递
- activity栈
- 封装view的时候怎么知道view的大小
- arraylist和linkedlist的区别,以及应用场景
- 怎么启动service,service和activity怎么进行数据交互
- 下拉状态栏是不是影响activity的生命周期,如果在onStop的时候做了* 网络请求,onResume的时候怎么恢复
- view渲染
今日头条
- 数据结构中堆的概念,堆排序
- 死锁的概念,怎么避免死锁
- ReentrantLock 、synchronized和volatile(n面)
- HashMap
- singleTask启动模式
- 用到的一些开源框架,介绍一个看过源码的,内部实现过程。
- 消息机制实现
- ReentrantLock的内部实现
- App启动崩溃异常捕捉
- 事件传递机制的介绍
- ListView的优化
- 二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径
- 模式MVP,MVC介绍
- 断点续传的实现
- 集合的接口和具体实现类,介绍
- TreeMap具体实现
- synchronized与ReentrantLock
- 手写生产者/消费者模式
- 逻辑地址与物理地址,为什么使用逻辑地址
- 一个无序,不重复数组,输出N个元素,使得N个元素的和相加为M,* 给出时间复杂度、空间复杂度。手写算法
- .Android进程分类
- 前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。
- Activity的启动模式
爱奇艺
- RxJava的功能与原理实现
- RecycleView的使用,原理,RecycleView优化
- ANR的原因
- 四大组件
- Service的开启方式
- Activity与Service通信的方式
- Activity之间的通信方式
- HashMap的实现,与HashSet的区别
- JVM内存模型,内存区域
- Java中同步使用的关键字,死锁
- MVP模式
- Java设计模式,观察者模式
- Activity与Fragment之间生命周期比较
- 广播的使用场景
携程
- Activity启动模式
- 广播的使用方式,场景
- App中唤醒其他进程的实现方式
- AndroidManifest的作用与理解
- List,Set,Map的区别
- HashSet与HashMap怎么判断集合元素重复
- Java中内存区域与垃圾回收机制
- EventBus作用,实现方式,代替EventBus的方式
- Android中开启摄像头的主要步骤
网易
- concurrenthashmap
- volatile
- synchronized与Lock
- Java线程池
- wait/notify
- NIO
- 垃圾收集器
- Activity生命周期
- AlertDialog,popupWindow,Activity区别
小米
- String 为什么要设计成不可变的?
- fragment 各种情况下的生命周期
- Activity 上有 Dialog 的时候按 home 键时的生命周期
- 横竖屏切换的时候,Activity 各种情况下的生命周期
- Application 和 Activity 的 context 对象的区别
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
图片转存中…(img-kk2hrZRH-1715726804915)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新