Hexo

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 日程表

  • 阅读排行

  • 搜索

计算机操作系统(1):基本概念

发表于 2019-02-28 更新于 2019-09-09 分类于 OS
本文字数: 1.8k 阅读时长 ≈ 3 分钟

操作系统概述操作系统定义 没有公认的精确定义 是一个控制程序 一个系统软件 控制程序执行结果、防止错误和计算机的不当使用 执行用户程序,给用户程序提供各种服务 方便使用 是一个资源管理器 应用程序与硬件间的中间层 管理各种软硬件资源,提供访问资源的高效手段 解决资源的访问冲突,确保资源公平使用 ...

阅读全文 »

现代操作系统:多处理机系统

发表于 2019-07-17 更新于 2019-09-09 分类于 OS
本文字数: 1.4k 阅读时长 ≈ 2 分钟

多处理机系统人们对更强计算力的追求促进着计算机的发展,而所有的一切都需要更多的CPU周期(又称机器周期,CPU周期定义为从内存读取一条指令字的最短时间。一个指令周期常由若干CPU周期构成。 时钟解决方案 过去的解决方案是使时钟走得更快,而现在遇到了对时钟速度的限制,即电子信号的速度不可能超过光速,这 ...

阅读全文 »

计算机操作系统:进程通信

发表于 2019-03-05 更新于 2019-09-09 分类于 OS
本文字数: 13k 阅读时长 ≈ 23 分钟

进程通信进程间通信是为了进程间进行协作。这样做的原因有 信息共享。多个用户可能对同样的信息感兴趣 提高运算速度。 模块化。 方便。单个用户可以同时执行很多任务 进程通信机制IPC 低级通信 进程互斥与同步交换的信息量小,每次通信传递的信息量固定且效率较低 如:信号量 高级通信 进程之间以较高 ...

阅读全文 »

消息队列:RocketMQ

发表于 2019-09-09 分类于 架构
本文字数: 306 阅读时长 ≈ 1 分钟

RocketMQ提出问题概述应用适用性RocketMQ相比于RabbitMQ与kafka具有的主要优势: 支持事务型消息(消息发送和DB操作保持两方的最终一致性,rabbitmq和kafka不支持) 支持结合rocketmq的多个系统之间数据最终一致性(多方事务,二方事务是前提) 支持18个级别的 ...

阅读全文 »

Java并发:并发编程的挑战

发表于 2019-04-11 更新于 2019-09-08 分类于 Java
本文字数: 9.3k 阅读时长 ≈ 17 分钟

问题并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战。 性能与可伸缩性: 上下文切换的问题、锁的竞争。 活跃性危险: 死锁、饥饿、糟糕的响应性、活锁。 受限于硬件和软件的资源限制问题 ...

阅读全文 »

Java并发:目录

发表于 2019-04-11 更新于 2019-09-08 分类于 Java
本文字数: 534 阅读时长 ≈ 1 分钟
Java并发编程的知识目录
阅读全文 »

java并发:JUC

发表于 2019-02-28 更新于 2019-09-08 分类于 Java
本文字数: 11k 阅读时长 ≈ 20 分钟

JUCjava.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是J.U.C的核心。 AQS同步组件AQS:AbstractQueuedSynchronizer,即队列同步器。是许多同步类的基类,它是构建锁或者其他同步组件的基础框架(如ReentrantLock、Ree ...

阅读全文 »

JavaBase:UnSafe类

发表于 2019-09-07 分类于 Java
本文字数: 246 阅读时长 ≈ 1 分钟

UnSafe类UnSafe类是可以直接访问OS,即直接访问硬件,UnSafe类是使用C实现的。 UnSafe作用: 内存操作。可以直接对内存进行操作,提供了三个方法: 分配内存。 扩充内存。 释放内存。 字段的定位与修改: 定位与修改数组元素在底层内存的位置。 挂起与恢复。针对于线程而言, ...

阅读全文 »

Java并发:并发机制的底层原理

发表于 2019-04-11 更新于 2019-09-07 分类于 Java
本文字数: 8.6k 阅读时长 ≈ 16 分钟

并发机制的底层原理Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。 Volatile提出问题是什么Java编程语言允许线程访问共享变量,为了确保共享变量能被准 ...

阅读全文 »

Java容器:并发容器

发表于 2019-03-21 更新于 2019-09-07 分类于 Java
本文字数: 22k 阅读时长 ≈ 40 分钟
并发容器与同步容器
阅读全文 »

Java并发:Disruptor

发表于 2019-09-07
本文字数: 5 阅读时长 ≈ 1 分钟

参考

阅读全文 »

Elasticsearch:数据

发表于 2019-08-05 更新于 2019-09-05 分类于 架构
本文字数: 5.3k 阅读时长 ≈ 10 分钟

数据无论程序怎么写,意图都是一样的:组织数据为我们的目标所服务。但数据并不只是由随机的比特和字节组成,我们在数据节点间建立关联来表示现实世界中的实体或某些东西。属于同一个人的名字和Email会有更多的意义。 现实世界中,并不是所有相同类型的实体看起来都是一样的,一个人可能有一个家庭电话,另一个人可能 ...

阅读全文 »

Elasticsearch:入门

发表于 2019-08-05 更新于 2019-09-05 分类于 架构
本文字数: 9.5k 阅读时长 ≈ 17 分钟

ElasticSearch概念ElasticSearch是一个实时分布式搜索和分析引擎,能够让你以前所未有的速度处理大数据成为可能。 它用于全文搜索、结构化搜索、分析以及将三者混用。并且可以在单机以及集群上运行。ES将三个功能整合成为一个一体化的、实时的应用,其对新用户的门槛很低。 为什么要用大部分 ...

阅读全文 »

JVM:调优

发表于 2019-03-01 更新于 2019-09-01 分类于 Java
本文字数: 7.7k 阅读时长 ≈ 14 分钟

常用JVM参数GC日志Java的内存管理机制弱化了我们当程序出现内存溢出时定位问题和解决问题的能力。 当GC沦落为影响程序运行的性能瓶颈时,例如因为STW导致程序出现长时间暂停、GC频繁执行内存回收导致程序吞吐量下降等情况。我们必须通过分析这些GC日志来做出相应的调整和处理。即分析GC日志是故障排查 ...

阅读全文 »

JVM:类文件与类加载

发表于 2019-03-01 更新于 2019-09-01 分类于 Java
本文字数: 27k 阅读时长 ≈ 49 分钟

类文件结构.class文件,类文件,字节码文件。 代码编译的结果从本期机器码转变为字节码,是存储格式发展的一步。 概述计算机只能识别0和1,因此程序需要经编译器翻译成二进制格式。 而随着虚拟机的发展,越来越多程序语言选择了与操作系统和机器指令集无关的、平台中立的格式作为程序编译后的存储格式。即将程序 ...

阅读全文 »

javaBase异常

发表于 2018-09-23 更新于 2019-08-31 分类于 Java
本文字数: 3.7k 阅读时长 ≈ 7 分钟
java笔记的基础知识整理,SE异常处理
阅读全文 »

Java并发:并发基础概述

发表于 2019-02-26 更新于 2019-08-30 分类于 Java
本文字数: 5.7k 阅读时长 ≈ 10 分钟
并发基础
阅读全文 »

Spring:MVC

发表于 2019-03-26 更新于 2019-08-29 分类于 Java
本文字数: 751 阅读时长 ≈ 1 分钟

Spring MVC原理 客户端的所有请求都交给前端控制器DispatcherServlet处理,它会负责调用系统的其他模块来真正处理用户的请求。 DispatcherServlet收到请求后,将根据请求的信息(包括URL、HTTP协议方法、请求头、请求参数、cookie等)以及HandlerMa ...

阅读全文 »

Spring:Bean生命周期

发表于 2019-08-26 更新于 2019-08-29 分类于 Java
本文字数: 42k 阅读时长 ≈ 1:16

bean的生命周期Spring容器技术内幕如果Spring容器是一辆汽车,那么BeanFactory是汽车的发动机,而ApplicationContext是一辆完整的汽车。 Spring以容器管理所有的bean对象,容器的实体是一个BeanFactory对象。但我们常用的容器是另一个Applicat ...

阅读全文 »

Spring:IOC

发表于 2019-03-26 更新于 2019-08-29 分类于 Java
本文字数: 20k 阅读时长 ≈ 36 分钟

IOC背景提出问题IOC的理论背景 我们知道在面向对象设计的软件系统中,它的底层都是由N个对象构成的,各个对象之间通过相互合作,最终实现系统地业务逻辑。 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是 ...

阅读全文 »

Spring:启动流程

发表于 2019-08-26 更新于 2019-08-29 分类于 Java
本文字数: 5.3k 阅读时长 ≈ 10 分钟

启动流程 Spring的启动流程主要是定位 -> 加载 -> 注册 -> 实例化: 定位:获取配置文件路径。 加载:把配置文件读取成BeanDefinition。 注册:存储BeanDefinition。 实例化:根据BeanDefinition创建实例。 所谓的IOC容器其实 ...

阅读全文 »

计算机网络:链路层

发表于 2019-07-20 更新于 2019-08-28 分类于 计算机网络
本文字数: 5.3k 阅读时长 ≈ 10 分钟

概述链路层概述提出问题 分组是如何通过构成端到端通信路径的各段链路的。 为了在单端链路上传输,网络层的数据报是怎样被封装进链路层帧的呢? 沿此通信路径,不同的链路能够采用不同的链路层协议吗? 在广播链路中传输碰撞是如何解决的? 链路层存在编码吗?如果需要,链路层编址如何与网络层编址一起运行呢? 概 ...

阅读全文 »

架构:分布式架构

发表于 2019-06-22 更新于 2019-08-27 分类于 架构
本文字数: 4.8k 阅读时长 ≈ 9 分钟

分布式系统概述定义 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此间仅仅通过消息传递进行通信和协调的系统。 很多台计算机组成一个整体,一个整体一致对外并且处理同一请求,并且在这些计算机上部署了我们的组件,其分布在网络计算机上。 内部的每台计算机仅仅通过消息传递来通信并协调行动(re ...

阅读全文 »

RPC:概述

发表于 2019-07-22 更新于 2019-08-27 分类于 架构
本文字数: 9k 阅读时长 ≈ 16 分钟

RPC提出问题 考虑将“无所不在”的对象作为所有问题的解决之道,其思想是所有相互协作的对象彼此都知道对方在哪里 当在一台计算机上的某个对象需要调 用在另一台计算机上的某个对象时就会发送一个包含这个请求的详细信息的网络消息。 远程对象响应请求,并返回客户端 概述客户端服务器角色我们需要的机 ...

阅读全文 »

Dubbo:理论

发表于 2019-07-08 更新于 2019-08-27 分类于 架构
本文字数: 1.9k 阅读时长 ≈ 4 分钟

Dubbo背景需求 在大规模服务化之前,应用可能只是通过 RMI 或 Hessian 等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过 F5 等硬件进行负载均衡。 当服务越来越多时,服务 URL 配置管理变得非常困难,F5 硬件负载均衡器的单点压力也越来越大。 此时需要一个服 ...

阅读全文 »

常用算法:排序算法

发表于 2019-03-21 更新于 2019-08-27 分类于 算法
本文字数: 12k 阅读时长 ≈ 22 分钟

排序算法排序算法的比较当N<60,虽然插入排序O(N^2^),但是常数项很低,因此速度非常快,甚至大于快排。 算法 稳定性 时间复杂度 空间复杂度 备注 选择排序 × N2 1 冒泡排序 √ N2 1 插入排序 √ N ~ N2 1 时间复杂度和初始顺序有关 希尔排 ...

阅读全文 »

算法:目录

发表于 2019-06-17 更新于 2019-08-27 分类于 算法
本文字数: 5k 阅读时长 ≈ 9 分钟

算法HackerRank 思路总结算法与数据结构是相互分离的。 算法是一个接口,底层的数据结构是一个接口,并且使用数据结构接口去实现所需要的算法接口。 解决问题: 解决问题本身是一个相对的概念,是探讨解决一个问题的解决方案。 正确还包含优化、代码规范、封装性、容错性等。 首先思考数据结构本身能否解 ...

阅读全文 »

刷题小结

发表于 2019-02-17 更新于 2019-08-27
本文字数: 1.7k 阅读时长 ≈ 3 分钟

思路问题类型 解决 双指针 遍历数组 寻找链表的环 节约遍历时间 反转,回文 位运算异或运算 利用 x ^ 1s = ~x 的特点,可以将位级表示翻转;利用 x ^ x = 0 的特点,可以将三个数中重复的两个数去除,只留下另一个数。 利用 x & 0s = 0 和 x & 1 ...

阅读全文 »

Spring:Beans

发表于 2019-04-20 更新于 2019-08-26 分类于 Java
本文字数: 3.4k 阅读时长 ≈ 6 分钟

Spring配置概述在使用Spring提供的各项丰富而神奇的功能前,必须在SpringIOC容器中装配好Bean,并建立Bean和Bean间的关联关系。 Spring容器高层视图要使得应用程序中的Spring容器成功启动,需要同时具备以下三方面的条件: Spring框架的类包都已经放到应用程序的类 ...

阅读全文 »

Spring:AOP

发表于 2019-03-26 更新于 2019-08-26 分类于 Java
本文字数: 11k 阅读时长 ≈ 19 分钟

AOP为了能够更好地将系统级别的代码抽离出来,去掉与对象的耦合,就产生了面向AOP(面向切面)。如上图所示,OOP属于一种横向扩展,AOP是一种纵向扩展。AOP依托于OOP,进一步将系统级别的代码抽象出来,进行纵向排列,实现低耦合。 适用性AOP只适合那些具有横切逻辑的应用场合: 日志、安全性、事 ...

阅读全文 »
123…7
Heper

Heper

To be awesome
209 日志
17 分类
42 标签
© 2019 Heper | 站点总字数: 1.4m | 站点阅读时长 ≈ 40:56
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.2.0