
技术问题
文章平均质量分 64
Deamon Tree
这个作者很懒,什么都没留下…
展开
-
个人学习易忘点汇总
JavaReadWriteLock也支持公平与非公平模式(ReentrantReadWriteLock)。但是有一点需要注意,那就是只有写锁支持条件变量,读锁是不支持条件变量的,读锁调用 newCondition() 会抛出 UnsupportedOperationException 异常。 JDK8引入的StampedLock,相比ReadWriteLock,模式有写锁、悲观读、乐观读,其中乐观度是无锁的。首先通过调用 tryOptimisticRead() 获取了一个 stamp,读完后在通过调用原创 2021-06-30 17:25:27 · 868 阅读 · 1 评论 -
String str = “abc“ + new String(“def“);到底创建了多少个对象?
题目如下:下面main方法输出是什么?public static void main(String[] args) { String str = "abc" + "def"; String str2 = "abcdef"; String str3 = "abc" + new String("def"); String str4 = new String("abc") + new String("def"); String原创 2021-07-22 17:06:42 · 1436 阅读 · 2 评论 -
MySql explain结果extra字段含义自测
using index :性能好,索引覆盖,只从索引文件中获取,无需回表查询using where:在查找使用索引的情况下,需要回表去查询所需的数据using index condition:在5.6版本后加入的新特性:使用了ICP(Index Condition Pushdown)技术,在存储引擎层根据索引尽量过滤符合where条件的记录,减少返回server层的记录。是需要回表的。eg:有索引(a, b, c) select a,c,d from TABLE where a=1000 and c原创 2020-09-16 15:13:18 · 385 阅读 · 0 评论 -
Class.forName与classLoader.loadClass 区别 及 打破双亲委派加载机制的方法
文章开始,先把问题抛出来吧,这样看的时候心中就一直会有这样的疑问:通过Class.forName与通过classLoader.loadClass 获取到Class有什么区别?Class.forName与classLoader.loadClass 区别话不多说,线上代码测验一下。Test对象类:package reflect;public class Test { ...原创 2019-12-03 15:18:34 · 566 阅读 · 0 评论 -
【算法题】十亿个乱序不重复的数字,输出没有出现过的数字
十亿个乱序不重复的数字,输出没有出现过的数字,例如 {0,1,2,3,5,6,7,8,9,10} 中4没有。这是一个阿里算法题,当时脑子没有想到bitmap,实际中没用到的真的是想到几率小,给自己敲响警钟,这道题不难。bitmap处理几部占很多内存,又很快。o(n)就够。众所周知1byte=8位,所以1byte上的每一位都可以记录一个值的状态,0可以表示不存在,1表示存在。用与和或操作来实...原创 2019-11-11 20:36:53 · 526 阅读 · 2 评论 -
Java之AQS代码原理解析
AQS(AbstractQueuedSynchronizer)是各种锁实现的基础,提供了对资源(state字段)的获取与阻塞等待,阻塞的线程会被放进一个先进先出(FIFO)的同步队列里。各种锁是AQS的子类,子类必须实现一套用来改变state变量(volatile 修饰的变量)的方法,包括锁资源的获取方法与锁资源的释放方法。始终记得:volitile和cas操作铸就了AQS的辉煌。...原创 2019-09-26 20:34:15 · 627 阅读 · 0 评论 -
spring boot配置log4j读不到不同环境的日志路径配置
工作中要起一个新项目,要用springboot起,配置完不通路径的application-{dev/test/prod}.properties后,要配置log4j,但是使用junit测试项目搭建是否成功时,log4j总是找不到路径,会在项目路径下生成一个新的文件夹,大概就是log.dir_is_not_define.log这样一个文件夹。经过查阅资料 ,发现logback.xml加载在s...原创 2019-07-22 16:32:55 · 1929 阅读 · 0 评论 -
股票算法问题
很多读者抱怨股票系列问题奇技淫巧太多,如果面试真的遇到这类问题,基本不会想到那些巧妙的办法,怎么办?所以本文拒绝奇技淫巧,而是稳扎稳打,只用一种通用方法解决所用问题,以不变应万变。这篇文章用状态机的技巧来解决,可以全部提交通过。不要觉得这个名词高大上,文学词汇而已,实际上就是 DP table,看一眼就明白了。先随便抽出一道题,看看别人的解法:int maxProfit(vector&...转载 2019-06-17 15:25:31 · 2668 阅读 · 0 评论 -
LeetCode NO.110 题解(递归法)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { pub...原创 2019-06-14 16:15:05 · 213 阅读 · 0 评论 -
java String kmp算法 LeetCode 28题解 字符串匹配
做到LeetCode第28题,看完题干就知道是考kmp算法,愣是想不起来kmp算法怎么写了,把四年前的知识还给老师了,复习了复习,码出来代码以后留着复习用。原理:nexts数组是kmp算法核心,每一位的值用来代表前面有多少位是重复的,可以从这个值来继续判断(数组下标从0开始,例如前5为是重复的,则可以从下标为5继续判断,因为这是第6个元素),同时意思是,如果要匹配的字符某位和当前模板某位...原创 2019-06-05 19:16:05 · 322 阅读 · 0 评论 -
Java GC 日志详解(一图读懂)
转自https://yq.aliyun.com/articles/570298?utm_content=m_1000008302(理解知识记录备用,侵权删)Java GC日志可以通过 +PrintGCDetails开启以ParallelGC为例YoungGC日志解释如下 :FullGC(图片源地址:这里):一目了然,一图胜千言...转载 2018-09-03 18:48:54 · 866 阅读 · 0 评论 -
Rabbit+SpringBoot 指定自动生成exchange、routingkey和Queue对应关系
使用AmqpTemplate只能指定对列名发送,并不会存在对应exchange关系,此时只能单配置一个,还要必须从上下文配置文件指明。经过研究发现通过使用RabbitTemplate可以自动生成exchange和routingkey之间的关系,而不用去RabbitMQ的management页面操作。具体如下: pom.xml依赖配置:<!--消息队列模块-->...原创 2018-08-28 15:08:13 · 14455 阅读 · 0 评论 -
MyBatis架构与执行流程
一、功能架构设计功能架构讲解:我们把Mybatis的功能架构分为三层:(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种方式:a.使用传统的MyBatis提供的API;b.使用Mapper接口a1.使用传统的MyBatis提供的API这是传统的传递Stateme...转载 2018-04-04 11:46:46 · 2591 阅读 · 0 评论 -
MongoTemplate——spring data 查询mongdb数据
导包:import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.Query;@Autowiredprivate ...原创 2018-03-15 15:41:19 · 711 阅读 · 0 评论 -
RedisTemplate——spring data 查询redis数据
导包:import org.springframework.data.redis.core.RedisTemplate;查询hash:Map hmap = redisTemplate.opsForHash().entries(hkey);还有查询各种类型的operations:用ops操作:redisTemplate.opsForHash().entries("key");...原创 2018-03-15 15:19:38 · 2843 阅读 · 0 评论 -
Spring Redis 序列化方式修改——RedisTemplate存取数据异常,在数据前有一串字符
今天在工作中,用Spring data 的RedisTemplate查询一个hash,输入正确的key,却不能查出来数据,于是尝试往Redis里存一个简单的KV键值对("cyf","father2"),居然发现了这种情况:于是询问大佬以后,发现是spring redis自带的序列化方式的问题,reidstemplate使用的默认的序列化方式有问题,需要调整序列化方式才能在redis中正常显示。经过...原创 2018-03-15 15:11:23 · 10169 阅读 · 2 评论