![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
面+笔试题
面试题与笔试题记录
诗与猿方
一个乐于分享、乐于交流的互联网从业者,欢迎关注与私信
展开
-
面试题——算法:字符串按指定顺序排序
1、将顺序表转换为hashMap,key = a-Z,value = 对应的顺序,这样就能最大限度的。2、之后通过遍历输入的字符串,自定义sort方法,通过比较map中对应的顺序,进行排序。a对应 97 z对应122。0对应 48 9对应57。A对应65 Z对应904。原创 2023-04-26 19:42:08 · 134 阅读 · 0 评论 -
算法------手写LRU算法
具体实现逻辑: 把缓存放到双向链表当中,最近使用过、或新放入的缓存,放到队头,而最久未使用的数据,放在队尾巴。需要:双线链表(Node节点,头结点、尾结点,链表长度,以及链表总长度、和Map[key]value)* 1.链表中已存在当前元素 ,则覆盖原value,并且将当前元素放入队头。当容量满时,将队头数据指定为,最新的数据,将队尾数据移除。意思是:当缓存容量满的时候,淘汰最近很少使用的数据。* 2.2 如果链表长度已满,则删除队尾,放入队头。* 2.1 如果链表长度没满,则放入队头。原创 2022-12-09 13:54:20 · 995 阅读 · 0 评论 -
面试题------线程池的拒绝策略
3.DiscardOldestPolicy:丢弃最老的一个请求,也就是即将被执行的一个任务,并尝试再次提交当前任务。以上的拒绝策略均实现了RejectedExecutionHandler接口,若无法满足需要,可以自己扩展该接口。4.DiscardPolicy:该策略丢弃无法处理的任务,不予任何处理。2.CallerRunsPolicy:该策略直接将任务交给调用者线程运行性能极有可能会极具下降。7.拒绝策略(当达到最大线程数、且工作队列也满了会执行拒绝策略)线程池有哪些拒绝策略?线程池有7个核心参数。原创 2022-11-30 16:36:37 · 413 阅读 · 0 评论 -
面试题------B树和B+树的区别,以及为什么使用B+树而不用B树以及最左匹配原则
在Mysql中一个innodb页就是一个B+树节点,一个innodb页默认16kb,所以一般情况下,一颗两层的B+树,可以存2000万行左右的数据。查找方式不同,因为B树的key和value都存在节点上,因此在查找过程中,可能不用查找的叶子节点就找到了对应的值。3.非叶子节点上的元素在叶子节点上都冗余了,也就是叶子节点中存储了所有的元素,并且排好顺序。4.(非节点存储:地址信息+索引、叶子节点存储:索引+表结构中除了索引外的其他信息)1.节点排序(节点存储:地址信息+索引+表结构中除了索引外的其他信息)原创 2022-11-30 11:20:09 · 1237 阅读 · 0 评论 -
算法笔试题-------对一段英文段落根据单词进行分段,并且根据出现频率排序
背景:英文段落由、。|,分割,对该短信息根据符号进行分段,并且统计单词出现的频率,根据出现频率排序。难点在于:**分割时需要注意转义**、以及**进行排序**。原创 2022-11-10 19:39:33 · 158 阅读 · 0 评论 -
面试题------Spring中Bean的初始化以及销毁init-method、destory-method
通过Spring工厂,可以控制bean的生命周期。通过init-method属性指定初始化后的调用方法。通过destory-method属性指定销毁对象前的方法。class指定需要配置方法的Bean对象测试效果也很好测试打印结果就会将,初始化方法执行,打印其中的输出语句,destory方法也是如此。销毁方法的执行必须满足两个条件1.单例的bean才可以手动销毁2.必须手动关闭容器(调用close方法)时,才会执行手动销毁的方法。1.给属性赋予默认值2.使用构造参数初始化,代码new的时候直接给原创 2022-11-04 21:06:12 · 277 阅读 · 0 评论 -
Java------子类、父类继承、静态方法等等
Java------子类、父类继承、静态方法等等纸上得来终觉浅父类:public class dogs { private Integer id; private String name; public void call(){ System.out.println("dogs.....dogs.......dogs.....dogs.....dogs....dogs...."); } public Integer getId() {原创 2021-06-02 18:05:54 · 180 阅读 · 0 评论 -
String------subString()内存泄漏问题
7.Java中的subString()真的会引起内存泄露么?答:这里首先有个问题,什么是内存泄露,那就向讲一讲内存溢出和内存泄漏的含义,所谓的内存溢出呢,就上内存不够用了,比如在一个无限的循环里不断的创建一个大的对象,使得沾满内存溢出,这就是所谓的内存溢出;而内存泄漏呢,就上指为一个对象分配好内存之后,在对象已经不再使用时未及时的释放,倒是一直占据内存单元,使实际可用内存减少,就好像内存泄漏了一样。内存泄漏问题其实就是在JDK1.6中,例如有一个字符串a,然后字符串b是字符串a的一个子字符串,就上使用su原创 2021-05-19 14:39:18 · 286 阅读 · 0 评论 -
Java----(一)JUC并发基础
并发:多个线程操作相同的资源,保证线程安全,合理使用资源。高并发:服务能同时处理很多请求,提高程序性能。CPU多级缓存为什么需要多级缓存?CPU的频率太快,快到主存跟不上,在处理器时钟周期内,CPU常常需要等待主存,浪费资源。所以Cache的出现,是为了缓解CPU和内存之前速度的不匹配问题(结构:cpu->cache->memory)CPU cache有什么意义?1.时间局部性:如果某个数据被访问,那么在不久的将来它很可能被再次访问。2.空间局部性:如果某个数据被访问,那么与它相邻原创 2021-05-08 08:51:10 · 73 阅读 · 0 评论 -
笔试题------try/catch/finally中finally执行以及变量返回情况
首先应该明确:当程序执行到try语句中,并且没有 System.exit(0);语句时,finally语句一定会执行。并且在try、catch语句中 如果要返回基本类型,在返回前会复制一份变量值,在finally里面修改这个变量的值将不起作用。变量返回时会使用try或者catch语句中的值(如果不发生异常,则使用try中的值,发生异常则使用catch的值)。问题:1.下列程序的输出结果为...原创 2020-04-12 21:55:20 · 715 阅读 · 0 评论 -
笔试题------流水线阻塞/子网划分/静态变量值变化
仅部分考题(仅供参考)1.下列不会引起指令流水线阻塞的是()A.数据相关B.条件转移C.数据旁路D.资源冲突答案:C,数据旁路【解析】:可能引起流水线阻塞的三种相关:资源相关(又称结构相关):不同指令同时征用同一功能部件。数据相关:后继指令需要前面指令的运算结果。这两个指令是数据相关。控制相关:主要由转移指令引起。而数据旁路:是解决数据相关的一种方式:其主要思想是不必待某条...原创 2020-04-12 21:24:58 · 911 阅读 · 0 评论