自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 MySQL事务还能这么理解?这回我知道怎么应付面试官了,springboot组件面试题

2.2 持久性事务的持久性是指:一个事务对数据的所有修改,都会永久地保存在数据库中。MySQL事务的持久性是通过redo log来实现的。redo log也是InnoDB存储引擎特有的。具体实现机制是:当发生数据修改(增、删、改)的时候,InnoDB引擎会先将记录写到redo log中,并更新内存,此时更新就算完成了。同时InnoDB引擎会在合适的时机将记录刷到磁盘中。redo log是物理日志,记录的是在某个数据页做了什么修改,而不是SQL语句的形式。它有固定大小,是循环写的方式记录日志,空间用完后

2021-12-25 14:26:27 112

原创 JVM 面试题 87 题详解(1),java枚举高级用法

23、新生代24、老年代25、永久代26、JAVA8 与元数据27、引用计数法28、可达性分析29、标记清除算法( Mark-Sweep)30、复制算法(copying)31、标记整理算法(Mark-Compact)32、分代收集算法33、新生代与复制算法34、老年代与标记复制算法35、JAVA 强引用36、JAVA软引用37、JAVA弱引用38、JAVA虚引用39、分代收集算法40、在新生代-复制算法..

2021-12-24 13:37:50 400

原创 JqGrid完整例子,offer拿到手软

“width: “”,” +“pager_selector: “typeDefinePager”,” +“where: “”,” +“wherestring: {},” +“fileds: [“id”, “property”, “name”, “sensortype”, “unit”,“highvalue”],” +“table:“kj_typedefine”}”;$.ajax({url:“MyServlet”,async:true, //是否为异步请求cache:false, //

2021-12-24 13:36:42 231

原创 JNI开发之方法签名与Java通信(二),java面试题大汇总github

一般引用类型则为 L + 该类型类描述符 + ; (注意,这儿的分号“;”只得是JNI的一部分,而不是我们汉语中的分段,下同)例如:String类型的域描述符为 Ljava/lang/String;对于数组,其为 : [ + 其类型的域描述符 + ;int[ ] 其描述符为[Ifloat[ ] 其描述符为[FString[ ] 其描述符为[Ljava/lang/String;Object[ ]类型的域描述符为[Ljava/lang/Object;多维数组则是 n个[ +该类

2021-12-24 13:35:45 179

原创 Jib构建镜像问题从定位到深入分析,掌握这套精编Java高级面试题解析

关于Jib插件在Maven工程中可以使用Jib插件将当前Java工程构建成Docker镜像,详情请参考:《Docker与Jib(maven插件版)实战》;《Jib使用小结(Maven插件版)》;环境信息操作系统:macOS Mojave 10.14.6 (18G103)JDK:10.14.6 (18G103)Docker:10.14.6 (18G103)SpringBoot:2.1.8.RELEASEJib插件版本:1.6.1源码下载为了重现问题,我

2021-12-24 13:34:21 184

原创 Jibx插件的使用,java高级知识点

}public void setOrderNumber(long orderId) {this.orderNumber = orderId;}public Customer getCustomer() {return customer;}public void setCustomer(Customer customer) {this.customer = customer;}public Address getBillTo() {return billTo;}public void

2021-12-24 13:33:22 249

原创 Jenkins用户权限管理-Role-based Authorization Strategy插件

如果你已经安装过该插件,则在已安装一栏中可以看到该插件二、配置全局安全策略==========系统管理–>全局安全配置(Configure Global Security)授权策略选择 Role-Based Strategy三、管理和分配角色=========3.1 配置Manage Roles==================系统管理–>Manage and Assign Roles–>Manage Roles3.1.1 创建全局角色并授权====

2021-12-24 13:32:22 216

原创 JDK tools,kafka使用入门

public static void main(String[] args) {String[] docArgs =new String[] {“-doclet”, CustomerDoclet.class.getName(), “/home/yan/test/cn/test/JavaSource.java”};com.sun.tools.javadoc.Main.execute(docArgs);}简单吧,运行上面代码段就能自定义 javadoc 输出解析了。跑了下发现没问题,那就开始搞事情

2021-12-24 13:31:11 157

原创 Java面试篇·多线程,BATJ都爱问的面试题,你了解多少,java底层原理面试题

为 uniqueInstance 分配内存空间初始化 uniqueInstance将 uniqueInstance 指向分配的内存地址但是由于 JVM 具有指令重排的特性,执行顺序有可能变成 1->3->2。指令重排在单线程环境下不会出先问题,但是在多线程环境下会导致一个线程获得还没有初始化的实例。例如,线程 T1 执行了 1 和 3,此时 T2 调用 getUniqueInstance() 后发现 uniqueInstance 不为空,因此返回 uniqueInstance,但此时 un

2021-12-24 13:29:54 98

原创 JDK源码学习——集合,java编程技术大全pdf

else {// 如果当前位置已经存在元素,那么就要逐个读取这条链表的元素。Node<K,V> e; K k;// 如果key和hash值都等于当前头元素,那么这存放的两个元素是相同的。if (p.hash == hash &&((k = p.key) == key || (key != null && key.equals(k))))e = p;// 如果当前位置的链表类型是TreeNode,那么就讲当前元素以红黑树的形式存放。else if (

2021-12-23 13:04:01 231

原创 JDK8-Object源码,java面试算法大全

The {@code equals} method for class {@code Object} implementsthe most discriminating【差别】 possible equivalence relation on objects;that is, for any non-null reference values {@code x} and{@code y}, this method returns {@code true} if and on...

2021-12-23 13:02:42 184

原创 JDK8-HashMap源码,2021最新大厂高频微服务面试总结

transient Set<Map.Entry<K,V>> entrySet;/**The number of key-value mappings contained in this map.*/transient int size;/**The number of times this HashMap has been structurally modifiedStructural modifications are those that change

2021-12-23 13:01:46 104

原创 JDBC超详细入门教程,三面蚂蚁金服成功拿到offer

//2.注册驱动Class.forName(“com.mysql.jdbc.Driver”);//3.获取数据库连接对象Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db3”, “root”, “root”);//4.定义sql语句String sql = “update account set balance = 500 where id = 1”;//5.获取执行sql的对象 Statem

2021-12-23 12:59:40 99

原创 Java高级架构面试知识点整理:基于-Hystrix-线程池技术实现资源隔离

public class GetProductInfoCommand extends HystrixCommand {private Long productId;public GetProductInfoCommand(Long productId) {super(HystrixCommandGroupKey.Factory.asKey(“GetProductInfoCommandGroup”));this.productId = productId;}@Overrideprotected

2021-12-23 12:58:16 99

原创 Java面试,mongodb查询原理

答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。5.switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?答:在Java 5以前,switch(expr)中,expr只能是byte、short、char、int。从Java 5开始,Java中引入了枚举类型,expr也可以是enum类型,从Java 7开始,expr还可以是字符串(String),但是长整型(lo

2021-12-23 12:57:17 249

原创 Java面试题超详细整理《Spring篇》,mybatis详细教程

Spring AOP是基于动态代理实现的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用Cglib生成一个被代理对象的子类来作为代理。Spring AOP 和 AspectJ AOP 有什么区别?Spring AOP 属于运行时增强,而 AspectJ 是编译时增强。 Spring AOP 基于代理(Proxying),而 AspectJ.

2021-12-23 12:56:17 142

原创 Java面向对象中的异常,什么是分布式锁?为什么要用分布式锁

ArrayIndexOutOfBoundsException()ArrayIndexOutOfBoundsException(int index)ArrayIndexOutOfBoundsException(String s);ArrayIndexOutOfBoundsException 可以 new 对象,有构造方法,就可以 new 对象。创建对象,如果遇到问题就抛出, new ArrayIndexOutOfBoundsExce.

2021-12-23 12:55:05 61

原创 Java集合类之Collection接口,集合的“爸爸,java基础知识刷题软件

==============================================================================从表面上看,数组和集合都是存储数据的一种方法,但是需要注意了!数组的存取长度是固定的,而集合的存取长度是可变的,也就是说,你在使用数组的时候,会先将数组的长度定义好,比如100,那么你就只能在这个数组中存放100个数据,而集合就不同了,集合的长度是不固定的,其中的元素个数可以是0、1,也可以是1000或者10000。在数据的存储上,集合和数组也是有

2021-12-23 12:53:48 66

原创 MyCat:第二章:Mycat前世今生,必看的100道MySQL数据库经典面试题解析

经接管了3000+个MySQL数据库的schema,平均每天处理近50亿次的SQL执行请求。50亿有多大?99%的普通人类看到这个数字,已经不能呼吸。当然,我指的是**RMB**。99%的程序猿除了对工资比较敏感,其实对数字通常并不感冒。上面这个简单的数字描述,已立刻让我们程序型的大脑短路。恨不得立刻百度Cobar,立刻Download,立刻熬夜研究。做个简单的推算,50亿次请求转换为每个schema每秒的数据访问请求即TPS,于是我们得到一个让自己不能相信的数字:20TPS,每秒不到20个访问。

2021-12-22 12:31:01 426

原创 Mybatis源码解析:sql参数处理,原来可以这么简单-1,mongodb面试问题

expression.append(src, offset, end - offset);break;}}if (end == -1) {// close token was not found.builder.append(src, start, src.length - start);offset = src.length;} else {//这里根据不同的处理器会有不同的操作,刚才传入的是VariableTokenHandlerbuilder.append(handler.hand

2021-12-22 12:29:35 196

原创 MyBatis初级实战之六:一对多关联查询,java高级程序设计教材

多表关联查询的实现有联表和嵌套查询两种,它们的差异在Mybatis中体现在resultMap的定义上:联表时,resultMap内使用collection子节点,将联表查询的结果映射到关联对象集合;嵌套时,resultMap内使用association子节点,association的select属性触发一次新的查询;上述两种方式都能成功得到查询结果,接下来逐一尝试;联表查询本篇继续使用上一篇中创建的子工程relatedoperation;实体类UserWithLogs.

2021-12-22 12:28:10 65

原创 MyBatis03:配置解析,java实用教程第五版课后答案

除了原来在 mybatis-config.xml 中直接输入数据库的连接属性外, 还可以通过修改 xml 文件中引入外部配置文件来实现。示例:原代码:<property name=“url”value=“jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf8”/>现代码:其中 propertyCon.

2021-12-22 12:26:45 44

原创 MyBatis-底层源码解析-(详细),韩顺平java从入门到精通课件

loadCustomLogImpl(settings);/**解析 typeAliases配置文件*/typeAliasesElement(root.evalNode(“typeAliases”));/**解析 plugins 配置文件这个是插件,可以动态的拦截sql执行*/pluginElement(root.evalNode(“plugins”));objectFactoryElement(root.evalNode(“objectFactory”));objectWrapp

2021-12-22 12:25:20 260

原创 MyBatis 执行流程及源码解析,java面试sql优化

}}向Service中注入这个Mapper并调用时,你知道这时注入的是什么吗?通过调试,可以知道这时实际的studentMapper是一个类型为MapperProxy的代理对象,下面将从myabtis环境初始化开始,具体分析代理对象的产生过程。一、配置SqlSessionFactoryBean 时都做了什么?在进行spring和mybatis整合时,会用xml或者注解的方式去配置一个SqlSessionFactoryBean,本文中以注解方式为例:@Beanpublic SqlSession

2021-12-22 12:23:54 58

原创 MQ发布确认的三种策略,Java高级工程师面试答案大全

channel.basicPublish("", queueName, null, message.getBytes());//服务端返回 false 或超时时间内未返回,生产者可以消息重发boolean flag = channel.waitForConfirms();if(flag){System.out.println(“消息发送成功”);}}long end = System.currentTimeMillis();System.out.println(“发布” + MESSAGE_

2021-12-22 12:22:29 79

原创 MongoDB :第六章:Java程序操作MongoDB,java编译原理pdf

credentials.add(credential);//通过连接认证获取MongoDB连接MongoClient mongoClient = new MongoClient(addrs,credentials);//连接到数据库MongoDatabase mongoDatabase = mongoClient.getDatabase(“databaseName”);System.out.println(“Connect to database successfully”);} catch (

2021-12-22 12:21:04 81

原创 MapReduce原理分析之MapTask读取数据,华为od技术一面

在自定义的Mapper中我们只需要重写map方法,那么每读取一行记录就会调用一次该方法,如下2.查看Mapper源码public class Mapper<KEYIN, VALUEIN, KEYOUT, VALUEOUT> {public abstract class Contextimplements MapContext<KEYIN,VALUEIN,KEYOUT,VALUEOUT> {}protected void setup(Context context)

2021-12-22 12:19:39 167

原创 Linux系统:第十四章:安装Docker,java对日开发面试题

sudo yum update -y#安装dockersudo amazon-linux-extras install docker#启动dockersudo service docker start二、配置docker对外端口===========================================================================#安装好docker之后还需要对外暴露接口vim /usr/lib/systemd/system/docker.ser

2021-12-22 12:18:14 241

原创 【无标题】

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-12-21 17:59:33 31

原创 JUnit:求求你了,别再用 main 方法测试了,扫地阿姨看完都学会了

public class Factorial {public static long fact(long n) {long r = 1;for (long i = 1; i <= n; i++) {r = r * i;}return r;}public static void main(String[] args) {if (fact(3) == 6) {System.out.println(“通过”);} else {System.out.println(“失败”);}}

2021-12-20 14:07:01 113

原创 JUnit5学习之六:参数化测试(Parameterized Tests)基础

| :-- | :-- | :-- || 项目主页 | https://github.com/zq2599/blog_demos | 该项目在GitHub上的主页 || git仓库地址(https) | https://github.com/zq2599/blog_demos.git | 该项目源码的仓库地址,https协议 || git仓库地址(ssh) | [email protected]:zq2599/blog_demos.git | 该项目源码的仓库地址,ssh协议 |这个git项目中有多个文

2021-12-20 14:05:01 1533

原创 JUnit5学习之八:综合进阶(终篇,2021Java精选面试实战总结整理

void if_it_is_zero() {}}执行结果如下图,方法if_it_is_zero展示出的名字为if it is zero:在上述替换方式的基础上,JUnit5还提供了另一种生成展示名称的方法:测试类名+连接符+测试方法名,并且类名和方法名的下划线都会被替换成空格,演示代码如下,使用了注解@IndicativeSentencesGeneration,其separator属性就是类名和方法名之间的连接符:package com.bolingcavalry.advanced.se

2021-12-20 14:03:31 227

原创 JetBrains出品,一款好用到爆的数据库工具,惊艳到了,西安java开发视频

基本上默认设置就足够了,要更改设置也很简单,左侧菜单已经分类好了,第一项是数据库相关的配置,第二项是配置外观的,在这里可以修改主题,key map修改快捷键,editor配置编辑器相关设置,在这里可以修改编辑器字体,展开edit项,Editor->Color & Fonts->Font需要将当前主题保存一下,点击save as,起个名,选择重命名后的主题就能修改了,这里我选择习惯的Conurier New字体,大小为14号,点击右下角的apply,点击OK其他的没啥好设置的了。.

2021-12-20 13:58:07 126

原创 JDK8 Stream 效率如何?,线程同步面试题

不少问题都可以被表达为无限流(infinite stream):用户不停地读取流直到满意的结果出现为止(比如说,枚举 完美数 这个操作可以被表达为在所有整数上进行过滤);集合是有限的,但流可以表达为无线流;代码简练:对于一些collection的迭代处理操作,使用 stream 编写可以十分简洁,如果使用传统的 collection 迭代操作,代码可能十分啰嗦,可读性也会比较糟糕;stream 和 iterator 迭代的效率比较好了,上面 stream 的优点吹了那么多,stream 函数

2021-12-20 13:56:12 421

原创 Java面试题总结(乱序版,2020-08-20,springboot单点登录原理

Synchronized的并发策略是悲观的,不管是否产生竞争,任何数据的操作都必须加锁。乐观锁的核心是CAS,CAS包括内存值、预期值、新值,只有当内存值等于预期值时,才会将内存值修改为新值。七、乐观锁一定就是好的吗?乐观锁认为对一个对象的操作不会引发冲突,所以每次操作都不进行加锁,只是在最后提交更改时验证是否发生冲突,如果冲突则再试一遍,直至成功为止,这个尝试的过程称为自旋。乐观锁没有加锁,但乐观锁引入《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

2021-12-20 13:52:40 126

原创 Kafka-on-Pulsar 的前世今生,新秀 Pulsar 到底好在哪?

第二种猜想是能否直接将 Kafka 协议直接接入到 Pulsar broker 里,也就是目前 KoP 的成型。那么关于第一种 proxy 做法,如果实现起来大概是什么样呢?OVHcloud 就有过一次尝试。之前 OVHcloud 一直采用 Apache Kafka。尽管他们有在 Kafka 上运行多个集群且每秒处理数百万条消息的经验,但仍面临艰巨的运营挑战。所以,OVHcloud 放弃 Kafka,决定将其服务的产品转移到 Pulsar,并在 Pulsar 上构建其产品。但是为了照顾到依旧使用 Ka

2021-12-19 14:58:42 975

原创 K8s概述:几种集群方案的对比,Java中高级面试题总结(全面)

k8sk8s一些概念Node:资源节点的抽象Pod:pod为kubernetes的最小管理单元,一个pod中可以部署多个容器,通常建议是一个容器Daemonset:每个node上有一个,比如使用gpu、联通上的seman服务Statefulset:解决有状态服务,保证部署和scale的顺序。比如mysql。Deployment:一个Deployment通过多个ReplicaSet管理pod,一个Replica Set拥有一个或多个Pod。滚动升级的时候是用新的rs替代旧的rs

2021-12-19 14:54:38 181

原创 JWT,springboot整合JWT完成token的验证,token的使用,mybatis流程和原理

org.projectlomboklombok1.18.12providedcom.alibabafastjson1.2.73JWT 工具类/**@author [email protected]@date 2020/11/8 12:40*/public class JWTUtils {//签名 自己项目中的签名private static final String SIGN = “token!@19weawe2r24@#$@%!wewa98du”;/**..

2021-12-19 14:52:38 178

原创 JVM:第二章:设计一个刚好在一秒堆溢出的程序,java程序设计实用教程第五版课后答案

**堆内存的当前内存使用量:init = 31457280(30720K) used = 7832592(7649K) committed = 30408704(29696K) max = 30408704(29696K)5**增加了1188k,现在已经7649k了,离8m(8192k)只有543k的内存空间了[GC (Allocation Failure) [PSYoungGen: 7649K->984K(9216K)] 7649K->6112K(29696K), 0.0019481 s

2021-12-19 14:51:08 372

原创 JVM进阶——资深面试官必问的Java内存模型,顺利收获Offer

如何避免伪共享最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。 可以的话请给我一个三连支持一下我哟,我们下期再见硬件的效率与一致性物理计算机中的并发问题和Java虚拟机有很多相似之处。为了解决处理器与内存之间的速度矛盾,引入了高速缓存。高速缓存的引入带来了问题:缓存一致性。多路处理器系统中,每个处理器有各自的高速缓存,而他们又共享同一主内存。当多个处理器的运算任务额都涉及同一块主存区域的时候,将可能导致各自的缓存数据不一致。为了解决一致性的问题,需要各个处..

2021-12-19 14:49:24 347

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除