Java面试题 P19:Redis篇:Redis做为缓存,mysql的数据如何与redis进行同步呢(双写一致)
摘要:双写一致性:当修改了数据库的数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致。 共享锁:读锁代码 排他锁,写数据。读锁和写锁的值要一致。 MQ异步消息通知:
阅读全文
posted @
2023-07-31 21:11
wuzx-blog
阅读(61)
推荐(0) 编辑
Java面试题 P18:Redis篇:Redis使用场景-缓存-缓存雪崩
摘要:缓存雪崩:是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量的请求到达数据库,带来巨大压力。
阅读全文
posted @
2023-07-31 20:36
wuzx-blog
阅读(25)
推荐(0) 编辑
Java面试题 P17:Redis篇:Redis使用场景-缓存-缓存击穿
摘要:什么是缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把数据库压垮。 互斥锁代码: 1 package com.atguigu.boot00testredis.controller; 2 3 import com.at
阅读全文
posted @
2023-07-30 23:14
wuzx-blog
阅读(24)
推荐(0) 编辑
Java面试题 P16:Redis篇:Redis使用场景-缓存-缓存穿透
摘要:缓存涉及问题: 1、缓存三兄弟:穿透 击穿 雪崩 2、双写一致 3、持久化 4、数据过期策略 5、数据淘汰策略 如果发生了缓存穿透,击穿,雪崩,该如何解决? 1、缓存穿透 什么是缓存穿透,当查询一个不存在的数据,查redis中没有,mysql查询也没有,数据也不会直接写入到redis,就导致每次都要
阅读全文
posted @
2023-07-29 22:35
wuzx-blog
阅读(61)
推荐(0) 编辑
Java面试题 P14:java面试简历如何写
摘要:1、简历整体结构 一份完整的简历应该包括如下几个部分: 1、基本信息 2、教育背景 3、求职意向 4、工作经历 5、执业技能 6、项目经历 7、个人优势 8、个人荣誉 2、执业技能: 3、项目经历:
阅读全文
posted @
2023-07-29 17:24
wuzx-blog
阅读(35)
推荐(0) 编辑
Java面试题 P13:MySql中,如何定位慢查询
摘要:如何定位慢查询? 1、首先介绍一下当时产生问题的场景,具体什么情况慢 2、在mysql中开启慢查询日志,设定查询时间超过2秒的都记录到日志中,我们逐步筛查出现慢sql的原因 慢查询可能产生的原因: (1)聚合查询 (2)多表查询 (3)表数据量过大查询 (4)深度分页查询 mysql开启慢查询日志配
阅读全文
posted @
2023-07-28 23:26
wuzx-blog
阅读(59)
推荐(0) 编辑
Java面试题 P12:HashMap和HashTable的区别?底层是怎么实现的?
摘要:区别: 1、HashMap:是线程不安全的,HashTable:每个方法都加了个线程锁(synchronized 修饰),是线程安全的 2、HashMap允许key和value为null,而HashTable不允许 底层实现:数据+链表实现 代码示例: 1 public static void ma
阅读全文
posted @
2023-07-28 23:11
wuzx-blog
阅读(21)
推荐(0) 编辑
Java面试题 P11:ArrayList和LinkedList区别
摘要:ArrayList:基于动态数组,连续内存存储,适合下标访问(随机访问),扩容机制:因为数组长度固定,超出长度存数据时需要新建数组,然后将老数组的数据拷贝到新数组,如果不是尾部插入数据还会涉及到元素的移动(往后复制一份,插入新元素),使用尾插法并指定初始容量可以极大提升性能,甚至超过linkedLi
阅读全文
posted @
2023-07-28 13:16
wuzx-blog
阅读(18)
推荐(0) 编辑
Java面试题 P10:hashCode与equals区别
摘要:一、hashCode hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位置。hashCode() 定义在JDK的Object.java中,这就意味着Java中的任何类都包含有hashCode() 函数。 二、equal
阅读全文
posted @
2023-07-27 14:56
wuzx-blog
阅读(127)
推荐(0) 编辑
Java面试题 P9:List和Set的区别
摘要:List:有序,按对象进入的顺序保存对象,可重复,允许多个Null元素对象,可以使用Iterator(迭代器)取出所有元素,在逐一遍历,还可以使用get(int index)下标方式,获取指定下标的元素值 Set:无序,不可重复,最多允许有一个Null元素对象,取元素时只能用lterator(迭代器
阅读全文
posted @
2023-07-26 23:29
wuzx-blog
阅读(14)
推荐(0) 编辑
Java面试题 P8:接口和抽象类的区别
摘要:普通回答: 1、抽象类可以有抽象方法和实现的方法,可以存在普通成员函数,而接口中只能存在public interface方法。 2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的。 3、抽象类只能继承一个,接口可以实现多个。 抽象类和接口的异
阅读全文
posted @
2023-07-26 23:13
wuzx-blog
阅读(41)
推荐(0) 编辑
Java面试题 P7:重载和重写的区别
摘要:重载:发生在同一个类中,方法名必须相同,参数类型不同,参数个数不同,参数顺序不同,方法返回值和修饰符可以不同。 1 public int add(int a,String b) 2 public String add(inta,String b) 3 //编译时会报错 4 重载与返回值无关。 重写:
阅读全文
posted @
2023-07-26 22:44
wuzx-blog
阅读(16)
推荐(0) 编辑
Java面试题 P6:String StringBuffer StringBuilder区别及使用场景
摘要:String是final修饰的,不可变,每次操作都会产生新的String对象; StringBuffer和StringBuilder都是在原对象上操作; StringBuffer是线程安全的,StringBuilder现场不安全的 StringBuffer方法都是synchronized(加锁)修饰
阅读全文
posted @
2023-07-26 22:36
wuzx-blog
阅读(15)
推荐(0) 编辑
Java面试题 P5:简述final作用
摘要:1、简述final作用? final含义是最终的。 (1)修饰类:表示类不可被继承,不可以有子类; (2)修饰方法:表示方法不可以被子类覆盖,但是可以重载; (3)修饰变量:表示变量一旦被赋值就不可以更改它的值。 (4)修饰成员变量 如果final修饰的是类变量,只能在静态初始化块中指定初始值或者声
阅读全文
posted @
2023-07-26 10:01
wuzx-blog
阅读(35)
推荐(0) 编辑
Java面试题 P4:==和equals
摘要:==对比的是栈中的值,基本数据类型是变量值,引用类型是堆中内存对象的地址 new String(“abc”),实际上是指向了堆中的内存对象应用地址。 String str1=“Hello”; //放入堆中的常量池 String Str2=new String("Hello");//在堆中去分配内存,
阅读全文
posted @
2023-07-26 00:21
wuzx-blog
阅读(15)
推荐(0) 编辑
Java面试题 P3:JDK JRE JVM三者区别
摘要:JDK:java 开发工具(由JRE+java工具) JRE:java运行时环境(由jvm+lib类库组成) JVM:java虚拟机(bin目录) 图形表示如下:
阅读全文
posted @
2023-07-26 00:06
wuzx-blog
阅读(47)
推荐(0) 编辑
Java面试题 P2:Jvm性能调优
摘要:1、JDK体系结构 JDK由:java命令及常用工具+JRE组成(java运行时环境) JRE由:支撑java运行的各种类库+JVM(java运行时环境) 2、为什么java可以跨平台部署 跨平台是由java虚拟机,jvm去实现的。 3、Java虚拟机内部组成结构图 java代码运行工作顺序: (1
阅读全文
posted @
2023-07-24 23:15
wuzx-blog
阅读(101)
推荐(0) 编辑
Java面试题 P1:面向对象(什么是面向对象?谈谈你对面向对象的理解)
摘要:1、什么是面向对象? 这个需要先对比“面向过程”来看。 比如:洗衣机洗衣服 面向过程:会将任务拆解成一系列的步骤(函数):1、打开洗衣机->2、放衣服-->3、放洗衣粉-->4、清洗-->5、烘干 面向对象:会拆出人和洗衣机两个对象,每个对象需要做什么事情。 人:打开洗衣机、放衣服、放洗衣粉 洗衣机
阅读全文
posted @
2023-07-24 21:18
wuzx-blog
阅读(57)
推荐(0) 编辑