面试
文章平均质量分 81
sighting_info
这个作者很懒,什么都没留下…
展开
-
Aop原理,类加载器的作用
ao、反射、动态代理之间的关系原创 2024-03-21 11:27:36 · 503 阅读 · 0 评论 -
AQS中的阻塞队列
转载自:码海,按照自己的思路梳理了一遍1.原理AQS数据结构public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { // 以下为双向链表的首尾结点,代表入口等待队列 private transient volatile Node head; private transient v转载 2021-05-19 16:57:48 · 783 阅读 · 0 评论 -
银泰笔试题
做完题目后,很高兴的发给面试官了,第三天,面试官就说做的不好,pass了。想问问大家主要问题出在哪儿呢?是不是数据不能完全加载到内存的算法有问题呢?import com.alibaba.fastjson.JSON;import com.alibaba.mos.api.ItemService;import com.alibaba.mos.api.SkuReadService;import com.alibaba.mos.dao.ItemDAO;import com.alibaba.mos.dat原创 2021-04-01 11:49:31 · 927 阅读 · 2 评论 -
java面试题补充
1、Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?答:sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态,请参考第66题中的线程状态转换图)。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的n原创 2020-12-08 17:08:23 · 366 阅读 · 0 评论 -
java8中的steam
Stream是java8中新增加的一个特性,有关算法和计算的,它更像一个高级版本的 Iterator。(1)Stream是单向的,不可往复,数据只能遍历一次(2)迭代器使用的是外部迭代,而流使用的是内部迭代。采用内部迭代,项目可以透明地并行处理,或者用优化的顺序进行处理,要是使用 Java 过去的外部迭代方法,这些优化都是很困难的。(3)和迭代器又不同的是,Stream 可以并行化操作,迭代器只能命令式地、串行化操作。使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后转载 2020-11-25 11:05:29 · 457 阅读 · 0 评论 -
java8新特性
1.接口中的默认方法和静态方法默认方法可以为接口添加一些默认的实现,实现接口时可以直接使用默认方法。静态方法:如果实现接口时,没有理由再额外提供一个带有实用方法的工具类2.lambda表达式Lambda允许把函数作为一个方法的参数,即行为参数化,函数作为参数传递进方法中。函数作为参数传递进方法中。3.函数式接口一个接口函数需要被实现的接口类型,我们叫它「函数式接口」。例如Comparator(比较器接口)@FunctionalInterfacepublic int..转载 2020-08-21 11:26:05 · 180 阅读 · 0 评论 -
Mysql45讲学习笔记
以下内容来源于丁奇的mysql 45讲,重点需要理解的地方1. 查询sql的具体流程2. 更新语句的执行流程当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log(粉板)里面,并更新内存,这个时候更新就算完成了。同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。redo log 的写入拆成了两个步骤:prepare 和 commit,这就是"两阶段提交"。为什么必须有“两阶段提交”呢?这是为了让两.原创 2021-03-02 10:00:23 · 571 阅读 · 0 评论 -
基本数据类型比较
1 Integer之间的比较public class test2 { public static void main(String[] args) { Integer a = new Integer(1); Integer b = new Integer(1); //自动装箱,等价于Integer sInteger=Integer.valueOf(0), // 当c的范围在[min,max]中间时,取缓存值 //原创 2020-07-23 17:40:17 · 758 阅读 · 0 评论 -
十、设计模式
1.你在设计一个工厂的包的时候会遵循哪些原则?2.你能列举一个使用了Visitor/Decorator模式的开源项目/库吗?3.你在编码时最常用的设计模式有哪些?在什么场景下用?适配器模式。多个类不兼容,系统可以建一个适配器,通过适配器选择适合的类的方法来执行。例如在一次估算房产价格的流程中,有很多不同的测算方法,各个方法之间是相互独立的,那么可以为这些方法建立一个适配器接口,每个...原创 2020-03-23 16:55:43 · 404 阅读 · 0 评论 -
九、网络协议和网络编程
TCP建立连接的过程。 TCP断开连接的过程。 浏览器发生302跳转背后的逻辑? HTTP协议的交互流程。HTTP和HTTPS的差异,SSL的交互流程? Rest和Http什么关系? 大家都说Rest很轻量,你对Rest风格如何理解? TCP的滑动窗口协议有什么用?讲讲原理。 HTTP协议都有哪些方法? 交换机和路由器的区别? 什么是VLAN,有什么作用? 什么是VXLAN,有什...原创 2020-03-26 17:44:16 · 2532 阅读 · 0 评论 -
七、Linux使用与问题分析排查
1.硬链接和软链接的区别?https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html(1)背景:文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的...原创 2020-02-22 20:00:01 · 1367 阅读 · 0 评论 -
六、数据库相关
1.数据库事务的几种粒度 事务是保证每一次操作都是可靠的,即使出现了异常,也不会破坏数据原子性(Atomicity): 事务要么全部完成,要么全部取消。 如果事务崩溃,状态回到事务之前(事务回滚)。 一致性(Consistency): 只有合法的数据(依照关系约束和函数约束)才能写入数据库。 持久性(Durability): 一旦事务提交,不管发生什么(崩溃或者出错),数据要保存...原创 2020-01-17 17:43:39 · 894 阅读 · 0 评论 -
五、框架使用
1.Spring中Bean的生命周期。1)spring对bean进行实例化,默认bean是单例2)spring对bean进行依赖注入3)如果bean实现了BeanNameAware接口,spring将bean的id传给setBeanName()方法4)如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法,将BeanFactory实例传...原创 2020-01-15 17:28:42 · 664 阅读 · 0 评论 -
二、面试-JVM运行机制
1. Java内存结构,JVM堆的基本结构。一、java运行时的数据结构https://blog.csdn.net/sicofield/article/details/784738361)类加载子系统:负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信...原创 2019-09-03 16:40:42 · 562 阅读 · 1 评论 -
一、面试-Java基础
1.实例方法和静态方法有什么不一样?1)实例方法实例方法属于对象,通过 实例对象.方法名(参数)调用。 允许使用静态成员2)静态方法:属于类,通过类名.方法名 只能使用类的静态成员,而不能直接使用非静态成员3)相同点java的所有方法,都被编译成字节码,作为类的类型信息保存在.class文件 jvm有一个堆区(heap)被所有线程共享。还有一块特殊区域叫方法区,又叫静...原创 2019-08-26 17:55:40 · 4686 阅读 · 4 评论 -
四、面试-多线程/并发
1. Java中常见的锁,互斥锁,读写锁,信号量从并发的角度来讲,按照线程安全的三种策略看,主要内容都集中在互斥同步里,我们所讨论的锁也集中在这个部分。这个部分的锁都是悲观锁,第二个部分是非阻塞同步,这个部分也就一种通过CAS进行原子类操作,这个部分可以看成乐观锁,其实也就是不加锁。第三个部分是无同步方案,包括可重入代码和线程本地存储。我们这里主要讨论的就是互斥同步这一部分。一. 按照...原创 2019-12-27 17:45:44 · 414 阅读 · 1 评论 -
三、面试-数据结构与算法基础
1. 说一下几种常见的排序算法和分别的复杂度。排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类: (1)插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)选择排序:简单选择排序、堆排序。 (3)交换排序:冒泡排序、快速排序。 (4)...原创 2020-01-08 14:35:19 · 305 阅读 · 1 评论