- 博客(98)
- 资源 (11)
- 收藏
- 关注

转载 音视频处理入门基础知识
mp4/mkv这些格式有什么区别,哪个画质好?视频的码率是怎么算的,为啥同样是1080p视频,有些体积大有些体积小?视频存储的图像信息是啥格式的,和显示器一样的红绿蓝吗?8bit/10bit到底指的什么,为啥说8bit显示器还有必要看10bit视频?yuv420是啥意思?线条,平面以及纹理是什么意思,视频的高频和低频指的是啥?码率越高画质越好吗?清晰度与分辨率是一回事吗?当我们在谈论画质的时候,到底在谈论什么?
2019-03-24 12:04:51
10531
3

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

原创 Spring MVC 简述:从MVC框架普遍关注的问题说起
任何一个完备的MVC框架都需要解决Web开发过程中的一些共性的问题,比如请求的收集与分发、数据前后台流转与转换,当前最流行的SpringMVC和Struts2也不例外。本文首先概述MVC模式的分层思想与MVC框架普遍关注的问题,并以此为契机结合SpringMVC的入门级案例简要地从原理、架构角度介绍了它对这些问题的处理。最后,本文对SpringMVC和Struts2作了进一步对比,以便加强对MVC框架的理解与认知。
2017-06-01 22:19:16
8555
10

转载 要怎样努力,才能成为很厉害的人?
书呆子有话要说: 成长就是满腔心潮澎湃的热望转化成点滴扎实遒劲的努力的过程。This is bill 有话要说:博主是一个热血青年吧,一直信奉的也是一切杀不死我的,只会令我更坚强~~最近做出了一个看似很疯狂,但是完全足以改变一生的决定。闲余时间逛知乎,看了一个很有共鸣的答案。也许有些人觉得有些决定很疯狂不能实现,我只想说那是你太现实而无法实现梦想找的借口。正文:转...
2017-05-30 10:37:16
6297
11

原创 Map 综述(三):彻头彻尾理解 ConcurrentHashMap
ConcurrentHashMap是J.U.C的重要成员,它是HashMap的一个线程安全的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。本文将结合Java内存模型和JDK源代码,剖析其高并发的具体实现机制,包括在JDK中的定义和结构、并发存取、重哈希和跨段操作,并着重剖析了ConcurrentHashMap读操作不需要加锁的内在奥秘和原理。
2017-05-27 17:03:10
140167
68

原创 深入理解Java对象的创建过程:类的初始化与实例化
在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类构造器完成类的初始化。在类初始化过程中或初始化完毕后,根据具体情况才会去对类进行实例化。本文试图对JVM执行类初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个Java对象的创建过程。
2017-05-18 14:17:45
188048
87

原创 算法设计方法:递归的内涵与经典应用
大师说:To Iterate is Human, to Recurse, Divine.毋庸置疑地,递归确实是一个奇妙的思维方式。对一些简单的递归问题,我们总是惊叹于递归描述问题和编写代码的简洁,但要想真正领悟递归的精髓、灵活地运用递归思想来解决问题却并不是一件容易的事情。本文剖析了递归的思想内涵并分析了阶乘、斐波那契数列、汉诺塔、杨辉三角的存取、字符串回文判断、字符串全排列、二分查找、树的深度求解等八个问题。
2017-05-13 10:54:45
34400
6

原创 JVM 内存模型概述
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些数据区域都有各自的用途,以及创建和销毁的时间,并且它们可以分为两种类型:线程共享的方法区和堆,线程私有的虚拟机栈、本地方法栈和程序计数器。在此基础上,我们探讨了在虚拟机中对象的创建和对象的访问定位等问题,并分析了Java虚拟机规范中异常产生的情况。
2017-05-04 21:29:46
57989
49

原创 简述数据库事务并发机制
事务是最小的逻辑执行单元,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务具有四个重要特征,即原子性、一致性、隔离性和持久性。本文首先叙述了数据库中事务的本质及其四大特性(ACID)的内涵,然后重点介绍了事务隔离性的动机和内涵,并介绍了事务隔离级别及其内涵。特别地,介于并发安全与效率的平衡,我们一般会结合事务隔离级别和乐观锁/悲观锁机制来保证事务并发安全性。
2017-04-21 11:17:34
20413
9

原创 彻头彻尾理解单例模式与多线程
本文概述了单例模式产生动机,揭示了单例模式的本质和应用场景。然后我们给出了单例模式在单线程环境下的两种经典实现:饿汉式和懒汉式,但是饿汉式是线程安全的,而懒汉式是非线程安全的。在多线程环境下,我们特别介绍了五种方式来在多线程环境下创建线程安全的单例,使用synchronized方法、synchronized块、静态内部类、双重检查和ThreadLocal实现懒汉式单例,并给出实现效率高且线程安全的单例所需要注意的事项
2017-03-20 16:26:03
32695
33

原创 Java 并发:并发背景
并发与操作系统的生命历程息息相关。进程的出现,使得程序状态的保存变为现实,为进程间的切换提供了可能,实现了操作系统的并发,大大提高资源利用率。之后,人们对实时性又有了更高的要求。由于一个进程由若干个子任务组成,所以人们就发明了线程,让每个线程负责一个独立的子任务,提高了程序的响应灵敏度,但同时也带来了诸如安全性、活跃性和性能等问题。总的来说,进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能。
2016-12-03 22:24:51
12871
16
转载 DNS解析过程详解[转载]
先说一下DNS的几个基本概念:一. 根域就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯。根域服务器我们知道有13台,但是这是错误的观点。根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP的镜像站点,你访问到的这个IP并不是唯一的那台主机。具体的镜像分布可以参考维基百科。这些主机的内容都是一样的。
2020-07-27 01:05:34
2230
1
原创 双亲委派模型与线程上下文类加载器
SPI机制是什么,有哪些应用场景,又带来了哪些问题?双亲委派模型是Java推荐的类加载模型,但违背该模型的案例有哪些?为什么会违背,又是怎么解决这种case的?JDBC驱动加载的案例有哪些,SPI机制为它带来了哪些方便?线程上下文类加载器的作用与应用场景?
2019-04-14 11:39:54
16174
7
原创 Java8函数式接口与Lambda表达式
何为函数式接口?什么是lambda表达式,lambda表达式的本质?函数式接口与lambda表达式的联系:lambda是实现函数式接口的一个快捷方式,可以作为函数式接口的一个实例。常用Java8内置的函数式接口 Function、Predicate、Consumer 和 Supplier 介绍。
2019-04-07 17:14:10
7896
4
转载 图像和流媒体 -- 帧率、分辨率、码流的概念和关系
本文转载于博主”聚优致成“《图像和流媒体 – 帧率、分辨率、码流的概念和关系》一文。帧率(Frame Rate)一帧就是一副静止的画面,连续的帧就形成动画,如电影等。我们通常所说的帧数就是在秒钟时间里传输的图片的帧数,通常用fpsFrames Per Second)表示。每一帧都是静止的图像,快速连续地显示帧便形成了运动的假象,还原了物体当时的状态。高帧率可以得到更流畅、更逼真的动画。每秒...
2019-03-03 02:35:48
3563
转载 动画中的关键帧动画的原理
本文转载自博主”早上吃什么“《动画中的关键帧动画的原理》一文。想一想如果制作动画,如果没有关键帧这种技术会是多么恐怖,如果动画帧率为25,即每秒要播放25张画面,假设现在要制作1秒的动画,那么就需要手动制作25张画面,关键帧的出现使得我们只需要画2张画面,中间的23张画面自动计算完成,极大的提升开发效率。在享受科技的同时不免会思考它的实现原理。在动画中,动 无非有三种 平移 缩放 旋转。平...
2019-03-03 02:20:07
4334
2
原创 使用ffmeg提取视频关键帧
一. 什么是关键帧参考维基百科Key frame的解释: 关键帧,是指动画中一个绘图,定义任何的起点和终点平滑过渡。一系列关键帧定义了观看者将看到的运动,而关键帧在电影,视频或动画上的位置定义了运动的时间。Computer Hope 的这篇文章 What is a Key Frame? 说的更好理解: In media production, a key frame or keyfra...
2019-03-02 18:10:35
17957
3
原创 深入剖析Java线程池与Executor框架(一) : 任务的抽象
摘要: 在《Java 并发:并发背景》一文中,从操作系统演进的角度解释了进程与线程出现的背景与原因。简单地说,进程实现了操作系统级别的并发,线程实现了进程级别的并发。通过使用多个线程来执行任务,不仅可以极大提高资源的利用率,而且可以满足很多场景下的实时性要求,实现任务并发、异步执行的效果。 事实上,线程扮演的是Worker的角色,是Task的执行者。从Java的角度来看,Thread实...
2018-04-07 23:04:41
4132
5
转载 Java8中的Stream API详解:Stream的背景及使用
摘要: Stream是Java8的一大亮点,是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的 聚合操作(aggregate operation)或者大批量数据操作。Stream API借助于同样新出现的Lambda表达式,极大的提高编程效率和程序可读性。同时,它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用fork/join并行方式来...
2018-03-15 02:47:54
83767
21
原创 RPC框架原理简述:从实现一个简易RPCFramework说起
摘要: 本文阐述了RPC框架与远程调用的产生背景,介绍了RPC的基本概念和使用背景,之后手动实现了简易的RPC框架并佐以实例进行演示,以便让各位看官对RPC有一个感性、清晰和完整的认识,最后讨论了RPC框架几个较为重要问题。总之,RPC框架的精髓在于动态代理和反射,通过它们使得远程调用“本地化”,对用户透明且友好。版权声明:本文原创作者:书呆子Rico 作者博客地址:http:...
2018-03-05 00:57:35
10913
11
原创 深入理解代理模式:静态代理与JDK动态代理
摘要: 代理模式为其他对象提供了一种代理以控制对这个对象的访问,具体实现包括两大类:静态代理和动态代理。Java动态代理机制的出现使得Java开发人员只需要简单地指定一组接口及委托类对象便能动态地获得代理类,并且其所生成的代理类在将所有的方法调用分派到委托对象上反射执行的同时,还可以对方法进行增强,这也正是Spring AOP的实现基础。通过阅读本文,读者将会对代理模式和Java动态...
2018-03-01 00:22:11
14191
4
原创 策略模式:封装变化与面向接口编程
在使用Java的集合框架中,经常需要通过构造方法传入一个比较器Comparator或者创建比较器传入Collections的静态方法中作为方法参数,进行比较排序等,这其实就是策略模式的应用。策略模式是封装变化和面向接口编程两个基本的面向对象设计思想具体应用,其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得它们可以灵活替换,使程序具有良好可扩展性。策略模式的灵魂就是策略算法是相同行为的不同实现。
2017-11-28 14:59:37
2466
原创 面试/笔试第五弹 —— Java面试问题集锦(下篇)
本文对面试过程中经常会被问到的一些关于Java基础问题进行了梳理和总结,包括 JVM虚拟机、常用容器、设计原则与模式以及Java语言特性等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。考虑到篇幅太长,现将 《Java面试问题集锦》 一文分为上下两篇:《面试/笔试第五弹 —— Java面试问题集锦(上篇)》和《面试/笔试第五弹 —— Java面试问题集锦(下篇)》。
2017-11-28 13:12:16
14921
10
原创 面试/笔试第五弹 —— Java面试问题集锦(上篇)
本文对面试过程中经常会被问到的一些关于Java基础问题进行了梳理和总结,包括 JVM虚拟机、常用容器、设计原则与模式以及Java语言特性等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。考虑到篇幅太长,现将 《Java面试问题集锦》 一文分为上下两篇:《面试/笔试第五弹 —— Java面试问题集锦(上篇)》和《面试/笔试第五弹 —— Java面试问题集锦(下篇)》。
2017-11-28 12:13:56
22909
6
转载 白话解析:一致性哈希算法 consistent hashing
本文首先以一个经典的分布式缓存的应用场景为铺垫,在了解了这个应用场景之后,生动而又不失风趣地介绍了一致性哈希算法,同时也明确给出了一致性哈希算法的优点、存在的问题及其解决办法。
2017-10-22 21:46:15
5901
4
原创 面试/笔试第四弹 —— 多线程面试问题集锦
本文对面试/笔试过程中经常会被问到的一些关于并发编程的问题进行了梳理和总结,包括线程池、并发控制锁、并发容器和队列同步器等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,大家可以阅读《Java并发编程的艺术》、《《Java多线程编程核心技术》和《Java并发编程实战》三本书,重点掌握J.U.C并发框架。
2017-10-22 20:55:14
20472
8
转载 Mysql在大型网站的应用架构演变
本文主要描述在网站的不同的并发访问量级下Mysql架构的演变历程。架构的可扩展性往往和并发是息息相关,没有并发的增长也就没必要做高可扩展性的架构。常用的扩展手段主要有Scale-up和Scale-out两种,前者为纵向扩展,主要通过替换为更好的机器和资源来实现伸缩,提升服务能力;后者为横向扩展,通过加节点(机器)来实现伸缩,提升服务能力。而对于互联网的高并发应用来说,Scale-out才是真正得出路。
2017-10-22 16:09:14
2745
1
原创 面试/笔试第三弹 —— 数据库面试问题集锦
本文对面试/笔试过程中经常会被问到的一些关于数据库(MySQL)的问题进行了梳理和总结,包括数据库索引、数据库锁、数据库事务和MySQL优化等基础知识点,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,大家可以阅读《深入浅出MySQL-数据库开发优化与管理》和《数据库系统概念(美 Abraham Silbersch 著;杨冬青 李红燕 唐世 译)》两本书。
2017-10-22 10:34:20
50238
14
原创 面试/笔试第二弹 —— 操作系统面试问题集锦
本文对面试/笔试过程中经常会被问到的一些关于操作系统的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和整体掌握,建议大家读一读《操作系统概念》(高教版)一书。
2017-10-21 16:08:50
106354
34
原创 面试/笔试第一弹 —— 计算机网络面试问题集锦
本文对面试/笔试过程中经常会被问到的一些关于计算机网络的问题进行了梳理和总结,一方面方便自己温故知新,另一方面也希望为找工作的同学们提供一个复习参考。关于这块内容的初步了解和掌握,建议大家读一读《图解HTTP》一书。
2017-10-21 14:57:33
128005
38
原创 优雅地创建复杂对象 —— Builder 模式
当我们需要创建一个复杂的对象时,使用静态工厂或者构造器的方式就显得特别笨拙和丑陋,因为它们有个共同的局限性:它们都不能很好地扩展到大量的可选参数,也就是说,灵活性很差。那么,对于这样的类,我们应该如何创建对象呢?本文列举了三种解决办法:重叠构造器模式、JavaBeans模式和Builder模式,并通过具体实例对上述三种方法进行铺垫和对比,从而真正帮助读者理解Builder模式。
2017-10-20 18:52:50
21888
33
转载 Java web Filter, Strurs2 Interceptor 和 SpringMVC Interceptor 三者之间的联系与区别
无论是Filter、Strurs2 Interceptor还是SpringMVC Interceptor,它们都是AOP理念的实现,本文结合源码详细解剖了三者在具体实现上的异同。
2017-07-11 15:58:23
2696
转载 过滤器(Filter)和拦截器(Interceptor)的区别
本文介绍主要介绍了Java Web Filter 与 Struts2 Interceptor 及其之间的联系与区别。
2017-07-10 20:19:46
5260
原创 简述Spring容器与SpringMVC的容器的联系与区别
摘要: 在Spring整体框架的核心概念中,容器的核心思想是管理Bean的整个生命周期。但在一个项目中,Spring容器往往不止一个,最常见的场景就是在一个项目中引入Spring和SpringMVC这两个框架,其本质就是两个容器:Spring是根容器,SpringMVC是其子容器。关于这两个容器的创建、联系及区别也正是本文所关注的问题。版权声明: 本文原创作者:书呆子Rico
2017-07-04 10:55:07
19217
24
原创 Java代理模式及其应用
代理根据代理类的产生方式和时机分为静态代理和动态代理两种。代理类不仅可以有效的将具体的实现与调用方进行解耦,通过面向接口进行编码完全将具体的实现隐藏在内部,而且还可以在符合开闭原则的前提下,对目标类进行进一步的增强。典型地,Spring AOP 是对JDK动态代理的经典应用。
2017-07-03 16:01:17
20005
4
原创 Spring 事务管理机制概述
用户的每次请求都对应一个业务逻辑方法,而一个业务逻辑方法往往包括一系列数据库原子访问操作,并且这些操作应绑定成一个事务来执行。使用传统事务编程策略时,程序代码必然和具体的事务操作代码耦合,而Spring事务管理策略可以避免这种尴尬。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理,本文在对Spring事务管理API分析的基础上,详细地阐述了Spring编程式事务管理和声明式事务管理的原理、本质和使用
2017-06-26 10:55:09
34256
9
转载 理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,而RESTful架构就是目前最流行的一种互联网软件架构。
2017-06-23 08:38:40
5112
转载 Spring 核心技术概览(一)
Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架,其从持久层、业务层到表现层都拥有相应的支持,几乎为企业应用提供了所需的一切。本文首先概述了Spring容器的IoC控制反转和DI依赖注入两大概念,然后详述了Spring的IoC容器BeanFactory、Spring容器ApplicationContext和Spring的Web容器WebApplicationContext,并介绍了三者的异同。
2017-06-12 21:14:53
11147
1
计算机网络体系结构
2017-04-07
Android网络编程 非常适合入门
2015-04-16
eclipse/Myeclipse皮肤大全(10套)
2015-04-16
栈类模板C++代码
2012-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人