![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试相关
java持续实践
Java开发
展开
-
分布式事务--事务消息
流量包和扣减库存, 保存一个 task 任务, 记录扣减的流量包 (扣减流量包和保存task 在同一个事务中)原创 2022-08-20 14:56:34 · 446 阅读 · 0 评论 -
2022java面试题
MESI 如何执行的 ,含义是什么?面试官问的是ConcurrentHashMap 数据结构, 结果扯到hashmap的数据结构.线程池如何实现只有线程池里面的任务执行完之后, 才去给线程池添加任务。基于AQS实现的同步队列, 会有打断的异常, 如何实现?Eureka使用的时候有哪些问题 , 怎么解决的。volatile的禁止指令重排序是如何实现的?Synchronized 如何实现可见性的?线程池的核心线程数, 最大线程数如何设置?读写屏障, 全屏障这些是怎么实现的?...原创 2022-08-18 11:39:54 · 743 阅读 · 0 评论 -
某电商面试题 20220513
内存溢出与内存泄露的区别观察者模式与发布订阅模式的区别Seata 有哪些模式 ? AT 模式的流程 . AT 与TCC模式的区别如何分析java oom异常jvm 如何进行优化MySQL有哪些隔离级别, 脏读和幻读的区别.MySQL有哪些日志, 这些日志的特点 , 优缺点是什么分库分表是如何规划的, 原有的库的数据是怎么迁移的, 分库分表后怎么扩容.分库分表如何解决唯一id问题知道哪些分布式id生成的方法, 雪花算法生成id会有什么问题, 怎么解决eureka 的执行流程.原创 2022-05-13 19:32:21 · 355 阅读 · 0 评论 -
CPU 百分之百怎么排查 ?
第一步 : top -c%cpu 看到进程 PID第二步 :进程找到对应的cpu过高的线程 top -Hp pid找到对应的cpu过高的线程, 把这个线程号转换成16进制, 例如 41e8第三步:jstack 进程id | grep ‘0x41e8’ -C5 -color用jstack 打印进程的堆栈信息, 通过grep 线程的16进制的pid , 找到对应的相关线程的东西, 此时就可以打印出代码的位置,看到是哪个类的哪个方法导致的cpu 100% 的问题...原创 2021-11-08 20:45:40 · 335 阅读 · 0 评论 -
关于分库分表面试题
笔记来源: Java工程师面试突击专栏https://apppukyptrl1086.pc.xiaoe-tech.com/detail/p_5d3114935b4d7_CEcL8yMS/6为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?高并发系统单库单表是扛不住的.单表几百万数据最多了.为什么要分库分表分库分表是两个概念. 可能只分库不分表.可能只分表不原创 2021-06-06 16:35:50 · 359 阅读 · 0 评论 -
2021-06-03 面试题
乐观锁悲观锁区别讲一讲aopSpringBoot启动流程RocketMQ怎么实现高可用MySQL更新修改数据的时候, 索引会有什么操作为什么重写hashCode和equals方法原创 2021-06-05 18:18:48 · 142 阅读 · 0 评论 -
SpringMVC 核心架构
客户端发送请求到Tomcat, tomcat将请求转交给spring mvc框架的 DispatcherServlet (核心Servlet).DispatcherServlet 查找@Controller 注解的再加上RequestMapping, 标注哪些Controller处理哪些请求. 根据请求的url , 找到对应的Controller根据RequestMapping 去查找使用这个Controller内的哪个方法, 进行请求的处理controller 里面的方法, 会有一个返回值.原创 2021-06-05 16:02:24 · 106 阅读 · 0 评论 -
Spring设计模式
工厂模式: 把对象的创建过程, 封装到工厂中. 通过工厂的静态方法去创建对象. 如果要切换实现类, 那么只需要改工厂类的代码即可.SpringIOC核心就是工厂模式, 把所有的bean都放在了spring容器里, 如果要使用这个bean , 那么从Spring容器里面拿就行了, 不需要自己去创建对象.单例模式: spring默认对每个类都是使用的单例模式, 确保一个类在系统运行期间,只有一个实例对象, 只有一个bean.代码示例package com.thread.jmm;..原创 2021-06-05 15:35:14 · 184 阅读 · 0 评论 -
cglib和jdk动态代理区别
动态的创建一个代理类出来, 创建这个代理类的实例对象, 注入的对象, 也是走的代理的对象.负责做一些代码上的增强, 去调用原有的类.如果实现了某个接口的, 那么Spring的aop会使用jdk的动态代理. 会去生成一个同样接口的代理类, 构造一个实例对象出来, jdk生成的代理类会去生成一个实现一样接口的类.如果某个类没有实现接口, 那么springaop 会改用cglib 去生成动态代理. 去生成原有类的子类, 可以动态的生成字节码. 覆盖原有的方法, 在方法里去加入增强的代码.原创 2021-06-05 14:52:28 · 251 阅读 · 0 评论 -
重写equals 为什么要重写hashCode方法
来源https://www.jianshu.com/p/3819388ff2f4Object类的hashCode()方法有如下的注释, 定义了hashCode方法的三个规约Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, pro转载 2021-05-29 15:34:08 · 104 阅读 · 0 评论 -
== 和 equals方法区别
1)对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。...转载 2021-05-29 15:22:32 · 85 阅读 · 0 评论 -
面试题: 没有session , token cookie 这些东西, 怎么样区分Http请求的用户 ?
请求头放信息, 之后 可以做 http 摘要认证否则任何人都可以伪造 客户端与服务器端通信了https://www.cnblogs.com/xiaoxiaotank/p/11078571.htmlhttps://blog.csdn.net/tenfyguo/article/details/8661517原创 2021-05-26 11:11:57 · 218 阅读 · 0 评论 -
20201203某互联网公司面试题 每天看一遍多 知道自己有多菜
消息队列用的什么协议系统的预警消息有做去重吗 , 万一重复了怎么办Mq这个中间件是你们自己部署的, 还是一个集中的中间件平台?MQ 有做高可用吗定时任务是用于什么业务, 用的什么框架?系统里面有没有遇到什么难点, 能分享一下吗. ( 与第三方的沟通对接不算是难点. )说一下你了解的Jdk8的新的特性说一下violate 关键字的作用? 怎么样保证可见性的? 是怎么保证禁止指令重排的? 是怎么实现禁止指令重排的? 指令重排的具体的例子能不能说个导致线程安全的例子? 什么时.原创 2020-12-13 12:05:07 · 2676 阅读 · 10 评论 -
2020 某大型公司面试题
表设计问题 :假如我现在要做一个项目管理系统, 一个团队有很多人在做项目, 一个管理者想看到项目的进展, 项目经理可以在这个系统上建立项目, 项目的开始时间, 结束时间, 有哪些任务完成了, 哪些还在开发中, 每个项目下可能会有很多子项目, 我这个项目也可能分享给别人, 希望别人能看到我项目的进展 , 别人也可以对我的项目进行增删改查, 作为团队的管理者 , 可以看到所有的项目.如果让你做这个项目管理系统, 你会如何做表结构设计, 这些表是怎么关联的?系统里..原创 2020-12-13 11:40:33 · 4461 阅读 · 8 评论 -
2020某上市公司面试题
定时任务, 执行多个任务, 假如说某一个任务执行的时间特别长, 造成了系统的阻塞 , 这个情况你要怎么处理?分布式锁一般有什么实现方式?定时任务用的什么框架, Quartz 定时执行, 你是如何配置的, 如何启动任务的 ,详细讲一下Java的基础知识有去研究吗, 比如说JDK的源码有看过吗?说一下Map接口常见的实现类有哪些? 他们之间的区别是什么?SpringBoot的@Bean注解和 @Service @Controller 注解的区别是什么?...原创 2020-12-12 22:22:08 · 2690 阅读 · 10 评论 -
2020某上市公司面试题,每天看一遍,提醒自己有多菜
接口的幂等性除了数据库层用唯一索引这种方式, 还有没有其他的方式去保证接口的幂等性.接口的幂等性如果是用缓存的方式去做, 那么第二次请求来了, 是直接返回订单号还是抛出异常?为了客户更好的体验 , 能不能在客户由于网络抖动的原因发送第二次请求的时候, 把第一次请求的订单号返回过去.用户发送的两次请求, 两次请求的间隔是毫秒级的, 第一次请求还没有入库, 那么如何把第二次请求直接返回第一次请求的订单号 ?如果是从缓存中去拿, 那怎么去实现, 思路是什么 ? 一开始傻屌的回答说用map去存储,结果.原创 2020-11-25 00:02:38 · 5650 阅读 · 23 评论 -
2020某医药行业公司面试题
项目做了哪些模块开发的流程是怎么样的开发要输出什么东西, 有出一些文档什么的吗介绍一下项目中使用的dubbo是什么?dubbo有哪些轮询机制?项目中是什么地方用到的RedisRedis 有哪些数据类型Redis 持久化有哪些机制项目中并发问题是怎么处理的?多个服务之间的并发该怎么处理 ?分布式锁有哪些方式可以实现?mq有哪几种消息类型?mysql数据库,报表的数据量很大, 有哪些优化的方式?es存储的数据量有多少?hashmap是有序方式无序的?是什么数据结构SpringBo.原创 2020-11-24 22:04:20 · 2715 阅读 · 3 评论 -
20200924 某上市公司Java面试题 最尴尬的面试 每天一遍 看看自己多菜
项目的框架是你搭建的么 ? 对系统整体的框架有了解过么? 画一下系统的框架图.系统的生产环境是怎么部署的?数据库的量级有多少? 有没有涉及到分库分表? 有了解分库分表的技术吗?假如你的系统要进行分库或者分表的操作了, 但是系统不能停止运行, 那么你该如何处理?SpringCloud 你用到哪些组件? 注册中心除了用eureka和nacos外, 还有其他的吗? consul 作为注册中心,它的优化点在哪里?当集群中有很多服务, eureka接受的并发压力很大时 ,它是如何来处理的?ZooK原创 2020-09-25 14:07:53 · 433 阅读 · 0 评论 -
面试必问 Spring的事物传播机制&隔离级别
文章目录Spring的事务抽象接口Spring的事物传播机制Spring的事物隔离级别Spring的事务抽象接口Spring的事物传播机制根据Sring的源码org.springframework.transaction.TransactionDefinition类中定义了传播机制Spring的事务传播机制 :两个Service业务, 其中ServiceA要调用ServiceB的某一个方法, 这个Service的方法都是在事务中执行的, 此时就涉及到事务的传播了.PROPAGATION_R原创 2020-09-16 09:01:10 · 818 阅读 · 0 评论 -
20200810 某电商大厂面试 每天看一遍 提醒自己有多菜
自我介绍介绍一个比较得手的项目.http 的接口, 哪些是幂等性的你对接口幂等性 的理解是什么?查询算不算幂等性 .http 的请求方式有哪些?POST和PUT区别是什么? 从语义上和协议定义上来说区别是什么?HTTP的 4开头和5开头的状态码有什么区别 201是什么现在项目开发用的什么框架?讲讲你对SpringBoot和Cloud的理解SpringCloud是用来解决什么问题的?谈谈你对微服务的理解?拆分服务的好处是什么?单体应用的缺陷是 什么?什么情况下不适合用单体应原创 2020-08-11 08:15:09 · 280 阅读 · 0 评论 -
20200805 某大厂面试题记录 每天看一遍 提醒自己有多菜
logstash的底层原理java 的内部类. 静态内部类与内部类的区别.hashset的底层数据结构讲下hashmap会转成红黑树. 链表长度多少会转成红黑树.变成红黑树有什么好处.hashtable 与 hashmap有什么区别hashtable是怎么加锁ConcurrentHashMap 是怎么加锁的 ConcurrentHashMap 的数据结构ConcurrentHashMap 是用的锁分段技术技术,聊下cas. 自旋锁.hashmap的 hash冲突了原创 2020-08-05 22:27:29 · 1578 阅读 · 4 评论 -
面试题 : JDK8默认的垃圾回收器
JDK8默认垃圾回收器Parallel Scavenge 用于新生代 基于 标记复制算法 (S0 复制到 S1)Parallel Old 用于老年代 基于标记整理算法原创 2020-08-05 22:04:44 · 793 阅读 · 0 评论 -
2020 某大厂面试题记录 面试题集合 每天看一遍 提醒自己有多菜
SpringCloud用过哪些组件这些组件承担的功能和角色介绍一下。Ribbon负载均衡策略常用策略有哪些?elasticsearch与solr区别elasticsearch的原理mysql组合索引的 最左原则 , 什么情况下组合索引会失效A B C三个字段 形成的索引mybatis 一级, 二级缓存的生命周期并发包有用过吗 , 原子类是怎么保证原子性的juc 并发包 用过哪些类Thread.join方法的使用场景nio的原理 核心思想jvm GC是优化什么方面?jdk8 默认的原创 2020-08-05 19:07:41 · 1115 阅读 · 3 评论 -
2020 Java开发某上市公司面试题总结 每天看一遍 提醒自己有多菜
自我介绍下.简单聊聊上家公司做的项目项目介绍的时候, 停顿也太多. 说然后太多.SpringBoot核心注解 , 它 是由哪几个注解组成的?实际有下面这么多@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan(excludeFilters = { @Fi原创 2020-08-05 08:14:27 · 641 阅读 · 0 评论 -
2020 Java开发某互联网一线大厂面试题 每天看一遍 提醒自己有多菜
文章目录一面二面三面四面S部门一面S部门二面一面1、JVM如何优化的?CMS算法执⾏流程?什么情况下发⽣的Full GC?2、分布式事务讲⼀下?可靠消息⼀致性实现⽅案 + 最⼤努⼒送达通知⽅案,最后也提到了单应⽤多DB(JPA)、TCC事务以及适⽤场景。3、ES是如何调优的?副本机制作⽤?二面1、将最近做的两个项⽬详细讲解 + 现场画出整体系统架构图并结合架构图讲解+ 设计模式类图3、MySQL数据库底层实现结构?B+树结构,也讲了数据⻚,以及⻚⽬录相关的4、Spring Bean循环依赖如原创 2020-08-04 22:41:55 · 575 阅读 · 1 评论 -
文件上传防止攻击的操作
在网站中允许用户上传文件, 上传的文件可能是可执行的脚本, 病毒或者木马文件. 可能会黑掉项目或者数据库.即使做了文件的后缀限制,但黑客可能也会把病毒的后缀改成常用的文件名后缀, 上传到系统后对系统进行攻击. .解决的方案读取这个文件的二进制数据流,根据文件的二进制数据的开头的几个字节代表的magic number来判断文件的类型例如class文件的魔数为 0x CAFEBABE开头...原创 2020-04-22 23:03:28 · 2226 阅读 · 0 评论 -
JVM常用基础参数元空间MetaspaceSize用法(附加常用JVM参数配置)
元空间是java8中提出来的概念, 在java7中称为永久代. 都是对JVM规范中方法区的实现. 不过元空间与永久代之间最大的区别在于:元空间并不存在虚拟机中, 而是使用本地内存.因此默认的情况下, 元空间的大小仅仅受本地内存的限制.还是使用以下的代码作为实例.public class MyHelloGc { public static void main(String[] ar...原创 2020-01-11 17:00:01 · 3442 阅读 · 0 评论 -
JVM常用基础参数栈内存Xss讲解
JVM常用参数-Xss 参数为设置单个线程栈的大小, 一般默认为512K~1024K其等价于 -XX:ThreadStackSize栈是用来运行方法的, 堆是用来存储数据.通过此程序查看栈内存大小public class MyHelloGc { public static void main(String[] args) throws InterruptedException...原创 2020-01-11 16:08:39 · 4286 阅读 · 0 评论 -
JVM通过java代码查看初始堆内存大小与最大堆内存大小
如下的jvm代码, 可以查看并打印初始化的堆内存大小和试图使用的最大堆内存大小public class QueryJVM { public static void main(String[] args){ //返回java虚拟机中的内存总量 long totalMemory = Runtime.getRuntime().totalMemory(); ...原创 2020-01-11 15:24:19 · 3754 阅读 · 0 评论 -
JVM修改并查看参数值
如下一个简单的代码.public class JVMDemo { public static void main(String[] args){ int a = 10; int b = 20; int result = a+b; System.out.println("********result: "+result); ...原创 2020-01-11 14:57:53 · 521 阅读 · 0 评论 -
JVM查看所有的初始默认值
查看jvm默认值-XX:+PrintFlagsInitial主要是查看初始的默认值.公式有两种, 两者的效果一致.java -XX:+PrintFlagsInitial -versionjava -XX:+PrintFlagsInitial如下图: 可以直接在命令行中输入-XX:+PrintFlagsFinal 主要是查看修改更新后的值.查看的命令是java -XX:+Prin...原创 2020-01-11 14:25:21 · 1019 阅读 · 0 评论 -
JVM的XX参数面试题之Xms与Xmx
两个经典参数: -Xms 和 -Xmx这个两个参数其实是属于xx参数, 它们分别属于下面两个参数的简写-Xms 等价于 -XX:InitialHeapSize 代表初始化堆内存大小-Xmx 等价于 -XX:MaxHeapSize 代表最大的堆内存大小...原创 2020-01-11 11:37:32 · 1087 阅读 · 0 评论 -
JVM的XX参数之设值类型
KV设值类型的公式:-XX: 属性key = 属性值value例如用如下的程序, 查看堆大小public class MyHelloGc { public static void main(String[] args) throws InterruptedException { System.out.println("HELLO GC"); Th...原创 2020-01-11 11:08:03 · 269 阅读 · 0 评论 -
JVM的XX参数之布尔类型
XX参数可以分为如下2类:1.布尔类型2.KV设置值的类型其中布尔类型, -XX: +或者- 某个属性值+ 代表开启这个属性- 代表关闭这个属性如何查看一个正在运行中的java程序, 它的某个jvm参数是否开启, 具体值是多少?jps: 可以查看当前正在运行的java进程. 类似于Linux的(ps命令查看后台进程)jinfo: 查看运行线程的信息.代码示例public cla...原创 2020-01-11 10:47:36 · 401 阅读 · 0 评论 -
JVM的标准参数和X参数
JVM的参数类型:1.标准参数标准参数不随着JDK版本变化而变化.-version-helpX参数X参数 是非标准参数. 在JDK各个版本中可能会变动-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式,JVM自己来决定. 先编译后执行.(默认的)3. XX参数...原创 2020-01-11 10:10:48 · 444 阅读 · 0 评论 -
JVM垃圾回收的时候如何确定垃圾?什么是GC Roots?
什么是垃圾: 简单的说, 内存中已经不再被使用的空间,就是垃圾.例如一个对象指向为null了 Person p1 = null , 那么就可以将p1对象进行回收.要进行垃圾回收, 怎么判断一个对象是否可以被回收?引用计数法 (了解)GCRoot (枚举根节点可达性分析(根搜索路径))把GC Root对象开始作为起点, 来进行链路的扫描和访问, 如果能够可达就认为是活跃的,就不能回收...原创 2020-01-07 21:58:15 · 1301 阅读 · 0 评论 -
HTTP与HTTPS的区别
文章目录一. HTTP与HTTPS的图解区别二. SSL的简介三. HTTPS数据传输流程四. HTTP和HTTPS的区别五.使用HTTPS一定安全吗?一. HTTP与HTTPS的图解区别HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式...原创 2019-10-02 11:13:25 · 375 阅读 · 2 评论 -
Cookie和Session的介绍与区别
一. Cookie简介Cookie是由服务器发给客户端的特殊信息, 以文本的形式存放在客户端客户端再次请求的时候, 会把Cookie回发给服务器服务器接收到请求后, 会解析Cookie, 生成与客户端对应的内容Cookie的设置以及发送过程:Cookie的设置以及发送过程为如下图所示,经历了如下的四个过程.二. Session简介服务器端的机制, 在服务器上保存的信息服务器...原创 2019-10-02 10:34:11 · 201 阅读 · 0 评论 -
GET请求与POST请求区别
从三个层面来回答GET请求与POST请求区别HTTP报文层面: GET请求将请求信息放在URL, POST请求把请求信息放在报文体中. get请求是有长度限制的, post请求无长度限制.数据库层面: get请求符合幂等性( 对数据库的一次或多次操纵获得的结果是一致的. )和安全性(对数据库的操作没有改变数据库的中的数据, 则认为符合安全性,因为get请求大多数是查询的操作.),po...原创 2019-09-28 14:57:31 · 237 阅读 · 0 评论 -
HTTP相关之一
文章目录一.HTTP的特点二.HTTP请求和响应结构结构1. HTTP的请求结构2. HTTP的响应结构三.关于HTTP的经典面试题四.常见HTTP状态码一.HTTP的特点超文本传输协议的主要特点支持客户端服务端 即C/S模式的简单快速客户端向服务器发送请求时, 只需传递请求方式(POST GET ), 请求url, 请求参数等灵活HTTP允许传输任意类型的数据对象. ...原创 2019-09-28 11:27:11 · 161 阅读 · 0 评论