自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法面试题的代码演示

二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。public static int biSearch(int []array,int a){ int lo=0; int hi=array.length-1; int mid; while(lo<=hi){ mid=(lo+hi)

2020-08-24 15:56:50 117

原创 java中的集合面试总结

HashMap和HashTable有什么区别?(1)HashMap允许key和value为null,HashTable不允许。(2)HashTable同步,而HashMap非同步。所以HashMap适合单线程环境,HashTable适合多线程环境。异步就是一个对象可以同时给多个线程访问,同步就是一个对象只能给一个线程访问,其他线程都得排队等着。(3)java1.4引入LinkedHashMap,HashMap的一个子类,假如你想要遍历顺序,你很容易从HashMap转为LinkedHashMap,

2020-08-24 14:00:30 117

原创 HashMap(数组+链表+红黑树)

HashMap(数组+链表+红黑树)HashMap 根据键的 hashCode 值存储数据,大多数情况下可以直接定位到它的值,因而具有很快 的访问速度,但遍历顺序却是不确定的。 HashMap 最多只允许一条记录的键为 null,允许多条记 录的值为 null。 HashMap 非线程安全,即任一时刻可以有多个线程同时写 HashMap,可能会导 致数据的不一致。如果需要满足线程安全,可以用 Collections 的 synchronizedMap 方法使 HashMap 具有线程安全的能力,或者使用

2020-08-24 12:08:19 3046

原创 MySQL面试题

数据库存储引擎InnoDB(B+树)InnoDB 底层存储结构为B+树, B树的每个节点对应innodb的一个page, page大小是固定的,一般设为 16k。其中非叶子节点只有键值, 叶子节点包含完成数据适用场景:1)经常更新的表,适合处理多重并发的更新请求。2)支持事务。3)外键约束。只有他支持外键。4)可以从灾难中恢复(通过 bin-log 日志等)。5)支持自动增加列属性 auto_increment。MyIASMMyIASM是 MySQL默认的引擎,但是它没有提供对数据库事

2020-08-23 18:44:24 1741

原创 悲观锁和乐观锁

何谓悲观锁与乐观锁?乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线 程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。J

2020-08-19 18:13:38 95

转载 老哥,您看我这篇Java集合,还有机会评优吗?的笔记

老哥,您看我这篇Java集合,还有机会评优吗?集合框架总览工欲善其事必先利其器,让我们先来过一遍整个集合框架的组成部分:集合框架提供了两个遍历接口:Iterator和ListIterator,其中后者是前者的优化版,支持在任意一个位置进行前后双向遍历。注意图中的Collection应当继承的是Iterable而不是Iterator,后面会解释Iterable和Iterator的区别整个集合框架分为两个门派(类型):Collection和Map,前者是一个容器,存储一系列的对象;后者是键值对&lt

2020-08-17 19:54:08 87

转载 两难!到底用Apache BeanUtils还是Spring BeanUtils?的学习笔记

两难!到底用Apache BeanUtils还是Spring BeanUtils?什么是浅拷贝和深拷贝在Java中,基本数据类型和引用数据类型。而一般使用 “=”号做赋值操作的时候,对于基本数据类型,实际上是拷贝的它的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际还是指向的同一个对象。而浅拷贝和深拷贝就是在这个基础上做的区分,如果在拷贝这个对象的时候,只对基本数据类型进行了拷贝,而对引用数据类型只是进行引用的传递,而没有真实的创建一个新的对象,则认为是浅拷贝。反

2020-08-13 20:59:29 110

原创 中华石杉-- --搜索引擎的笔记

搜索引擎的笔记es 的核心概念elasticsearch 基于 lucene。Near Realtime近实时,有两层意思:从写入数据到数据可以被搜索到有一个小延迟(大概是 1s)基于 es 执行搜索和分析可以达到秒级Cluster 集群集群包含多个节点,每个节点属于哪个集群都是通过一个配置来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常。Node 节点Node 是集群中的一个节点,节点也有一个名称,默认是随机分配的。默认节点会去加入一个名称为 elasticsearch

2020-08-13 15:53:21 559

原创 中华石杉-- --分布式服务框架Dubbo的笔记

分布式服务框架Dubbo分布式业务系统,就是把原来用 Java 开发的一个大块系统,给拆分成多个子系统,**多个子系统之间互相调用,形成一个大系统的整体。**假设原来你做了一个 OA 系统,里面包含了权限模块、员工模块、请假模块、财务模块,一个工程,里面包含了一堆模块,模块与模块之间会互相去调用,1 台机器部署。现在如果你把这个系统给拆开,权限系统、员工系统、请假系统、财务系统 4 个系统,4 个工程,分别在 4 台机器上部署。一个请求过来,完成这个请求,这个员工系统,调用权限系统,调用请假系统,调用财务

2020-08-13 11:19:32 520

原创 中华石杉-- --消息队列的笔记

消息队列为什么使用消息队列面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。解耦:看这么个场景。A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃…在这个场景中,A 系统跟其它各种乱七八糟的系统

2020-08-12 16:50:16 707

原创 Java8新特性-Lambda表达式-Stream API等(学习笔记)

内容:lambda表达式(重点)函数是表达式方法引用与构造器引用Stream API(重点)接口中的默认方法与静态方法新实践日期API其他新特性

2020-06-05 19:20:31 356

转载 深入理解static关键字

深入理解static关键字时间:2020年4月5日星期日 13:27:07static存在的主要意义static的主要意义是在于创建独立于具体对象的域变量或者方法。以致于即使没有创建对象,也能使用属性和调用方法!static关键字还有一个比较关键的作用就是 用来形成静态代码块以优化程序性能。(是因为它的特性:只会在类加载的时候执行一次。因此,很多时候会将一些只需要进行一次的初始化操作都放在...

2020-04-12 09:59:13 87

转载 用好Java中的枚举真分布式锁之Zookeeper

用好Java中的枚举真分布式锁之Zookeeper多线程下,想要保护数据,加锁的机制。我们为了减少DB的压力,把库存预热到了KV,现在KV的库存是1。服务A去Redis查询到库存发现是1,那说明我能抢到这个商品对不对,那我就准备减一了,但是还没减。同时服务B也去拿发现也是1,那我也抢到了呀,那我也减。C同理。等所有的服务都判断完了,你发现诶,怎么变成-2了,超卖了呀,这下完了。老公...

2020-04-12 09:44:00 150

转载 数据库中对json的创建修改操作

https://www.cnblogs.com/chuanzhang053/p/9142180.html

2020-04-11 21:23:49 343

转载 mybatis-if标签的学习

https://www.cnblogs.com/junjie2019/p/10570215.html

2020-04-09 22:30:58 171

转载 编码好习惯

编码好习惯需要 Map 的主键和取值时,应该迭代 entrySet()当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。反例:Map<String, String> map = ...;for (String key : map....

2020-04-08 07:22:13 87

转载 编码规范的笔记

编码规范的笔记对于个人来说,技术很重要,但是对于工作来说,编码的习惯比技术更加主要。工作中你面试的大部分技术都不需要用到的。接口定义常见问题返回格式不统一实际工作中,我们会定义一个统一的格式,就是ResultBean,分页的有另外一个PageResultBean错误代码@PostMapping("/delete")public Map<String, Object> ...

2020-04-07 23:33:43 132

转载 Java基础(关于equals和集合的使用)

java基础正确使用equalsString str = null;if("abc".eqals(a)){//false }else{ }必须要用常量或者确定的值去掉用eqals更推荐使用的是一个工具类:Object.equals(null,"str");每种原始类型都有默认值一样,如int默认值为 0,boolean 的默认值为 false,null ...

2020-04-07 22:02:35 514

转载 关于null,你不得不知道的几件事

1、null是Java中的关键字,像public、static、final。它是大小写敏感的,你不能将null写成Null或NULL,编译器将不能识别它们然后报错。2、就像每种原始类型都有默认值一样,如int默认值为0,boolean的默认值为false,null是任何引用类型的默认值,不严格的说是所有object类型的默认值。就像你创建了一个布尔类型的变量,它将false作为自己的默认值,Ja...

2020-04-07 21:07:34 1568

转载 时间空间复杂度分析(学习笔记200401)

摘自:时间空间复杂度分析:如何分析、统计算法的执行效率和资源消耗根据测试的环境或者测试数据不同,执行效率不同,现不用具体的测试数据,即可测试,就是本文的内容大O复杂度表示法int cal(int n) { int sum = 0; int i = 1; for (; i <= n; ++i) { sum = sum + i; } return ...

2020-04-01 06:34:33 123

空空如也

空空如也

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

TA关注的人

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