随笔分类 - java面试基础
摘要:敏感词、文字过滤是一个网站必不可少的功能,如何设计一个好的、高效的过滤算法是非常有必要的。前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢。我把它程序拿过来一看,整个过程如下:读取敏感词库、如果HashSet集合中,获取页面上传文字,然后进行匹配。我就想这
阅读全文
摘要:JDK1.7 VS JDK1.8 比较 优化概述: resize 扩容优化 引入了红黑树,目的是避免单条链表过长而影响查询效率 解决了resize时多线程死循环问题,但仍是非线程安全的 这里主要讲讲扩容优化,死循环问题看笔记 扩容优化 下面我们讲解下JDK1.8做了哪些优化。经过观测可以发现,我们使
阅读全文
摘要:(为什么一个是8一个是6:防止频繁来回转换小消耗性能) 这是笔者面试阿里时,被问及的一个问题,应该不少人看到这个问题都会一面懵逼。因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作。笔者第一反应也是一样,只能初略的猜测是因为时间和空间的权衡。 要
阅读全文
摘要:(项目遇到的问题,需要比较一个类,我让类实现了Comparable接口重写了类的compareTo方法。Java没有报错,但应用的Sonar 静态检查扫描报了一个问题:重写compareTo()原则上要重写equals(),那不是还得重写hashcode()?? This class defines
阅读全文
摘要:(类的静态变量和静态方法能否被子类继承?) 结论:java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏.原因:1). 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法
阅读全文
摘要:完整的生命周期(牢记): 1.spring容器准备 2.实例化bean 3.注入依赖关系 4.初始化bean 5.使用bean 6.销毁bean Bean的完整生命週期可以認為是從容器建立初始化Bean開始,直到Spring容器關閉。事實上,在Bean被初始化建立之前,容器級別的介面方法也會對Bea
阅读全文
摘要:(重要:spring bean的生命周期。 spring的bean周期,装配。看过spring 源码吗?(把容器启动过程说了一遍,xml解析,bean装载,bean缓存等)) 完整的生命周期概述(牢记): 1.spring容器准备 2.实例化bean 3.注入依赖关系 4.初始化bean 5.使用b
阅读全文
摘要:MVC 模式 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 View(视图) - 视图代表模型包含的数据
阅读全文
摘要:(问较多:1.SpringBoot对比SpringMVC。2.SpringMVC 处理请求过程。问:springboot的理解 Spring,Spring MVC,Spring Boot 三者比较 Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基
阅读全文
摘要:(问:1.for、foreach和Iterator遍历有什么区别 2.遍历删除ConcurrentModificationException异常。) 1.在形式上 for的形式是 for(int i=0;i<arr.size();i++){...} foreach的形式是 for(int i:arr
阅读全文
摘要:(问:亿级ip的过滤) 哈希 hash 原理 Hash (哈希,或者散列)函数在计算机领域,尤其是数据快速查找领域,加密领域用的极广。 其作用是将一个大的数据集映射到一个小的数据集上面(这些小的数据集叫做哈希值,或者散列值)。 一个应用是Hash table(散列表,也叫哈希表),是根据哈希值 (K
阅读全文
摘要:(手写生产者消费者模型,写BlockingQueue较简便 ) 1、背景 生产者生产数据到缓冲区中,消费者从缓冲区中取数据。 如果缓冲区已经满了,则生产者线程阻塞; 如果缓冲区为空,那么消费者线程阻塞。 2、方式一:synchronized、wait和notify 定义Resouce资源类,类中定义
阅读全文
摘要:关于程序员的几个阶段 每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。 LZ常常思考自己的未来,也从自己的思考中总结出了一些东西,作为第一部分来谈谈。LZ认为一名程序员应该有几个阶段(以下时间都算上实习期): 第一阶段 三年 我
阅读全文
摘要:目录 一、引起异常的代码 二、foreach原理 三、从ArrayList源码找原因 四、单线程解决方案 五、在多线程环境下的解决方法 一、引起异常的代码 以下三种的遍历集合对象时候,执行集合的remove和add的操作时候都会引起java.util.ConcurrentModificationEx
阅读全文
摘要:(问题:深拷贝的实现方式,除了重写clone()) 什么是浅拷贝和深拷贝 首先需要明白,浅拷贝和深拷贝都是针对一个已有对象的操作。那先来看看浅拷贝和深拷贝的概念。 在 Java 中,除了基本数据类型(元类型)之外,还存在 类的实例对象 这个引用数据类型。而一般使用 『 = 』号做赋值操作的时候。对于
阅读全文
摘要:一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程; (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上
阅读全文