面经
面经
Coder Mark
这个作者很懒,什么都没留下…
展开
-
【备战秋招】操作系统
操作系统基本概念进程,线程两者区别进程调度算法进程同步进程通信死锁必要条件处理方法银行家算法内存管理页面置换算法 基本概念 并发 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。 并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。 共享 共享是指系统中的资源可以被多个并发进程共同使用。 有两种共享方式:互斥共享和同时共享。 虚拟 虚拟技术把一个物理实体转换为多个逻辑实体。 异步 异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。 进程,线程 进原创 2020-08-13 09:34:24 · 263 阅读 · 0 评论 -
【备战秋招】Redis
Redis概述数据类型STRINGLISTSETHASHZSET数据结构持久化RDB 持久化AOF持久化事务事件复制 概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。 使用场景 计数器 缓存 查找表 DNS 记录就很适合使用 Redis 进行存储 消息队列原创 2020-08-12 23:24:07 · 216 阅读 · 0 评论 -
【备战秋招】数据库
数据库事务并发一致性问题封锁隔离级别多版本并发控制范式Mysql事务 事务 ACID 原子性(Atomicity) 事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。 回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。 一致性(Consistency) 数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。 隔离性(Isolation) 一个事务所做的修改在最终提交以前,对其它事务是不可见原创 2020-08-12 22:00:36 · 179 阅读 · 0 评论 -
【备战秋招】Java并发
并发线程状态转换线程使用基础线程机制ExecutorDaemonsleep()yield()interrupted()互斥同步synchronizedReentrantLock线程协作join()wait() notify() notifyAll()await() signal() signalAll()JUCCountDownLatchCyclicBarrierSemaphoreFutureTaskBlockingQueueForkJoinJMM线程安全不可变互斥同步非阻塞同步锁优化 线程 状态转换原创 2020-08-12 17:40:32 · 227 阅读 · 0 评论 -
【备战秋招】容器
容器CollectionSetListQueueMapArrayListVectorCopyOnWriteArrayListLinkedListHashMapConcurrentHashMapLinkedHashMapWeakHashMap 容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 Collection Set TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不原创 2020-08-12 10:17:23 · 198 阅读 · 0 评论 -
【备战秋招】Java虚拟机
Java 虚拟机运行时数据区垃圾收集Serial收集器ParNew收集器Parallel Scavenge收集器Serial Old收集器Parallel Old收集器CMS收集器G1收集器内存分配与回收策略类加载机制**加载(Loading)****验证(Verification)****准备(Preparation)****解析(Resolution**)**初始化(Initialization**)类加载器双亲委派模型 运行时数据区 程序计数器 线程私有,唯一不存在OOM区域 记录正在执行的虚原创 2020-08-11 21:30:18 · 404 阅读 · 1 评论 -
【备战秋招】计算机网络
计算机网路基本概念链路层PPP协议CSMA/CD 协议 基本概念 ISP 互联网服务提供商 ISP 可以从互联网管理机构获得许多 IP 地址,同时拥有通信线路以及路由器等联网设备,个人或机构向 ISP 缴纳一定的费用就可以接入互联网。 主机之间的通信方式 客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。 对等(P2P):不区分客户和服务器。 交换 电路交换 电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过原创 2020-08-11 14:37:32 · 224 阅读 · 0 评论 -
【备战秋招】堆排序
堆排序 堆构造过程 堆的底层是由数组实现,从a[K]向上一层,就令K等于K/2, 向下一层就令K等于2K,和2K+1, 因此数组的索引一半处之后为叶子节点,无需做处理,因此我们从索引一半处,做下沉. 堆排序 将堆中最大元素和未排序元素中最大索引处元素交换 public class HeapSort { //判断heap堆中索引i处的元素是否小于索引j处的元素 private static boolean less(Comparable[] heap, int i, int j)原创 2020-08-08 23:06:04 · 104 阅读 · 0 评论 -
【备战秋招】Web开发
Web开发ServletMVCFilterListener 对于Browser来说,请求页面的流程如下: 与服务器建立TCP连接; 发送HTTP请求; 收取HTTP响应,然后把网页在浏览器中显示出来。 编写HTTP Server var reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8)); var writer = new BufferedWriter(new原创 2020-08-08 11:26:41 · 211 阅读 · 0 评论 -
【备战秋招】JDBC
JDBCJDBCJDBC查询SQL注入数据类型JDBC更新JDBC事务JDBC BatchJDBC连接池 目前广泛使用的关系数据库: Oracle; SQL Server; DB2; Sybase MySQL PostgreSQL sqlite JDBC 什么是JDBC?JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。 使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接原创 2020-08-03 00:00:11 · 209 阅读 · 0 评论 -
【备战秋招】IO
IOFile对象文件和目录创建和删除文件遍历文件和目录InputStream缓冲阻塞读取classpath资源OutputStreamFilter模式(装饰器模式)序列化反序列化ReaderFileReaderInputStreamReaderWriterPrintStream File对象 在计算机系统中,文件是非常重要的存储方式。Java的标准库java.io提供了File对象来操作文件和目录。 要构造一个File对象,需要传入文件路径: File f = new File("C:\\Windows\\原创 2020-08-01 16:07:09 · 161 阅读 · 0 评论 -
【备战秋招】代理模式
代理模式静态代理动态代理CGlibAOP动态代理方式Cglib实现方法 Java 代理模式实现方式,主要有如下五种方法 静态代理,工程师编辑代理类代码,实现代理模式; 在编译期就生成了代理类。 JDK 动态代理,通过jdk提供的工具方法 Proxy.newProxyInstance动态构建全新的代理类(继承Proxy类,并持有InvocationHandler接口引用 )字节码文件并实例化对象返回。(jdk动态代理是由java内部的 反射机制 来实例化代理对象,并代理的调用委托类方法) 基于CGli原创 2020-07-30 18:27:31 · 140 阅读 · 0 评论 -
【备战秋招】多线程
多线程线程与进程线程创建继承Thread类实现Runnable接口实现Callable接口常用API 线程与进程 一个进程可以包含一个或多个线程,但至少会有一个线程。 操作系统调度的最小任务单位其实不是进程,而是线程。 创建进程比创建线程开销大,尤其是在Windows系统上 进程间通信比线程间通信要慢,因为线程间通信就是读写同一个变量,速度很快。 多进程稳定性比多线程高,因为在多进程的情况下,一个进程崩溃不会影响其他进程,而在多线程的情况下,任何一个线程崩溃会直接导致整个进程崩溃。 一个Java程序实原创 2020-07-22 11:51:34 · 124 阅读 · 0 评论 -
【备战秋招】反射
反射Class类获取Class实例常用方法动态加载访问字段调用方法调用方法获取继承关系动态代理 Class类 除了int等基本类型外,Java的其他类型全部都是class(包括interface).class(包括interface)的本质是数据类型(Type)。 而class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就为其创建一个Class类型的实例,并关联起来。注意:这里的Class类型是一个名叫Class的class。 pu原创 2020-07-30 11:05:10 · 148 阅读 · 1 评论 -
面试官再问你 HashMap 底层原理,就把这篇文章甩给他看
前言 HashMap 源码和底层原理在现在面试中是必问的。因此,我们非常有必要搞清楚它的底层实现和思想,才能在面试中对答如流,跟面试官大战三百回合。文章较长,介绍了很多原理性的问题,希望对你有所帮助~ 目录 本篇文章主要包括以下内容: HashMap 的存储结构 常用变量说明,如加载因子等 HashMap 的四个构造函数 tableSizeFor()方法及作用 put()方法详解 hash()方法,以及避免哈希碰撞的原理 resize()扩容机制及原理 get()方法 为什么HashMap链表会形成死循环原创 2020-06-08 12:49:16 · 465 阅读 · 1 评论 -
Java面试题总结:基础及语法169道
面经原创 2020-04-29 00:12:21 · 408 阅读 · 1 评论 -
【Mark 面经】Java面试大全(转载)
JavaSE 88 转载自https://blog.csdn.net/qq_41112238/article/details/105074636 基础语法 9 Q1:简单说说Java有哪些数据类型 答:①分为基本数据类型和引用数据类型。②基本数据类型包括:数值型(byte、short、int、long、float、double),字符型(char)以及布尔型(boolean)。除了基本类型外,其...转载 2020-04-21 19:30:36 · 278 阅读 · 0 评论