每周学习记录
文章平均质量分 79
藿香正气
这个作者很懒,什么都没留下…
展开
-
0409-0415周:Thread.sleep() && Object.wait()
参考:https://stackoverflow.com/questions/1036754/difference-between-wait-and-sleep https://blog.csdn.net/a19881029/article/details/39028461Thread.sleep():Causes the currently executing thread to slee...翻译 2018-04-14 23:28:23 · 148 阅读 · 0 评论 -
线程池-创建
线程池:管理同一组同构工作线程的资源池创建线程池1、通过调用Executors中的静态工厂方法来创建线程池newFixedThreadPool:固定长度的线程池newCachedThreadPool:可缓存的线程池。如果线程池的当前规模超过了处理需求时,那么将回收空闲线程,而当需求增加时,则可以添加新的线程。线程池的规模不存在任何限制。newSingleThreadExecutor...原创 2019-05-22 21:22:33 · 189 阅读 · 0 评论 -
Runnable && Callable
Runnable是一种有很大局限性的抽象,虽然run()能写入到日志文件或者将其结果放入某个共享的数据结构,但它不能返回一个值或者抛出一个受检查的异常。public interface Runnable { public abstract void run();}Callable是一种更好的抽象:它认为主入口点(即call())将返回一个值,并可能抛出一个异常。public in...原创 2019-05-23 15:41:28 · 4979 阅读 · 0 评论 -
java8-用Optional取代null
null带来的种种问题null是错误之源NullPointerException是目前java开发中最典型的异常会使你的代码膨胀代码中充斥着深度嵌套的null检查,代码的可读性糟糕透顶null自身毫无意义破坏了java的哲学java一直试图避免让程序员意识到指针的存在,唯一的例外是:null指针它在java的系统类型上开了个口子null并不属于任何类型,这意味着它可以被赋值给任...原创 2019-06-09 13:34:03 · 1930 阅读 · 1 评论 -
java8-引入流
流是什么流是java API的新成员,它允许你以声明性的方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。流还可以透明地并行处理,无需写任何多线程代码。代码示例:代码是以声明性的方式写的:说明想要完成什么而不是说明如何实现一个操作(利用循环和if条件等控制流语句)可以把几个基础操作链接起来,来表达复杂的数据处理流水线,同时保持代码清晰可读。流简介流的简短定义:从...原创 2019-06-09 14:35:43 · 198 阅读 · 0 评论 -
java8-CompletableFuture组合式异步编程
并发 && 并行同步API && 异步APIFuturepublic interface Future<V> {}基本用法通常只需要将耗时的操作封装在一个Callable对象中,再将它提交给ExecutorService就可以了。 ExecutorService executorService = Executors...原创 2019-06-24 18:55:39 · 167 阅读 · 0 评论 -
git生成ssh key
参考:如何生成SSH key - 简书cd ~/.ssh/ 到目标目录再进行操作执行命令:ssh-keygen -t rsa -C "mail@maili.com"执行命令:eval "$(ssh-agent -s)"ssh-add ~/.ssh/id_rsa将key复制到剪贴板,添加到github中pbcopy < ~/.ssh/id_rsa.pub...原创 2019-07-12 19:17:09 · 151 阅读 · 0 评论 -
RocketMQ vs. ActiveMQ vs. Kafka
原文:http://rocketmq.apache.org/docs/motivation/翻译 2019-07-12 21:36:09 · 229 阅读 · 0 评论 -
53. 最大子序和
https://leetcode-cn.com/problems/maximum-subarray/传统解法:正数增益https://leetcode-cn.com/problems/maximum-subarray/solution/hua-jie-suan-fa-53-zui-da-zi-xu-he-by-guanpengchn/class Solution { public ...原创 2019-07-09 18:14:38 · 99 阅读 · 0 评论 -
RocketMQ:事务性消息学习笔记
什么是事务性消息(transactional message)?可以认为是一个两阶段提交(two-phase commit )消息的实现,以确保分布式系统中的最终一致性。事务性消息确保本地事务的执行和消息的发送是一个原子性操作。关于two-phase commit:https://blog.csdn.net/lengxiao1993/article/details/88290514ro...原创 2019-07-13 20:09:01 · 1032 阅读 · 0 评论 -
进程 && 线程
一般来说,一个进程可以包含多个线程线程之间共享内存进程和线程之间最大的区别就是内存是否共享。通常,每个进程都拥有彼此独立的内存空间。一个进程不可以擅自读取、写入其他进程的内存。由于进程的内存空间是彼此独立的,所以一个进程无须担心被其他进程破坏。线程之间共享内存。所谓“共享内存”,在Java中就是“共享实例”的意思。Java的实例分配在内存上,可由多个线程进行读写。由于线程之间共享内存,所...原创 2019-07-09 22:50:02 · 109 阅读 · 0 评论 -
快速排序学习笔记
基本算法快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立的排序。快速排序和归并排序是互补的归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;快速排序将数组排序的方式是当两个子数组都有序时,整个数组也就自热有序了。在归并排序中,一个数组被等分为两半;在快速排序中,切分的位置取决于数组的内容。示例:切分元素为K,左半部分为不大于K的元素...原创 2019-07-14 22:46:09 · 156 阅读 · 0 评论 -
Spring bean 的作用域
Spring定义了多种作用域单例(Singleton):在整个应用中,只创建bean的一个实例原型(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean的实例会话(Session):在WEB应用中,为每个会话创建一个bean实例请求(Request):在WEB应用中,为每个请求创建一个bean实例单例是默认的作用域。选择其他作用域要使用@S...原创 2019-05-26 22:30:32 · 207 阅读 · 0 评论 -
java Map学习
Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。迭代 Map 中的元素Set<K> keySet(); //所有键Collection<V> values(); //所有值Set<Map.Entry<K, V>> entrySet(); //所有键值对...原创 2019-05-26 21:14:33 · 153 阅读 · 0 评论 -
0409-0415周:MyBatis缓存
一、系统缓存(一级缓存和二级缓存)MyBatis对缓存提供支持,默认情况下只开启一级缓存。一级缓存:在参数和SQL完全一样的情况下,我们使用同一个 SqlSession对象调用同一个 Mapper的方法,往往只执行一次SQL,因为使用 SqlSession第一次查询后, MyBatis会将其放在缓存中,以后再查询的时候,如果没有声明需要刷新,并且缓存没超时的情况下 SqlSessi...原创 2018-04-13 10:55:25 · 160 阅读 · 0 评论 -
dubbo-Quick Start
Apache Dubbo:高性能、基于java的rpc开源框架 参考:http://dubbo.apache.org/1、环境准备IntelliJ ideaJDK: version 6 or higherMaven: version 3 or higher引用:<dependency> <groupId>com.alibaba<...翻译 2018-04-23 16:09:07 · 296 阅读 · 0 评论 -
[2018]学习记录
Object.clone()Object类的clone()方法,创建和返回该对象的一个拷贝protected native Object clone() throws CloneNotSupportedException;原创 2018-11-13 10:26:43 · 148 阅读 · 0 评论 -
Linux命令-ln
ln file link :创建硬链接ln -s item link :创建符号链接硬链接硬链接不能引用自身文件系统之外的文件。(硬链接不能引用与该链接不在同一磁盘分区的文件) 硬链接无法引用目录硬链接与文件本身没有什么区别。当硬链接被删除时,只是删除了这个链接,文件本身的内容依然存在。ln empty e-hardls -l-rw-r--r-- ...原创 2018-12-19 15:16:06 · 148 阅读 · 0 评论 -
学习笔记-表、栈和队列
学习资料:《数据结构与算法分析 java语言描述》第三章 表、栈和队列ADT抽象数据类型(abstract data type,ADT)是带有一组操作的一些对象的集合。表ADT表的简单数据实现对表的所有操作都可以通过数组来实现。虽然数组是由固定容量创建的,但在需要的时候可以用双倍的容量创建一个不同的数组。int[] arr = new int[10];// 扩大arrint [...原创 2019-03-10 17:40:51 · 208 阅读 · 0 评论 -
二叉查找树-学习
二叉树二叉树(binary tree)是一棵树,其中每个节点都不能多于两个的儿子。例子-表达式树如图显示的就是一个表达式树的例子。表达式树的树叶是操作数(如常数或变量名),而其他节点为操作符。中序遍历(左、节点、右)[递归地产生一个左表达式,然后打印出在根处的运算符,最后再递归的产生一个带括号的右表达式而得到一个中缀表达式]:(a+(bc))+(((de)+f)*g)后序遍历...原创 2019-03-14 23:04:46 · 124 阅读 · 0 评论 -
优先队列(堆)基础知识
API优先队列是一种抽象数据类型,最重要的操作就是删除最大元素(delMax())和插入元素(insert())。初级实现数组实现无序删除最大元素需要加入排序算法有序insert() 将所有最大元素向右移一格以保证数组有序链表实现在表头以O(1)执行insert(),并遍历该链表以删除最大元素(O(N))始终保持链表的排序状态,这样insert()操作代价高昂(O(N)...原创 2019-05-03 15:59:37 · 218 阅读 · 0 评论 -
Dubbo学习-Quick start
概述Apache Dubbo™ (incubating) is a high-performance, java based open source RPC framework.Dubbo是一个基于java的开源的RPC框架。主要特性:基于接口的远程调用(interface based remote call)容错&负载均衡(fault tolerance & lo...原创 2019-04-28 18:21:17 · 163 阅读 · 0 评论 -
树的深度优先遍历 && 广度优先遍历
深度优先遍历深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为...原创 2019-05-21 17:20:46 · 21255 阅读 · 4 评论 -
java iterator
Iterator 模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。迭代器Iterator的遍历while循环Iterator it = list.iterator(); while (it.hasNext()) { .......... }for循环for (Iterator it = list....原创 2019-05-21 18:19:34 · 226 阅读 · 0 评论 -
Redis简介
Redis简介Redis是一个使用内存存储的非关系数据库。可以存储键(key)与5种不同类型的值(value)之间的映射,可以将存储在内存的键值对数据持久化到硬盘可以使用复制特性来扩展读性能可以使用客户端分片来扩展写性能 redis官网Redis数据结构简介Redis中的字符串Redis中的列表一个列表结构可以有序的存储多个字符串。列表使用0为范围的起始索引,-1...原创 2019-05-25 16:55:01 · 418 阅读 · 0 评论 -
常见面试题-用两个栈实现一个队列
栈:先进后出队列:先进先出一个简单实现:分两个操作:入队 、 出队s1用来入队s2用来出队 Stack<Integer> s1 = new Stack<>(); Stack<Integer> s2 = new Stack<>(); //入队 -> s1 s1...原创 2019-05-26 09:50:48 · 206 阅读 · 0 评论