自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rico's Blogs

你得丢开以往的事,才能不断继续前进。

转载 音视频处理入门基础知识

mp4/mkv这些格式有什么区别,哪个画质好?视频的码率是怎么算的,为啥同样是1080p视频,有些体积大有些体积小?视频存储的图像信息是啥格式的,和显示器一样的红绿蓝吗?8bit/10bit到底指的什么,为啥说8bit显示器还有必要看10bit视频?yuv420是啥意思?线条,平面以及纹理是什么意...

2019-03-24 12:04:51 2994 1

原创 视频压缩相关概念介绍-IPB与GOP

视频为什么要压缩?有哪几种压缩方式?都有什么特点?IPB是啥意思?哪些是基准帧,哪些是参考帧(差别帧)? I帧、B帧以及P帧的编码序列和显示序列一样吗?视频编码的基本的单位是啥?为什么要按GOP进行编解码?IDR帧和I帧之间的关系是什么,有什么区别?

2019-03-03 01:59:44 1189 0

原创 Spring MVC 简述:从MVC框架普遍关注的问题说起

任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发、数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外。本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理、架构角度介...

2017-06-01 22:19:16 6702 16

转载 要怎样努力,才能成为很厉害的人?

书呆子有话要说:   成长就是满腔心潮澎湃的热望转化成点滴扎实遒劲的努力的过程。 This is bill 有话要说: 博主是一个热血青年吧,一直信奉的也是一切杀不死我的,只会令我更坚强~~最近做出了一个看似很疯狂,但是完全足以改变一生的决定。闲余时间逛知乎,看了一个很有共鸣的答案。 ...

2017-05-30 10:37:16 4773 9

原创 Map 综述(三):彻头彻尾理解 ConcurrentHashMap

ConcurrentHashMap是J.U.C的重要成员,它是HashMap的一个线程安全的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。本文将结合Java内存模型和JDK源代码,剖析其高并发的具体实现机制,包括在JDK中的定义和...

2017-05-27 17:03:10 45073 40

原创 深入理解Java对象的创建过程:类的初始化与实例化

在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化。本文试图对JVM执...

2017-05-18 14:17:45 90335 61

原创 算法设计方法:递归的内涵与经典应用

大师说:To Iterate is Human, to Recurse, Divine.毋庸置疑地,递归确实是一个奇妙的思维方式。对一些简单的递归问题,我们总是惊叹于递归描述问题和编写代码的简洁,但要想真正领悟递归的精髓、灵活地运用递归思想来解决问题却并不是一件容易的事情。本文剖析了递归的思想内涵...

2017-05-13 10:54:45 14147 4

原创 JVM 内存模型概述

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些数据区域都有各自的用途,以及创建和销毁的时间,并且它们可以分为两种类型:线程共享的方法区和堆,线程私有的虚拟机栈、本地方法栈和程序计数器。在此基础上,我们探讨了在虚拟机中对象的创建和对象的访问定位等问题,并分...

2017-05-04 21:29:46 25986 35

原创 简述数据库事务并发机制

事务是最小的逻辑执行单元,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务具有四个重要特征,即原子性、一致性、隔离性和持久性。本文首先叙述了数据库中事务的本质及其四大特性(ACID)的内涵,然后重点介绍了事务隔离性的动机和内涵,并介绍了事务隔离级别及...

2017-04-21 11:17:34 12703 10

原创 彻头彻尾理解单例模式与多线程

本文概述了单例模式产生动机,揭示了单例模式的本质和应用场景。然后我们给出了单例模式在单线程环境下的两种经典实现:饿汉式和懒汉式,但是饿汉式是线程安全的,而懒汉式是非线程安全的。在多线程环境下,我们特别介绍了五种方式来在多线程环境下创建线程安全的单例,使用synchronized方法、synchro...

2017-03-20 16:26:03 16006 25

原创 Java 并发:并发背景

并发与操作系统的生命历程息息相关。进程的出现,使得程序状态的保存变为现实,为进程间的切换提供了可能,实现了操作系统的并发,大大提高资源利用率。之后,人们对实时性又有了更高的要求。由于一个进程由若干个子任务组成,所以人们就发明了线程,让每个线程负责一个独立的子任务,提高了程序的响应灵敏度,但同时也带...

2016-12-03 22:24:51 10492 21

原创 双亲委派模型与线程上下文类加载器

SPI机制是什么,有哪些应用场景,又带来了哪些问题? 双亲委派模型是Java推荐的类加载模型,但违背该模型的案例有哪些?为什么会违背,又是怎么解决这种case的? JDBC驱动加载的案例有哪些,SPI机制为它带来了哪些方便? 线程上下文类加载器的作用与应用场景?

2019-04-14 11:39:54 6935 4

原创 Java8函数式接口与Lambda表达式

何为函数式接口?什么是lambda表达式,lambda表达式的本质?函数式接口与lambda表达式的联系:lambda是实现函数式接口的一个快捷方式,可以作为函数式接口的一个实例。常用Java8内置的函数式接口 Function、Predicate、Consumer 和 Supplier 介绍。

2019-04-07 17:14:10 1502 0

转载 CPU GPU 扫盲帖

CPU与GPU之间有什么不同?为什么需要GPU编程,相比CPU编程,有什么优势?

2019-03-24 19:53:20 942 4

转载 图像和流媒体 -- 帧率、分辨率、码流的概念和关系

本文转载于博主”聚优致成“《图像和流媒体 – 帧率、分辨率、码流的概念和关系》一文。 帧率(Frame Rate) 一帧就是一副静止的画面,连续的帧就形成动画,如电影等。我们通常所说的帧数就是在秒钟时间里传输的图片的帧数,通常用fpsFrames Per Second)表示。每一帧都是静止的图...

2019-03-03 02:35:48 944 0

转载 动画中的关键帧动画的原理

本文转载自博主”早上吃什么“《动画中的关键帧动画的原理》一文。 想一想如果制作动画,如果没有关键帧这种技术会是多么恐怖,如果动画帧率为25,即每秒要播放25张画面,假设现在要制作1秒的动画,那么就需要手动制作25张画面,关键帧的出现使得我们只需要画2张画面,中间的23张画面自动计算完成,极大的提升...

2019-03-03 02:20:07 1016 2

原创 使用ffmeg提取视频关键帧

一. 什么是关键帧 参考维基百科Key frame的解释:   关键帧,是指动画中一个绘图,定义任何的起点和终点平滑过渡。一系列关键帧定义了观看者将看到的运动,而关键帧在电影,视频或动画上的位置定义了运动的时间。 Computer Hope 的这篇文章 What is a Key Frame? 说...

2019-03-02 18:10:35 3520 2

原创 深入剖析Java线程池与Executor框架(一) : 任务的抽象

摘要:   在《Java 并发:并发背景》一文中,从操作系统演进的角度解释了进程与线程出现的背景与原因。简单地说,进程实现了操作系统级别的并发,线程实现了进程级别的并发。通过使用多个线程来执行任务,不仅可以极大提高资源的利用率,而且可以满足很多场景下的实时性要求,实现任务并发、异步执行的效果。 ...

2018-04-07 23:04:41 2859 3

转载 Java8中的Stream API详解:Stream的背景及使用

摘要:      Stream是Java8的一大亮点,是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的 聚合操作(aggregate operation)或者大批量数据操作。Stream API借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。同时,它提供...

2018-03-15 02:47:54 17752 5

原创 RPC框架原理简述:从实现一个简易RPCFramework说起

摘要:   本文阐述了RPC框架与远程调用的产生背景,介绍了RPC的基本概念和使用背景,之后手动实现了简易的RPC框架并佐以实例进行演示,以便让各位看官对RPC有一个感性、清晰和完整的认识,最后讨论了RPC框架几个较为重要问题。总之,RPC框架的精髓在于动态代理和反射,通过它们使得远程调用“本地...

2018-03-05 00:57:35 7628 9

原创 深入理解代理模式:静态代理与JDK动态代理

摘要:      代理模式为其他对象提供了一种代理以控制对这个对象的访问,具体实现包括两大类:静态代理和动态代理。Java动态代理机制的出现使得Java开发人员只需要简单地指定一组接口及委托类对象便能动态地获得代理类,并且其所生成的代理类在将所有的方法调用分派到委托对象上反射执行的同时,还可以...

2018-03-01 00:22:11 8454 0

原创 策略模式:封装变化与面向接口编程

在使用Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator或者创建比较器传入Collections的静态方法中作为方法参数,进行比较排序等,这其实就是策略模式的应用。策略模式是封装变化和面向接口编程两个基本的面向对象设计思想具体应用,其用意是针对一组算法,将每个算法封装到具...

2017-11-28 14:59:37 1528 0

原创 面试/笔试第五弹 —— Java面试问题集锦(下篇)

本文对面试过程中经常会被问到的一些关于Java基础问题进行了梳理和总结,包括 JVM虚拟机、常用容器、设计原则与模式以及Java语言特性等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。考虑到篇幅太长,现将 《Java面试问题集锦》 一文分为上下两篇:《面试/笔...

2017-11-28 13:12:16 11112 13

原创 面试/笔试第五弹 —— Java面试问题集锦(上篇)

本文对面试过程中经常会被问到的一些关于Java基础问题进行了梳理和总结,包括 JVM虚拟机、常用容器、设计原则与模式以及Java语言特性等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。考虑到篇幅太长,现将 《Java面试问题集锦》 一文分为上下两篇:《面试/笔...

2017-11-28 12:13:56 17110 8

转载 Ubuntn系统(虚拟机)忘记密码的解决方法

本文给出了Ubuntn系统或Ubuntu虚拟机忘记密码的解决方法。

2017-11-15 15:05:52 10276 3

转载 白话解析:一致性哈希算法 consistent hashing

本文首先以一个经典的分布式缓存的应用场景为铺垫,在了解了这个应用场景之后,生动而又不失风趣地介绍了一致性哈希算法,同时也明确给出了一致性哈希算法的优点、存在的问题及其解决办法。

2017-10-22 21:46:15 3504 4

原创 面试/笔试第四弹 —— 多线程面试问题集锦

本文对面试/笔试过程中经常会被问到的一些关于并发编程的问题进行了梳理和总结,包括线程池、并发控制锁、并发容器和队列同步器等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,大家可以阅读《Java并发编程的艺术》、《《Java多线程编程...

2017-10-22 20:55:14 14732 13

转载 Mysql在大型网站的应用架构演变

本文主要描述在网站的不同的并发访问量级下Mysql架构的演变历程。架构的可扩展性往往和并发是息息相关,没有并发的增长也就没必要做高可扩展性的架构。常用的扩展手段主要有Scale-up和Scale-out两种,前者为纵向扩展,主要通过替换为更好的机器和资源来实现伸缩,提升服务能力;后者为横向扩展,通...

2017-10-22 16:09:14 1772 1

原创 面试/笔试第三弹 —— 数据库面试问题集锦

本文对面试/笔试过程中经常会被问到的一些关于数据库(MySQL)的问题进行了梳理和总结,包括数据库索引、数据库锁、数据库事务和MySQL优化等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,大家可以阅读《深入浅出MySQL-数据库开...

2017-10-22 10:34:20 30008 9

原创 面试/笔试第二弹 —— 操作系统面试问题集锦

本文对面试/笔试过程中经常会被问到的一些关于操作系统的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和整体掌握,建议大家读一读《操作系统概念》(高教版)一书。

2017-10-21 16:08:50 49240 16

原创 面试/笔试第一弹 —— 计算机网络面试问题集锦

本文对面试/笔试过程中经常会被问到的一些关于计算机网络的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,建议大家读一读《图解HTTP》一书。

2017-10-21 14:57:33 60082 29

原创 优雅地创建复杂对象 —— Builder 模式

当我们需要创建一个复杂的对象时,使用静态工厂或者构造器的方式就显得特别笨拙和丑陋,因为它们有个共同的局限性:它们都不能很好地扩展到大量的可选参数,也就是说,灵活性很差。那么,对于这样的类,我们应该如何创建对象呢?本文列举了三种解决办法:重叠构造器模式、JavaBeans模式和Builder模式,并...

2017-10-20 18:52:50 10235 31

转载 Java web Filter, Strurs2 Interceptor 和 SpringMVC Interceptor 三者之间的联系与区别

无论是Filter、Strurs2 Interceptor还是SpringMVC Interceptor,它们都是AOP理念的实现,本文结合源码详细解剖了三者在具体实现上的异同。

2017-07-11 15:58:23 2201 0

转载 过滤器(Filter)和拦截器(Interceptor)的区别

本文介绍主要介绍了Java Web Filter 与 Struts2 Interceptor 及其之间的联系与区别。

2017-07-10 20:19:46 3912 1

原创 简述Spring容器与SpringMVC的容器的联系与区别

摘要:   在Spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期。但在一个项目中,Spring容器往往不止一个,最常见的场景就是在一个项目中引入Spring和SpringMVC这两个框架,其本质就是两个容器:Spring是根容器,SpringMVC是其子容器。关于这两个...

2017-07-04 10:55:07 12413 17

原创 Java代理模式及其应用

代理根据代理类的产生方式和时机分为静态代理和动态代理两种。代理类不仅可以有效的将具体的实现与调用方进行解耦,通过面向接口进行编码完全将具体的实现隐藏在内部,而且还可以在符合开闭原则的前提下,对目标类进行进一步的增强。典型地,Spring AOP 是对JDK动态代理的经典应用。

2017-07-03 16:01:17 5546 3

原创 Spring 事务管理机制概述

用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些操作应绑定成一个事务来执行。使用传统事务编程策略时,程序代码必然和具体的事务操作代码耦合,而Spring事务管理策略可以避免这种尴尬。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理...

2017-06-26 10:55:09 12771 8

转载 理解RESTful架构

越来越多的人开始意识到,网站即软件,而且是一种新型的软件。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,而RESTful架构就是目前最流行的一种互联网软件架构。

2017-06-23 08:38:40 4418 1

转载 Spring 核心技术概览(一)

Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架,其从持久层、业务层到表现层都拥有相应的支持,几乎为企业应用提供了所需的一切。本文首先概述了Spring容器的IoC控制反转和DI依赖注入两大概念,然后详述了Spring的IoC容器BeanFactory、Spring容器App...

2017-06-12 21:14:53 4131 2

原创 Map 综述(四):彻头彻尾理解 HashTable

Hashtable与HashMap都是Map族中较为常用的实现,也都是Java Collection Framework 的重要成员,它们的本质都是链表数组。本文深入JDK源码并从定义、构造、结构、存取等四个方面深入解读了Hashtable的底层结构与存储逻辑,并阐述了HashMap、Hashta...

2017-06-04 22:55:42 6408 2

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