![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java技能
xiaozhu_ccn
这个作者很懒,什么都没留下…
展开
-
泛化调用/nio/requestId/服务发现
泛化调用:解决的问题:因为在网管系统中要依赖的jar包太多了,接口太多太难管理,所以入参和出参就像Dubbo官方示例代码中的一样,完全用Map来代替。使用者在调用提供者接口时,不再需要依赖服务提供方客户端的JAR包,因此也就没有了POJO,通过泛化的方式进行远程调用。如何发布API接口到网关?根据泛化调用的方式,网关系统需要知道服务的类名和方法名。网关系统可以提供一个API发布平台入口,让API发布者将RPC环境下的API数据录入到API发布平台。RPC本身就可以为消费系统提供一个获取API信息原创 2020-07-22 21:46:29 · 393 阅读 · 0 评论 -
缓存击穿
1.缓存为什么可能会穿透定义:请求去一条压根儿数据库中就不存在的数据,也就是缓存和数据库都查询不到这条数据,但是请求每次都会打到数据库上面去,可能会导致你的数据库由于压力过大而宕掉。这种查询不存在数据的现象我们称为缓存穿透。解决办法:设置空值:当数据查不到,查数据库,数据库也没有时,缓存设置为null,并设置过期时间(毕竟null无意义还浪费存储空间)。当数据写入库时,同时替换缓存的null。缺点:如恶意攻击,则会浪费缓存空间,如果这种null值过量的话,还会淘汰掉本身缓存存在的数据,原创 2020-07-16 18:21:46 · 150 阅读 · 0 评论 -
java集合派系学习
一、collection派系1.1 set 无重复treeset有序set,底层是treemap,插入数据存在map的key位置,value是固定值。hashset底层是hashmap,同样插入数据存在map的key位置,value是固定值。1.2 list 可重复arrayList的类图如下:底层结构,capacity默认长度,默认10添加:elementData()存储具体的元素,他的默认无参构造函数是懒初始化的,在add时才初始化,在add时首先元素增长1然后.原创 2020-06-23 03:18:58 · 220 阅读 · 0 评论 -
java并发编程/反射/注解学习
反射spring ioc 容器实现bean的几种方式原创 2020-06-23 01:17:12 · 145 阅读 · 0 评论 -
红黑树学习
一,红黑树定义:1,根节点是黑色的2,每个叶子节点都是黑色的空节点null,也就是说叶子节点不存储数据3,任何相邻的(父子)节点都不能同时为红色,也就是说红色节点是被黑色节点隔开4,每个节点,从该节点到达叶子节点的所有路径,都会包含相同数目的黑色节点。满足二叉搜索树定义(左节点永远比根节点小,右节点比根节点大),也基本满足二叉平衡树(任何节点左右节点的高度差绝对值不能超过1);二、调整红黑树:左旋,右旋,可以根据二叉搜索树定义调整,就知道左右旋转节点该怎么放了。红黑树的.原创 2020-06-22 03:39:20 · 179 阅读 · 0 评论 -
Mybatis源码学习
目标:1看源码;2分析原理;3手写mybatis oop面向对象的编程能力一,什么是mybatis?官方文档:https://mybatis.org/mybatis-3/它是一个一流的持久化框架,支持定制化SQL,存储过程和高级映射;mybatis避免了几乎所有的JDBC冗余代码及结果映射代码;mybatis可以用xml或注解的形式,将接口和POJOS对象映射成数据库记录。注意:任何数据库持久化框架底层都是JDBC二、how it works,先宏观再围观1,配置,因..原创 2020-06-01 02:00:47 · 145 阅读 · 0 评论 -
从HelloWord学习JVM虚拟机
JVM虚拟机一、为什么学习JVM面试、找工作、OOM、调优二、什么是JVM,它做了什么java虚拟机,执行java代码的平台,屏蔽了底层硬件指令的细节,一次编写到处执行代码执行过程:源代码->字节码文件class->-->jvm->jvm&jdk&jre 关系 jdk包括jre和jvmjvm做了什么?1,空间分配回收,而c++需要考虑内存分配和回收。java能让开发者100%精力投入业务开发2,内存管理3,屏蔽底层硬件区别.原创 2020-05-27 21:48:13 · 286 阅读 · 0 评论 -
学习算法第二天:栈队列和并查集、哈希表
栈和队列•定义:存放数据的线性表•操作:入栈/队列、出栈/队列、判断满/空•空间复杂度:O(n)•单次操作时间复杂度:O(1)•区别 先进后出(FILO, First In Last Out) 先进先出(FIFO, First In First Out)栈和队列的实现方式:数组和链表皆可(线性表)•指针(辅助变量)栈顶/底指针 队头/尾指针•关键:出入元素的同时移动指针三、栈的应用括号匹配:•括号、引号等符号是成对出现的,必须相互匹配•设计...原创 2020-05-25 02:29:29 · 175 阅读 · 0 评论 -
学习算法第一天:算法初步
一、学习算法必要性why:应用:机器学习、数据挖掘、自然语言处理、密码学、计算机图形学等找工作:贪心、分治、动态规划、树、图等.二、怎么做how?穷举法(万能算法)求N个数的全排列8皇后问题分而治之(减而治之)二分查找——减而治之归并排序——分而治之贪心最小生成树 Prim, Kruskal单源最短路 Dijkstra动态规划背包士兵路径三、时间、空间复杂度常见时间复杂度分析方法数循环次数 均摊分析 递归式——主定理• O(1) 基本..原创 2020-05-25 00:49:34 · 570 阅读 · 0 评论 -
最近5年133个Java面试问题列表
本文由 ImportNew - paddx 翻译自 javarevisited。欢迎加入翻译小组。转载请见文末要求。Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、Has转载 2016-05-26 12:30:52 · 398 阅读 · 0 评论 -
40个Java集合面试问题和答案
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框转载 2016-05-26 12:25:50 · 253 阅读 · 0 评论 -
JAVA垃圾回收机制
在java中垃圾回收是系统自动完成的,了解它对优化应用程序有很大的帮助。那么我们就从下面几个方面来了解垃圾回收机制:哪些对象需要回收?什么时候回收?怎么去回收?判断对象可以回收的方法:引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。优点:简单,高效转载 2016-05-26 12:21:43 · 1110 阅读 · 0 评论