自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lcn_2017的博客

一个初级程序员的小屋

  • 博客(31)
  • 收藏
  • 关注

原创 优秀博客收藏

Java多线程AQS框架代码详解Java SE1.6中的SynchronizedJava容器源码解析Java中锁之间的相互关系详解JAVA底层相关Oracle即将发布的全新Java垃圾收集器 ZGCJava底层系列五篇线程池源码分析Reference详解 跟GC有关系LinuxLinux命令介绍优秀博客分布式锁 死磕Synchr...

2018-10-11 16:04:38 228 1

原创 现代操作系统读书笔记合集

第一章 第二章

2018-07-23 21:30:25 796

原创 Java并发编程实战读书笔记合集

第一 二章合集第三章第四章第五章第六章第七章第八章第十章

2018-07-23 20:57:27 1163

原创 Java并发编程实战:第十章读书笔记

第十章 避免活跃性危险摘要: 本章主要介绍了许多可能造成活跃性降低的情况以及相关的危险操作。10.1 死锁说道死锁最典型的问题就是哲学家就餐的问题,如果五个哲学家就餐桌上有五支筷子,那么当五个哲学家同时拿起左手边的筷子时,他们就会一直持有一支筷子而等待另外的筷子从而造成死锁,在没有外界介入的情况下他们就将永久的等待下去。那么除了上述典型的问题还有什么情况有可能导致死锁呢?锁顺序...

2018-09-03 22:39:13 333

原创 Java并发编程实战:第八章读书笔记

第八章 线程池的使用摘要: 本章主要介绍了Executor的配置和调优的一些高级选项,并分析使用该框架的一些危险,以及使用该框架的一些高级用例。8.3 配置和使用策略前两小节相对比较基础和概念就暂不多说。线程池的创建除了Executors的各种方法之外,还可以通过构造函数去自定义化自己的线程池。本节的重点在于任务队列的管理,文中有三个管理方法,第一使用无界队列,第二使用有界队列...

2018-09-02 22:15:08 348

原创 Java并发编程实战:第七章读书笔记

第七章 取消与关闭摘要: 本章主要介绍了如何结束一个任务的执行。虽然我们通常不会去打断,但要使线程安全、快速、可靠地停下来还是相对复杂的。本章主要的取消分两个方向,第一个就是任务的取消,第二个就是生成任务的线程的取消。7.1 任务取消最开始的例子是使用一个标志位每次调用任务之前先检查,这是典型地先检查后执行的代码。那么当任务中含有阻塞的任务时,这个任务就有可能一直阻塞在这里永远不会被返...

2018-09-02 20:31:41 326

原创 Java并发编程实战:第六章读书笔记

第六章 任务执行摘要: 本章主要介绍了任务的概念,一直执行的策略。6.1 任务1. 任务的概念什么是任务? 其实大多是并发编程应用都是围绕"任务执行(Task excution)" 来构造的。任务通常是一些抽象且离散的工作单元,将应用程序的工作分解到多个任务中,可以简化程序的组织结构,提供一种自然的事务边界来优化错误恢复过程,以及提供一种自然的并行工作结构来提升并发性。2. 什...

2018-09-02 13:46:02 322

原创 现代操作系统读书笔记-第二章

第二章2.1 进程就操作系统而言,任何多道程序设计系统中的任何一个时刻CPU都只能运行一个进程。进程的创建    进程是如何创建的 通常有四种情况可以创建进程:        1. 系统初始化        2. 正在运行的程序执行了创建进程的系统调用        3. 用户请求创建了一个新的进程        4. 一个批处理作业的初始化    在Windo...

2018-08-14 22:32:42 453

转载 深入学习Redis(3):主从复制

前言在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化。在Redis的持久化中曾提到,Redis高可用的方案包括持久化、主从复制(及读写分离)、哨兵和集群。其中持久化侧重解决的是Redis数据的单机备份问题(从内存到硬盘的备份);而主从复制则侧重解决数据的多机热备。此外,主从复制还可以实现负载均衡和故障恢复。这篇文章中,将详细介绍Redis主从复制的方方面面,包括:...

2018-08-03 09:02:38 221

转载 深入学习Redis(2):持久化

前言在上一篇文章中,介绍了Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持久化技术,主要是RDB和AOF两种持久化方案;在介绍RDB和AOF方案时,不仅介绍其作用及操作方法,同时介绍持久化实现的一些原理细节及需要注意的问题。最后,...

2018-08-03 09:00:01 175

转载 深入学习Redis(1):Redis内存模型

前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有...

2018-08-03 08:57:55 172

原创 Java并发编程实战:第五章读书笔记

第五章 基础构建模块摘要: 本章主要介绍了Java中几个比较重要的开发模块。1. 同步容器类 Vector HashTable同步容器虽然是线程安全的容器,但是在执行某些操作的时候可能会抛出异常,这并不是我们想要的。例如Vector的getLast和deleteLast两个操作在两个线程中交替运行时,就有可能抛出ArrayIndexOutOfBoundsException。还有一个隐藏...

2018-07-29 20:15:09 309

原创 Java并发编程实战:第四章读书笔记

第四章 对象的组合摘要: 本章我认为最主要就讲了一点,那就是如何构建一个线程安全的类。1. 线程安全的类 如何设计出线程安全的类,书中给了几个建议翻译成大白话就是 先抽象然后找出哪些状态是不可变的,然后找出变量不可变的条件,最后对可变状态进行并发访问的管理。我觉得本章比较重点的一个做法就是将线程安全性委托。在我们写类时,可以将可变的状态封装给一个线程安全的类,这样就叫做线程安全的委...

2018-07-29 17:47:29 403

原创 Java并发编程实战:第三章读书笔记

第三章 对象的共享摘要: 本章主要介绍了线程安全问题基本都是由共享状态的非同步导致的。1. 可见性, 所谓可见性其实是一个相对复杂的概念。我理解的可见性就是某一个操作的结果对另外的操作是可见的这就是可见性。正是因为可见性的不可预见性,所以当我们的代码在没有同步的情况下,经过编译器、处理器以及运行时等都有可能对操作的执行顺序进行调整。2. 失效数据,这里首先有一个概念就是JMM(...

2018-07-29 17:13:52 474

原创 现代操作系统读书笔记-第一章

第一章摘要: 第一章引论 主要讲述了 操作系统的发展史,现代计算机硬件的简介,现阶段操作系统的分类以及相关的知识计算机硬件简介1. 处理器    处理器是电脑的大脑,不同的处理器中维护着一套可执行的指令集 以及几个寄存器 通常情况下有三个:        1. 程序计数器: 记录下一条指令的内存地址        2. 堆栈指针: 记录内存中当前栈的顶端        ...

2018-07-23 21:55:37 567

原创 Java并发编程实战:第一章,第二章读书笔记

第一章摘要: 本章主要讲述并发编程简史,多线程给我们带来的优势 比如: 能发挥出多核处理器的强大能力,异步事件的简化处理等优点,第三节主要讲述了线程带来的风险,接下来我就主要记录一下这几个问题。1. 安全性问题,在多个线程的系统中 如果对线程间共享的变量操作不当,就会带来千奇百怪的结果。2. 活跃性问题,安全性意味永远不要发生糟糕的事情,而活跃性则意味着正确的事情最终会发生。3. ...

2018-07-23 21:27:02 521

原创 大话设计模式之代理模式

简述代理模式顾名思义就是代理,帮别人做什么事情。代理模式的实现方式通常有两种 静态代理和动态代理。代理模式的可能应用场景:远程代理,当一个对象在不同的地址空间时,在调用的地址空间中创建一个局部代理。虚拟代理:当需要创建开销很大的对象时,通过代理对象来实例化需要很长时间的真实对象。举个例子 在浏览大的网页时,文字被快速的刷新出来但是图片是一点一点的刷新,其实每张图片都被虚拟代理所替代。代理模式比较常...

2018-05-16 20:41:27 136

原创 大话设计模式之装饰器模式

简述装饰器模式可以理解为为现有的类的添加一些并列的相互解耦的功能。举个例子就是在I/O中 流Stream 和 Reader Writer 都有许多装饰,而且他们之间没有联系相互解耦。装饰器模式由组件和装饰者组成。抽象组件(Component):需要装饰的抽象对象。 具体组件(ConcreteComponent):是我们需要装饰的对象 抽象装饰类(Decorator):内含指向抽象组件的引用及装饰者...

2018-05-15 20:48:40 296

原创 大话设置模式之单例模式

简述单例模式顾名思义就是单个例子的一种模式,在程序中我们有时候会希望一个类在代码的运行中只有一个实例。这是我们就用到了单例模式。单例模式通常通过是私有化构造方法来实现的,但是略有不同通常分为懒汉和饿汉。内容懒汉模式:就是说只有当getInstance方法被调用时通过一系列判断才新建一个对象实例。public class Singleton { private static Singleton s...

2018-05-14 22:09:16 172

原创 Java 8、9、10、11 新特性

       不知不觉Java已经发布到了第11版,兄弟们恐怕还不知道他们的新特性吧。快来一起瞧瞧吧。Java 81.Lambdas表达式与Functional接口2.接口的默认与静态方法3.新增方法的调用方式类似php3.try catch resource5.优化了HashMap以及ConcurrentHashMap 详细网址:Java8 新特性 Java 9...

2018-04-30 00:08:19 30785 7

转载 Java volitile关键字详解

郑重说明转载自 https://blog.csdn.net/lpjishu/article/details/80078898根据https://www.cnblogs.com/dolphin0520/p/3920373.html改编,做了适当删减。1.背景在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生...

2018-04-28 15:31:34 924

原创 I/O 多路复用实现方法 select poll epoll 解析

       最近刷面试题发现有相关的题目,查找了网上很多资料感觉描述的某些地方还是有些模糊。所以我自己写一下我的理解也算解答我之前的疑问。其间内容有我自己的理解也有他人的文章内容,勉强算是原创吧。文章最后我会把我参考的文章列出来,尊重知识产权从我做起,嘿嘿。解答       闲话少叙解答第一个问题,大部分资料都说select poll epoll是 I/O多路服用的实现就到此为止了,相信...

2018-04-28 10:08:46 213

原创 Java基础之泛型(二)

简述    上篇我说到了类型擦除的缺点,也提供了一些解决方法。本篇我将说一下解决方法中的细节部分,也就是通配符。通配符    子类型通配符        子类通配符 在语法中写为: List<? extends SomeThing> 它的意义可以理解为:一个具有任何从SomeThing继承的类型的列表。    超类型通配符        超类型通配符 在语法中写为: List<?...

2018-02-27 15:18:01 256

转载 Java虚拟机内存调优经验

转载自 http://www.cnblogs.com/jackyrong/archive/2010/01/21/1653163.html 尊重别人的劳动成果就是尊重自己Java内存组成  1) 堆    运行时数据区域,所有类实例和数组的内存均从此处分配。Java 虚拟机启动时创建。对象的堆内存由称为垃圾回收器 的自动内存管理系统回收。 堆由两部分组成:    其中eden+fromspace+t...

2018-02-27 09:09:39 4413

原创 Java基础之泛型(一)

简述    大家都知道封装,继承,多态是Java的三大特性。接下来的几篇文章我将会讲述一下有关多态的一个技术那就是泛型。首先泛型是在JDK1.5版本的时候加入的,目的在于使代码可以应用于多种类型。泛型是什么    在我看来泛型是一种限制,限制被泛型修饰的代码块或容器的适用范围。泛型怎么用    根据上述的是什么,泛型相关的代码块就是:类和方法。容器则是JDK中的Collection和Map容器。 ...

2018-02-26 17:31:46 186

原创 Java基础之类型信息(反射)

简述        大家都知道Java是一门面向对象的编程语言,那么当我们创建一个类的时候就是通过抽象一些实例的相同部分成为类。那么一个类的类型是否也是对象呢?答案当然是是。Java的语言开发者使用Class类来统一代表类的类型,在每个类编译为class文件的时候都会同时生成一个对应的Class对象,里面包含着当前类的信息。 在写代码的过程中我们有可能会使用类型的信息,举一个最简单的栗子:我们根据...

2018-02-14 10:59:36 328

原创 计算机软件学习中易混淆概念

计算机软件学习中易混淆概念阻塞与非阻塞        阻塞顾名思义可以理解为停滞不前。在软件中阻塞就是当程序运行到某一段可能需要等待的代码时例如在IO的读写操作时,阻塞意味着当前程序当前线程会等待直至这段代码运行结束才继续向下。结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。非阻塞与阻塞相反而是继续向下执行不等待这段代码返回的结果。        但是在此我有个疑问:那就是当非...

2018-02-09 14:41:57 271

原创 Java基础之内部类

简述        内部类顾名思义就是写在类内部的类,内部类最初是一种代码的隐藏机制。因为它置于类内部不仅了解外部类,并且能于之通信。普通的类一般都会被修饰为public而内部类则可以被修饰为private和default。内部类主要分为四种:成员内部类,局部内部类,静态内部类,匿名内部类。        内部类虽然是在一个类中,但是完全可以把它当成一个独立的类。这样就解决了一个类需要多继

2018-02-07 17:03:24 142

转载 Java程序员谈一谈-----java程序员成长之路

转载:http://www.banzg.com/archives/679.html?ref=myread阿里面试回来,想和Java程序员谈一谈引言其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二

2018-01-24 09:39:28 298

原创 Java基础之多态

简述多态是继封装、继承之后的第三个基本特征在面向对象设计的语言当中。封装实现了数据私有化,继承实现了代码的复用,多态可以让我们的代码更具可读性且尽可能的消除对象之间的耦合关系。多态就是多种状态,一个类型不仅可以表现出它自己类型的特征,如果有明显的继承(extend)那么它也可以表现出父类(基类)的特征。详解多态其实实现多态最底层就是编译器的静态编译和动态编译(运行时编译

2018-01-18 15:25:40 170

原创 Java基础之Final关键字

简述        Final是Java中的一个关键字,通常是用来形容此变量或者引用是无法改变的。举一个最简单的栗子:π是一个无限不循环的小数,但当我们精确取值时它的值就确定不会改变了。        大多数初学者在阅读代码时经常会发现static和final的连用而混淆了两者:static 字面上的意思就是静态,所谓静态就是当这个java文件被加载的时候,被static修饰的内容都会被编

2018-01-18 10:49:52 197

空空如也

空空如也

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

TA关注的人

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