- 博客(23)
- 收藏
- 关注
原创 后端架构师技术图谱
《后端架构师技术图谱》 推荐: 《Java技术书籍大全》 - awesome-java-books 从初级开发者到资深架构师,看这些书就够了 数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B,B+,B*树 LSM 树 BitSet 常用算法 排序、查找算法 选择排序 冒泡排序 插入排序 快速排序...
2020-01-10 14:11:31 897
原创 从仓库解析依赖的机制
底层实现方式(两种类型版本共用): 读取远程仓库的maven-metadata.xml文件,将其和本地仓库的maven-metadata.xml文件合并后,得到最新版本得快照值,然后基于该值去本地仓库或者是远程仓库获取。 1.若为快照版本: 如果A依赖B得快照版本,会根据B deploy到私服得最近timestamp下载最新的jar,默认Maven每天更新一次,如果你想让Maven强制更新,可以...
2019-04-22 20:06:48 173
转载 JSP转化成servelt的原理
JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种不足,JSP通过...
2019-03-31 15:36:30 171
转载 spring中beanFactory与factoryBean得区别
https://www.cnblogs.com/aspirant/p/9082858.html
2019-03-25 20:18:30 104
原创 spring中得几种Bean注入方式得区别
@Autowired和@Inject 默认 autowired by type 可以 通过@Qualifier 显式指定 autowired by qualifier name。 如果 autowired by type 失败(找不到或者找到多个实现),则退化为autowired by field name @Resource 默认 autowired by field name 如果 au...
2019-03-25 19:57:36 978
原创 JAVA与线程
实现线程得三种方式: 1.使用内核线程 内核线程(Kernel_Level Thread KLT)就是直接由操作系统内核支持得线程,这种线程由操作系统内核来完成线程切换,内核通过操纵调度器scheduler对线程进行调度,并负责将线程得任务映射到 各个处理器上。每个内核线程可以视为内核得一个分身。 程序一般不会直接去使用内核线程,而是去使用内核线程得一种高级接口-------轻量级进程 (Ligh...
2019-03-17 22:48:33 93
转载 两个有序数组合并成一个有序数组 要求时间复杂度为O(n)
/** * / /* @author jueying: @version 创建时间:2018-10-22 下午01:32:44 类说明 / /* @author jueying */ public class Test4 { /* * 把两个有序数组合并成一个有序数组,实现算法的复杂度为n * * 同理如果想要数组中的元素只移动一次,原理和字符串中空格代替是一个思想,采用从后面开始复...
2019-03-08 14:15:16 2279
原创 JAVA内存模型与线程
JAVA内存模型 JAVA虚拟机规范中试图定义一种JAVA内存模型(JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让JAVA程序在各种平台下都能达到一致的内存访问效果。 JAVA内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。 如图: volatile关键字 1.当一个线程对volatile修饰的变量修改了之后,新值是对其...
2019-03-03 23:49:38 104
原创 虚拟机得类加载过程
引言 在JAVA语言里面,类型得加载,连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是给JAVA应用程序提供了高度的灵活性。 比如 在面向接口编程,运行时我才知道我具体采用哪个实现类去加载 (JAVA反射)。 比如 在运行时从网络或者其他地方加载一个二进制流作为代码的一部分。 类加载过程分为三个阶段: 一 加载 这一阶段通过类加载器进行 1.从各个地方...
2019-03-02 18:32:58 226
原创 垃圾收集器与内存分配策略篇
背景:GC对对象进行回收前会判定对象是否存活。 如何判断对象是否存活得算法? 1.引用计数算法 有一个地方引用对象时候,计数器就加1,当一个引用失效时,计数器就减一。直到计数器为0时就判定对象不可能再被使用了。 缺点:很难解决对象之间得相互引用问题。 2.可达性分析算法 通过GC Roots得对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引...
2019-03-02 16:54:30 117
转载 关于spring定时任务时间配置
https://blog.csdn.net/jiaonizuoren/article/details/83061630 转载
2019-02-21 14:22:49 3923
原创 关于.bash_profile 与.bashrc的区别
查看/home/.bash_profile 查看环境变量脚本 根据特定的用户启动特定的环境变量脚本
2019-01-10 17:07:58 165
原创 通俗的说一下关于事务的隔离级别的问题
在说数据库的隔离级别之前说下什么是脏读,幻读,不可重复读 1.脏读 就是自己读了别人事务做出了修改但没有提交的内容(脏数据) 所以造成了脏读。从数据库底层理解就是: A读取了B在操作数据后还没提交到数据库的数据。 用最通俗的话就是别人恐吓说要杀你儿子但是还没有杀 但是你确认为别人已经杀了。 2.幻读 就是比方说自己读了主信息表的若干行获取了结果集,然后去搞别的事了,回来的时候再看了一遍的时候发现...
2018-12-23 17:04:25 302
原创 记录一下今天 写了一个TreeSet实现了日期去重以及排序
Set<String> monthset =new TreeSet<String>(new Comparator<String>(){ public int compare(String s1, String s2) { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM"); ...
2018-09-17 20:03:39 626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人