- 博客(12)
- 资源 (27)
- 收藏
- 关注
原创 java核心技术学习笔记——理解 String,StringBuffer,StringBuilder
StringString的创建机理由于String在Java世界中使用过于频, Java为了避免在一个系统中产生大量的String对象, 引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查池中是否有值相同的字符串对象,如果有则不需要创建直接从池中刚查找到的对象引用;如果没有则新建字符串对象,返回对象引用,并且将新创建的对象放入池中。但是,通过new方法创建的String对象是...
2019-01-22 17:53:20 167
原创 java核心技术学习笔记——强引用、软引用、弱引用、幻象引用
强引用我们平常典型编码Object obj = new Object()中的obji就是强引用。通过关键字new创建的对象所关联的引用就是强引用。当JVM内存空间不足, JVM宁愿抛出OutOfMemoryEror运行时错误(OOM) ,使程序异常终止,也不会靠随意回收具有强引用的"存活"对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相...
2019-01-22 10:03:05 286
原创 Java核心技术学习笔记——final, finally,finalize
final可以用来修饰类、方法、变量,分别有不同的意义, final修饰的class代表不可以继承扩展, final的变量是不可以修改的,而final的方法也是不可以重写的(override)finally则是Java保证重点代码一定要被执行的一种机制。我们可以使用try-finally或者try catch-finally来进行类似关闭JDBC连接、保证unlock锁等动作。finali...
2019-01-21 16:56:23 187
原创 java核心技术学习笔记——Exception与error的区别
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch) ,它是异常处理机制的基本组成类型。Exception和Error体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error是指在正常情况下,不大可能出现的情...
2019-01-21 14:57:43 201
原创 微服务架构学习笔记
什么是微服务: 一组小的服务独立的进程轻量级通信基于业务能力独立部署无集中式管理微服务的利和弊:利:强模块化边界可独立部署技术多样性弊:分布式复杂性最终一致性运维复杂性测试复杂性 微服务架构的实用性:初期不建议使用微服务(使用微服务框架不一定就是微服务)建议使用单块引用,当系统复杂性高时使用微服务 微服务中台战...
2019-01-12 15:51:14 195
原创 数据结构与算法笔记——分治算法(divide and conquer)
什么是分治算法:将原问题划分成n个规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后再合并其结果,就得到原问题的解。分而治之算法是一种处理问题的思想,递归是一种编程技巧. 分而治之能解决的问题:原问题与分解成的小问题具有相同的模式;原问题分解成的子问题可以独立求解,子问题之间没有相关性,这一点是分治算法跟动态规划的明显区别,等我们讲到动态规划的时候,会详细对...
2019-01-12 13:55:46 933
原创 数据结构与算法学习笔记——贪心算法(greedy algorithm)
理解贪心算法:假设我们有一个可以容纳100kg物品的背包,可以装各种物品。我们有以下5种豆子,每种豆子的总量和总价值都各不相同。为了让背包中所装物品的总价值最大,我们如何选择在背包中装哪些豆子?每种豆子又该装多少呢? 先算一算每个物品的单价,按照单价由高到低依次来装就好了。单价从高到低排列,...
2019-01-12 11:49:32 1262
原创 数据结构与算法学习笔记——图(Graph)
什么是图: 无向图:可以理解QQ中的互加好友 无向图: 可以理解为微博中的关注图的一些概念:顶点:图...
2019-01-04 18:27:36 1371
原创 数据结构与算法学习笔记——堆 (Heap)
什么是堆:堆是一个完全二叉树; 堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点的值。 堆排序是一种原地的、时间复杂度为O(nlogn)的排序算法。堆的一些概念:大顶堆: 每个节点的值都大于等于子树中每个节点值的堆小顶堆: 每个节点的值都小于等于子树中每个节点值的堆 堆化(heapify): 把不符合堆的特征的树调整为...
2019-01-04 17:36:05 2144
原创 数据结构与算法笔记——树(Tree)
什么是树树的一些概念根节点、叶子节点、父节点、子节点、兄弟节点,还有节点的高度、深度以及层数,树的高度。你有没有发现, "树"这种数据结构真的很像我们现实生活中的"树" ,这里面每个元素我们叫作"节点" ;用来连线相邻节点之间的关系,我们叫作"父子关系"。比如下面这幅图, A节点就是B节点的父节点, B节点是A节点的子节点。 B.C、D这三个节点的父节点是同一个节点,所以它们...
2019-01-03 14:45:57 3013
原创 数据结构与算法学习笔记——排序:冒泡排序,插入排序,选择排序,归并排序,快速排序,桶排序
排序方法与复杂度归类(1)几种最经典、最常用的排序方法:冒泡排序、插入排序、选择排序、快速排序、归并排序、计数排序、基数排序、桶排序。(2)复杂度归类冒泡排序、插入排序、选择排序 O(n^2)快速排序、归并排序 O(nlogn)计数排序、基数排序、桶排序 O(n)如何分析一个“排序算法”<1>算法的执行效率1. 最好、最坏、平均情况时间复杂度。2. 时间复杂度的...
2019-01-03 11:58:36 1243
原创 数据结构与算法学习笔记—— 散列表(哈希表)(数据结构)
什么是散列表:散列表用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。原理:散列表用的就是数组支持按照下标随机访问的时候时间复杂度是0(1)的特性。我们通过散列函数把元素的键值映射为下标,然后将数据存储在数组中对应下标的位置。当我们按照键值查询元素时,我们用同样的散列函数,将键值转化数组标标,从对应的数组...
2019-01-03 11:52:57 2286
Jenkins持续集成与容器管理.pdf
2019-06-24
rabbitMQ教程
2019-01-23
RabbitMQ使用文档.PDF
2018-12-20
深入浅出的学习MVC
2018-12-11
JVM优化|java虚拟机优化
2018-12-04
HttpClient 4.3教程.pdf
2017-09-20
fastDFS笔记
2017-09-18
FastDFS 架构剖析及配置优化
2017-09-18
pagehelper分页插件
2017-09-17
maven3.3.9
2017-09-17
pom约束文件
2017-09-17
dubbo-admin-2.5.4.war
2017-09-17
dubbo监控中心(dubbo-admin)使用与安装
2017-09-17
spring-boot-cli-1.4.0.BUILD-SNAPSHOT-bin.zip
2017-09-14
ActiveMQ_in_Action_中文.pdf
2017-09-11
Spring技术内幕:深入解析SPRING架构与设计原理
2017-09-11
[免费]Spring MVC学习指南(高清)
2017-09-11
深入理解Java虚拟机:JVM高级特性与最佳实践
2017-08-01
Spring-boot参考指南
2017-08-01
快乐的Linux命令行.pdf
2017-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人