
面试题
秋夫人
将军赶路不追野兔
展开
-
面试题 - Redis分布式锁原理,Redisson分布式锁原理,Redis分布式锁缺点
Redis分布式锁原理分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。使用setnx、getset、expire、del这4个redis命令实现setnx 是『SET if Not eXists』(如果不存在,则 SET)的简写。 命令格式:SETNX key value;使用:只在键 k原创 2020-12-22 16:44:53 · 3308 阅读 · 0 评论 -
面试题 - Spring 如何解决循环依赖?
Spring是如何解决循环依赖的问题的。spring可以解决属性注入循环依赖,默认不能解决构造器注入循环依赖spring创建对象分两步,①初始化实例对象,②初始化对象属性spring循环依赖,最初引用的就是半成品,也就是只初始化示例对象,还没有初始化对象属性因此解决了循环依赖问题。spring循环依赖原理这个问题算是关于Spring的一个高频面试题,因为如果不刻意研读,相信即使读过源码,面试者也不一定能够一下子思考出个中奥秘。本文主要针对这个问题,从源码的角度对其实现原理进行讲解。1.原创 2020-12-22 14:42:42 · 678 阅读 · 0 评论 -
面试题 - spring 事务
Spring事务的配置方式Spring支持编程式事务管理以及声明式事务管理两种方式。1. 编程式事务管理编程式事务管理是侵入性事务管理,使用TransactionTemplate或者直接使用,PlatformTransactionManager,对于编程式事务管理,Spring推荐使用TransactionTemplate,编程式事务粒度可以到代码级别。2. 声明式事务管理声明式事务管理建立在AOP之上,其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,执行完目标方法之后根据转载 2020-12-22 12:54:09 · 1014 阅读 · 0 评论 -
面试题 - MySQL优化技巧
MySQL优化三大方向① 优化MySQL所在服务器内核(此优化一般由运维人员完成)。② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行参数调整。③ 对SQL语句以及表优化。MySQL参数优化MySQL 默认的最大连接数为 100,可以在 mysql 客户端使用以下命令查看mysql> show variables like ‘max_connections’;2:查看当前访问Mysql的线程mysql> show processlist;3:设置最大转载 2020-12-21 22:02:38 · 289 阅读 · 0 评论 -
面试题 - JVM内存结构
JVM内存结构JVM 可以分为 5 个部分,分别是:类加载器(Class Loader):加载字节码文件到内存。运行时数据区(Runtime Data Area):JVM 核心内存空间结构模型。执行引擎(Execution Engine):对 JVM 指令进行解析,翻译成机器码,解析完成后提交到操作系统中。本地库接口(Native Interface):供 Java 调用的融合了不同开发语言的原生库。本地方法库(Native Libraies):Java 本地方法的具体实现。这其中最复杂翻译 2020-10-28 15:05:57 · 787 阅读 · 0 评论 -
面试题 - synchronized 和Lock区别
一、synchronized实现原理Java中每一个对象都可以作为锁,这是synchronized实现同步的基础:普通同步方法,锁是当前实例对象静态同步方法,锁是当前类的class对象同步方法块,锁是括号里面的对象当一个线程访问同步代码块时,它首先是需要得到锁,当退出或者抛出异常时必须要释放锁,那么它是如何来实现这个机制的呢?我们先看一段简单的代码:public class SynchronizedTest { public synchronized void test1(){原创 2020-10-26 13:20:22 · 3316 阅读 · 0 评论 -
面试题 - ThreadLocal详解
目录(jdk1.8)一、什么是ThreadLocal二、ThreadLocal怎么用三、ThreadLocal的原理四、ThreadLocal源码分析1.ThreadLocal的内部属性2.ThreadLocal 之 set() 方法3.ThreadLocal 之 get() 方法4.TreadLocal的remove方法5.内部类ThreadLocalMap的基本结构和源码分析5.1先看成员和结构部分5.2接着看ThreadLocalMap的构造函数5.原创 2020-09-30 17:29:07 · 11895 阅读 · 2 评论 -
面试题 - Java泛型、协变、逆变、类型擦除
Java 泛型之-协变&逆变先说一下java中的协变,逆变,不可变:假设有如下类:class Food{} // 默认继承Objectclass Fruit extends Food{}class Meat extends Food {}class Apple extends Fruit{}class Beef extends Meat{}逆变与协变Java中String类型是继承自Object的,姑且记做String ≦ Object,表示String是Object的子类型原创 2020-09-21 16:44:40 · 855 阅读 · 0 评论 -
面试题 - Java Comparable和Comparator 区别
Comparablepackage java.lang;public interface Comparable<T> { public int compareTo(T o);}Comparatorpackage java.util;public interface Comparator<T> { //必须实现的方法 int compare(T o1, T o2); //选择实现 boolean equals(Object obj)原创 2020-09-15 22:12:11 · 1276 阅读 · 0 评论 -
面试题 - Java序列化和反序列化
Java 序列化的高级认识引言将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 Java 序列化相关,通过分析情境出现的原因,使读者轻松牢记 Java 序列化中的一些高级认识。文章转载 2020-09-15 18:03:22 · 3900 阅读 · 0 评论 -
java 基础面试题01
题目://1.请问执行下面的程序大致会输出类似什么内容? public class TestThisToString{ public String toString(){ String str = "my memory location is :" + this; return str; } public static void mai原创 2016-09-22 18:16:32 · 812 阅读 · 0 评论