面经
liuxinyu9795
这个作者很懒,什么都没留下…
展开
-
2020秋招oppo提前批成都的面经
楼主有幸过了oppo的简历评估,去面试了一下,虽然没进二面,但是分享一下自己的面经1.Java的八种基本类型2.String,StringBuffer,StringBuilder区别3.JUC里有哪些类,atom类知道吗4.concurrentHashmap如何实现的,hashtable如何实现5.Jvm内存,新生代,老年代用什么算法6.集合的最高父类是什么?List和Set的区别7...原创 2019-07-15 15:28:46 · 1176 阅读 · 0 评论 -
数据库(含Mysql,redis)的面经
一、数据库基础1.什么是事务?事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。2.ACID属性原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行一致性(Consistency):当事务完成时,数据必须处于一致状态隔离性(Isolation):对数据进行修...原创 2019-08-11 13:49:02 · 357 阅读 · 0 评论 -
四、Java并发-ReentrantLock原理(AQS)和synchronized的区别
一、ReentrantLock重入锁ReentrantLock,就是支持重进入的锁,它表示该锁能够支持一个线程对资源重复加锁。ReentrantLock虽然不像synchronized关键字支持隐式的重进入,调用Lock方法时,获取到锁的线程仍然能再次调用Lock获取锁而不被堵塞。它提供了与synchronized关键字相似的同步,只是在使用时需要显式的获取和释放锁,缺少了便捷性,但拥有了可操作...原创 2019-07-27 23:50:51 · 2999 阅读 · 1 评论 -
计算机网络面经
1.OSI七层模型应用层,表示层,会话层(前三层是数据),传输层(分段),网络层(分组(数据报)),数据链路层(帧),物理层(比特)2.Tcp/Ip协议簇:应用层:应用层,表示层,会话层(后两个没有协议)传输层:传输层网络层:网络层链路层:数据链路层,物理层3.应用层:应用层有哪些协议:HTTP,SMTP,Telnet(远程终端访问),FTP,DNS,SIP(互联网电话)(只有...原创 2019-07-23 13:53:21 · 1977 阅读 · 1 评论 -
三、Java并发-HashMap,HashTable和ConcurrentHashMap的源码学习
一.HashMap的底层实现(1)jdk1.8之前,是采用的数组(Entry)+链表实现的,数组的初始值为16,数组储存的是链表的头结点,而hashcode算法是通过位运算来实现散列运算的存在问题:可能多个值都计算后连接在一个链表上,链表会变得很长,查询性能低(2)jdk1.8之后,采用的是数组(Node)+链表/红黑树实现的,当链表长度等于8时,就会将链表转换为红黑树,这样进行查询就提高...原创 2019-07-27 02:23:41 · 155 阅读 · 0 评论 -
二、Java并发-volatile和synchronized的底层实现及不同和CAS的原理
在多线程并发编程中synchronized和volatile都扮演的重要的角色,接下来我们来学习一下他们两个的相关知识及底层原理:1.volatile的定义定义:Java语言允许线程访问共享变量,为了确保共享变量能被准确一致地更新,线程应该确保通过排他锁单独获得这个变量于是Java提供了volatile,某些情况比锁更方便。如果一个字段被声明为volatile,Java内存模型(JMM)确保...原创 2019-07-26 16:02:25 · 700 阅读 · 0 评论 -
一、Java并发-线程与进程
最近好几天没更博了,刷完了剑指Offer之后,上次oppo和字节都问到了我薄弱的一环——Java并发相关,我这几天去找了几本书看了看,整理记录了一些心得和面试题,分享给大家1.什么是线程?操作系统在运行一个程序时,会为其创建一个进程。而线程就是现在操作系统系统调度的最小单元,也叫轻量级进程,一个进程里可以创建多个线程,这些线程都拥有各自的计数器,堆栈和局部变量等属性,并且能访问共享的内存变量。...原创 2019-07-26 02:01:34 · 194 阅读 · 0 评论 -
JVM的面经
JVM也是很重要的一个面试常考的部分,其中JVM的内存区域和GC垃圾回收是最重要的点,下面让我们来学习下有哪些考点吧1.Java虚拟机的构成(重点)(1)Class Loader类加载器:依据指定格式,将class文件加载到内存(2)Execution engine执行引擎:对命令进行解析(3)Native Interface本地接口:融合不同的开发语言的原生库(4)Runtime Da...原创 2019-07-30 14:26:03 · 829 阅读 · 0 评论 -
六、Java并发-JUC包的梳理
一、JUC包的介绍JUC是java.util.concurrent的缩写,提供了并发编程的解决方案1.核心是:(1)CAS:是java.util.concurrent.atomic包的基础(2)AQS:是java.util.concurrent.locks包以及一些常用类比如Semophore,ReentrantLock等类的基础2.JUC包的分类(1)线程执行器executor及其线...原创 2019-07-30 01:38:54 · 1070 阅读 · 0 评论 -
五、Java并发-线程池的底层实现
一、使用Java线程池的好处(1)降低资源消耗。通过重复利用已创建的线程降低反复创建和销毁线程的消耗(2)提高响应速度。任务不需要等线程创建就可以执行(3)提高线程的可管理性。使用线程池可以统一分配,调优和监控二、线程池对任务的处理流程(1)线程池判断核心线程池中的线程是否有空余的。如果有,就创建新的工作线程完成任务,没有就下一步(2)线程池判断工作队列是否满了。如果没满就存在工作队列...原创 2019-07-28 23:33:55 · 382 阅读 · 0 评论 -
操作系统的面经
1.线程和进程的区别(1)从功能来说:线程:是操作系统的任务调度和执行的基本单位进程:是资源分配的基本单位(2)从构成来说进程:内部含有线程和逻辑内存(进程间相互独立)线程:栈(存放方法的参数,局部变量等),PC(下一条指令的地址,指向进程里的逻辑内存)所以说:一个进程中有一个或多个线程(3)从开销来说:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;...原创 2019-07-15 21:57:50 · 3840 阅读 · 0 评论 -
2020秋招字节跳动提前批成都Tob后端一面凉经
视频面试面试官态度真的好,可惜最后还是没过一面,第二天收到了感谢信,给大家分享下自己的面经吧:1.自我介绍2.项目介绍3.Hashmap的实现原理,8以上还是用链表吗?为什么不是6,Hashtable的底层实现看过吗4.List和Set有什么区别5.线程池有哪几种?什么是可见性?sy和vo有什么区别?6.数据库的隔离级别有哪几种?mysql的两个引擎是什么?有什么区别?索引了解哪些?...原创 2019-07-15 16:37:16 · 491 阅读 · 0 评论 -
Spring面经
一、Spring1.为什么要使用Spring(1)spring 提供 ioc 技术,容器会帮你管理依赖的对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦。(2)spring 提供了事务支持,使得事务操作变的更加方便。(3)spring 提供了面向切片编程,这样可以更方便的处理某一类的问题。(4)更方便的框架集成,spring 可以很方便的集成其他框架,比如 MyBati...原创 2019-08-11 22:50:42 · 804 阅读 · 0 评论