自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

转载 线程池(二)

Future 在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。接口和类:...

2019-09-17 18:22:00 131

转载 线程池(一)

Executor线程池顶级接口。定义方法,void execute(Runnable)。方法调用者提供Runnable接口的实现,线程池通过线程执行这个Runnable。服务方法无返回值的,是Runnable接口中的run方法无返回值。作用是: 启动线程任务的。ExecutorServiceExecutor接口的子接口。提供了一个新的服务方法,submit。有返回值(Fu...

2019-09-17 17:58:00 135

转载 Dubbo

分布式、高性能、透明化的RPC框架RPC远程过程调用协议客户端通过互联网远程调用服务器,但是不知道服务器的具体实现,只知道远程服务提供的功能。最大的优点:数据安全性。也可以使用HTTP请求,但是可能会比较慢,而且一些优化做的并不好。SOA面向服务框架SOA是一种设计思想,将各个业务分成各个功能服务,各个服务又可以通过协调合作提供一系列的功能。另外这些服务还各自独立...

2019-09-14 21:56:00 125

转载 同步(三) -- 同步容器

同步容器转载于:https://www.cnblogs.com/RobertLionLin/p/11511580.html

2019-09-12 14:03:00 88

转载 同步(二) - 锁

锁:Java 中锁的种类分为:偏向锁、自旋锁、轻量级锁、重量级锁锁的使用方式为:先提供偏向锁,不满足的时候,升级为轻量级锁,如果再不满足的时候,膨胀成重量级锁。自旋锁是一个过渡的状态,不是一种实际的锁类型。锁可以升级不可以降级。偏向锁  如果代码中不会存在竞争的关系的时候,为了让线程获得锁的代价更低,首先使用的这种锁。(JVM编译代码,解释执行的时候,会自动的放弃同步信息...

2019-09-12 14:02:00 167

转载 NIO

同步非阻塞编程转载于:https://www.cnblogs.com/RobertLionLin/p/11488122.html

2019-09-08 20:04:00 84

转载 设计模式(一)

设计模式设计模式一般分为三类创建型模式、结构型模式、行为型模式。思想:高内聚低耦合-软件中变化的部分和不变的部分分开创建型用来创建对象的:单例模式、建造者模式、工厂模式、抽象工厂模式、原型模式。行为型描述类或者对象是怎样交互和怎样分配职责的:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模...

2019-09-08 10:03:00 65

转载 Java--异常、反射

异常java.lang.Throwable:Throwable:可抛出的。 |--Error:错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。 |--Exception:异常,可以有针对性的处理方式这个体系中的所有类和对象都具备一个独有的特点;就是可抛性。可抛性的体现:就是这个体系中的类和对象都可以被throws和th...

2019-09-08 09:41:00 91

转载 Java--面向对象

1:将复杂的事情简单化。  2:面向对象将以前的过程中的执行者,变成了指挥者。  3:面向对象这种思想是符合现在人们思考习惯的一种思想。类主函数主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。成员变量和局部变量1:成员变量直接定义在类中。局部变量定义在方法中,参数上,语句中。2:成员变量在这个类中有效。局部变量只在自己所属的大括号内...

2019-09-08 09:40:00 112

转载 Java--语法

概述JDK Java development kit,Java的开发和运行环境,Java的开发工具(编译器 javac等)和jre  JRE Java runtime environment Java运行环境,java运行的所需的类库+JVM(java虚拟机)  环境变量: 让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用...

2019-09-08 09:39:00 78

转载 并发包中的类(二)

占坑转载于:https://www.cnblogs.com/RobertLionLin/p/11484405.html

2019-09-08 09:37:00 104

转载 并发包中的类

AQS转载于:https://www.cnblogs.com/RobertLionLin/p/11484121.html

2019-09-08 01:07:00 86

转载 集合比较

TreeMap的两种排序方法TreeSet可以实现对元素按照某种规则进行排序一 自然排序1.Student类中实现 Comparable<T>接口  2.重写Comparable接口中的Compareto方法@Override public int compareTo(Student s) { //return -1; //-1表示...

2019-09-08 01:00:00 468

转载 网络

OSI 的七层模型应用层:网络服务与最终用户的一个接口。HTTP、FTP、RPC表示层:数据的表示、安全、压缩。会话层:建立、管理、终止会话。传输层:定义传输数据的协议端口号,以及流控和差错校验。TCP、UDP网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。IP数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。MAC物理层:建立、维护、断开物理连接。bit流TCP...

2019-09-06 21:54:00 89

转载 zookeeper

简介ZooKeeper 是一个开源的分布式协调服务。  分布式应用程序可以基于 ZooKeeper 实现诸如命名服务、分布式锁、集群管理、Master 选举、数据发布/订阅、负载均衡、分布式协调/通知、配置维护、分布式同步、分布式锁和分布式队列等功能。数据结构-ZNode  znode和系统的文件系统非常像的,都是树形结构。每一个节点被称之为Znode。Znode结构...

2019-09-05 15:48:00 70

转载 消息队列

概述  消息队列比作一个存放消息的容器,需要使用消息的时候可以取出消息供自己使用。是分布式中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削锋、降低系统耦合性。(注意消费信息顺序问题,可能出现消费失败,或者一个queue多个consumer也会导致消息被消费顺序不对,一定要保证消息被消费的顺序正确)。功能(优点)通过异步处理提高系统性能  (削峰、减少响应所...

2019-08-31 15:54:00 227

转载 ThreadPoolExecutor 源码分析

public class ThreadPoolExecutor extends AbstractExecutorService {}ThreadPoolExecutor继承了AbstractExecutorService,该抽象类为线程池提供了默认实现。后面讲到线程池代码时详细说明。构造函数ThreadPoolExecutor有很多重载的构造函数,所有构造函数最终...

2019-08-28 20:50:00 113

转载 同步容器

同步容器为了解决并发情况下的容器线程安全问题的。给多线程环境准备一个线程安全的容器对象。  线程安全的容器对象: Vector, Hashtable。线程安全容器对象,都是使用synchronized方法实现的。而concurrent包中的同步容器,大多数是使用系统底层技术实现的线程安全。类似native。Java8中使用CAS。Map/SetConcurrentHashMa...

2019-08-28 19:34:00 105

转载 锁的种类

锁的种类Java中锁的种类大致分为偏向锁,自旋锁,轻量级锁,重量级锁。  锁的使用方式为:先提供偏向锁,如果不满足的时候,升级为轻量级锁,再不满足,升级为重量级锁。自旋锁是一个过渡的锁状态,不是一种实际的锁类型。  锁只能升级,不能降级。偏向锁是一种编译解释锁。如果代码中不可能出现多线程并发争抢同一个锁的时候,JVM编译代码,解释执行的时候,会自动的放弃同步信息。消除syn...

2019-08-28 11:47:00 411

转载 同步-synchronize、volatile、原子类型

synchronizesynchronized锁什么?锁对象。  可能锁对象包括: this, 临界资源对象(Object),Class类对象。  同步 - 原子性 加锁的目的: 就是为了保证操作的原子性同步方法synchronized T methodName(){}同步方法锁定的是当前对象。当多线程通过同一个对象引用多次调用当前同步方法时,需同...

2019-08-28 10:40:00 112

转载 ConcurrentHashMap

概述ConcurrentHashMap 1.7 版本前和 1.8 版本之后数据结构有所调整1.7 结构:底层采用 分段的数组+链表 实现。(图1)主要是segment数组,segment 保存的是一个HashEntry数组(和hashmap 1.7 的结构一样)。每个segment就相当于一个HashTable。  线程安全的方式:在JDK1.7的时候,Concur...

2019-08-28 00:25:00 73

转载 HashMap源码分析

概述HashMap是基于哈希表的Map接口的非同步实现,允许使用null值和null键,但不保证映射的顺序。  底层使用数组实现,数组中每一项是个单向链表,即数组和链表的结合体;当链表长度大于一定阈值时,链表转换为红黑树,这样减少链表查询时间。  HashMap在底层将key-value当成一个整体进行处理,这个整体就是一个Node对象。HashMap底层采用一个Node[]数组来保...

2019-08-27 19:31:00 35

转载 LinkedList源码分析

概述1 LinkedList是List接口的双向链表非同步实现,并允许包括null在内的所有元素。  2 底层的数据结构是基于双向链表的,该数据结构我们称为节点。它也可以被当作堆栈、队列(实现 了List 接口)或双端队列(实现 了Deque 接口)进行操作。  3 双向链表节点对应的类Node的实例,Node中包含成员变量:prev,next,item。其中,prev是该节点的上一...

2019-08-27 18:34:00 52

转载 Redis入门指南(三)

持久化RDB方式:rdb方式的持久化是通过快照完成的。符合一定条件时redis会自动将内存中的所有数据生成一份副本并存储在硬盘上,这个过程叫快照。以下几种情况会对数据进行快照:  1 根据配置规则进行自动快照  2 用户执行save 或 bgsve命令  3 执行 flushall 命令  4 执行复制时根据配置:save 900 1 ,在900秒内有一个及以上的键被更改则...

2019-08-27 00:14:00 133

转载 Redis入门指南(二)

排序使用SORT命令,操作集合类,和列表和有序集合类; SORT key Alpha 按照字典顺序排列非数字。SORT key DESC  BY 参数, 可以排序散列类型,甚至是字符串类型(根据名称+通配符)  get 排序之后 获取值  store 保存  优化: sort是redis最强大最复杂的命令之一。使用不好很容易成为性能的瓶颈。sort命令时间复杂度O(n+mlogM)...

2019-08-27 00:13:00 96

转载 Redis入门指南(一)

基本命令:redis 不区分大小写  keys pattern ; 获得符合规则的键名列表 支持glob风格通配符,?:一个字符 ; * : 任意个字符; [b-d ] 匹配b到d; \? 匹配“?”  exists key > 0/1 ; 判断一个键是否存在。  del key > 0/1 ; del 不支持通配符,结合Linux管道和xarg...

2019-08-26 19:51:00 116

转载 MySQL(三)- sql优化

避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。避免判断null值应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样...

2019-08-26 11:41:00 103

转载 MySQL(二)- 索引

MySQL中的索引简介索引的优点1 保证每一行数据的唯一性  2 提高查询的速度  3 加快表与表之间的连接  4 分组和排序进行数据检索的时候,显著减少分组和排序时间  5 通过索引,可以在查询中使用查询优化器,提高系统的性能。索引的缺点1 时间:创建索引和维护索引需要消耗时间,时间会随着数据量递增  2 物理空间:如果要建立所以聚簇索引,空间需要更多  3 对表数...

2019-08-26 11:36:00 55

转载 MySQL(一)- 数据库引擎

MySQL DBMS - MySQL Database Management System。数据库管理系统。MySQL数据库引擎ISAM (Indexed Sequential Access Method)isam是一个存在时间较长的数据表格管理方法,被设计的时候就考虑到数据库被查询的次数要远远大于插入的次数,因此isam执行读取的操作很快,而且不占用大量的内存和存...

2019-08-26 10:08:00 119

转载 Linux 简介和常用命令

Linux文件系统简介 在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。 也就是说在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。Linux的目录结构如下:Linux文件系统的结构层次鲜明...

2019-08-26 08:39:00 87

转载 B-tree 和 hash表

平衡二叉树平衡二叉树采用二分法的思维把数据组装成一个树形结构,减少无关的数据检索,大大提升了数据的检索速度。规则:1、非叶子节点最多只能有两个子节点存在。2、每一个非叶子节点数据分布规则为:左边子节点小于当前节点的值,右边的子节点大于当前节点的值(这里的值是基于自己的算法规则而定的,比如hash值)。平衡树的层级结构:因为平衡二叉树的性能和层级(H)是成反比关系的...

2019-07-10 22:04:00 188

转载 Maven(二)pom

pom简介  POM是项目对象模型(Project Object Model)的简称,pom.xml是maven项目中的文件,该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。每个Maven项目,必须包含pom.xml文件。pom基本配置<project xmlns = "http://mave...

2019-04-18 16:04:00 83

转载 Maven(一)

介绍Maven 是专门用于构建和管理Java相关项目的工具。Maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。特点相同的项目结构有一个pom.xml 用于维护当前项目都用了哪些jar包所有的java代码都放在 src/main/java 下面所有的测试代码都放在src/test/java 下面统一维护jar包maven风格的项目,首...

2019-02-20 18:07:00 152

转载 Solr的使用

Solr 是一种可供企业使用的、基于 Lucene 的搜索服务器,它支持层面搜索、命中醒目显示和多种输出格式。在这篇文章中,将介绍 Solr 并展示如何轻松地将其表现优异的全文本搜索功能加入到 Web 应用程序中。转载于:https://www.cnblogs.com/RobertLionLin/p/10405108.html...

2019-02-20 10:36:00 52

转载 ArrayList源码解析

Java集合类是Java语言中常用的一个包,包括了List,Map,Set等接口,对于这些常用接口的实现类,我们需要了解它们的数据结构以及特性,以便于选择最合适的集合来存放数据,提高效率。ArrayList概述、特性1 ArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。  2 底层使用数组实现  3 该集合是可变长度数组,数组扩容时,会...

2019-02-12 14:40:00 73

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除