自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (5)
  • 收藏
  • 关注

原创 Golang 定时任务(cron)

定时任务服务端经常会有后台定时任务的需求,最近公司在将部分服务改造为Go实现,Go有一个robfig/cron的实现,只支持cron表达式。他后台的运行模式是当有一任务达到执行时间则启动一个协程来执行任务,只要到达了执行时间不管上一次任务执行是否完成都会在启动一个协程执行这个任务,假设我这里有一个任务是一分钟执行一次,但是任务执行时间不是很确定可能在一分钟内结束也可能超过一分钟,那么就有可能出现...

2020-04-19 18:42:13 1166

原创 Redis 深度历险:核心原理与应用实践-0

开篇:授人以鱼不若授人以渔 —— Redis 可以用来做什么?Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。Redis 以其超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。国内外很多大型互联网公司都在使用 Redis,比如 Twitter、YouPorn、...

2019-09-23 09:18:35 331

原创 Mysql Innodb 事务隔离级别说明

事务的四种隔离级别包括以下:未提交读(Read uncommitted)允许脏读,也就是可以读取到其他事务未提交的数据。已提交读(Read committed)避免脏读,只能读取已经提交的数据,重复读可能读取到不一样的数据源。可重复读(Repeatable read)可重复读,同一事务内重复读可以读取到一样的数据,InnoDB默认事务隔离级别,但是还是会有幻读的可能性。可串行化(Seri...

2019-08-18 19:19:30 154

原创 002.一探究竟:我们写的Java代码到底是如何运行起来的?

一探究竟:我们的Java代码到底是如何运行起来的?本文是我们正式开始讲解JVM的第一篇文章。第一周我们不会讲解太多过于深奥的原理知识,那样会让很多原本对JVM不太了解的同学难以平滑的入门。第一周的内容主要是高屋建瓴的把JVM运行机制的整体脉络梳理清楚,而很多原本对JVM就有一定了解的同学,可以耐下心来,就当做是复习梳理一下。要研究JVM技术,先得搞明白一个问题:我们平时写的Java代...

2019-07-02 09:51:39 600 2

原创 001.开篇词:JVM优化实战,广大Java工程师心中永远的痛!

开篇词:JVM优化实战,广大Java工程师心中永远的痛!平时很多朋友跑来找我问以下一些类似的问题:线上用Dubbo开发的一个系统突然卡死了,JVM FullGC太频繁,求救!生产环境部署的一个系统隔几天就莫名其妙的进程崩溃,看了眼异常信息,说是OOM内存溢出,如何解决?在线等,急!出去面试,光是说一些JVM的内存模型、垃圾回收算法,不够啊!面试官怎么老是盯着我问生产环境...

2019-07-01 12:58:07 1368 1

原创 延迟阻塞队列-DelayQueue

DelayQueue概述我们一般业务需求会有延迟任务的需求,简单的可以使用Timer, 但是Timer支持单线程,如果使用希望多线程执行任务的话可以使用ScheduledThreadPoolExecutor,这两个还都属于内存版的消息队列,如果希望消息持久化保存,则可以选择quartz(可以配置数据库保存消息),以及MQ等,今天先说说Timer和ScheduledThreadPoolExecu...

2019-06-06 18:07:13 697

原创 Kotlin入门

Kotlin概述Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在Google I/O 2017中,Google 宣布 Kotlin 成为Android 官方开发语言。Android Studio 3.0 已经自带Kot...

2018-08-11 13:14:39 186

转载 理解Http/2原理

http 2.0 http/2

2017-10-10 10:25:30 316

原创 Android 主线程原理

主线程  在应用程序开发中我们都知道有个主线程的概念,但其实线程不分主次,只因为它是应用程序进程的第一个线程并且拥有一个阻塞队列,是一个执行完不会退出的线程,应用程序为了跟用户可以实时交互我们不能启动一个程序然后run方法执行完就退出了,应用程序必须保持可以随时和用户进行交互。  从应用这一侧来说整个应用程序是从ActivityThread的main方法开始执行的。下面是ActivityThrea

2017-03-11 12:33:03 373

原创 Unicode、UTF-8的理解

计算机只能处理数字,那么对于人类的语言最终怎么输入计算机并且使用计算机存储和传输呢?我们只能对每个字符进行数字编码,这就是各个字符集存在的意义,如果地球上只有英文一种语言那么ASCII编码就足够了,但是对于亚洲这些象形文字,不是使用字母逻辑的排列组合生成的文字进行数字编码就比较麻烦了,对于汉字常用字大概是七万左右,而简体加繁体汉字大概有六七万个,对于ASCII编码只有一个字节的长度显然是不够的,所

2017-01-04 16:10:44 398

原创 git原理-文件是如何存储的

git原理-文件是如何存储的一直都对git的存储原理都很好奇,所以今天就专门研究了一下,记录一下研究的过程。我们以这样的目录结构为例来研究, 首先cd gitTest目录,初始化使用 git init 命令,执行了这个命令之后gitTest目录下回生成一个.git文件,我们查看一下这个文件下都有什么内容,如下: 然后执行: git add –all git commit -am “

2016-07-26 20:42:22 5272

原创 迪菲.赫尔曼(Diffie–Hellman)密钥交换算法

迪菲.赫尔曼算法是通信线路不安全情况下,交换密钥的一个算法首先说一下生成密钥的流程,我们有这样一种计算叫做求摸运算 mod, 比如:27 mod 17 = 10,也就是求余数的运算。 现在有两个通信者A和B,A和B分别生成一个随机的整数,比如A是2,B是3,那么A使用2计算:3^2 mod 17 = 9 ①B使用3计算:3^3 mode 17 = 10 ②然后A将9发送给B,B将10发送给

2015-10-28 14:19:00 3742 1

原创 快速排序(java)

各种排序算法里快速排序的平均时间复杂度最好,最近专门去理解了一下快速排序,现在记录如下:public static void quickSort(int[] array, int low, int height) { int i = low; int j = height; int temp = array[i]; while (i < j) { while (i <

2015-07-30 12:34:13 552

原创 Java类加载器

类加载器       Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader。类加载器也是Java类,因为其他是Java类的加载器本身也要被类加载器加载,显然必须有一个类加载器不是

2012-10-10 21:32:12 494

原创 正则表达式

正则表达式(Regex):是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。作用:在很多文本编辑器或其他工具里,正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。 许多程序设计语言都支持利用正则表达式进行字符串操作。

2012-10-09 19:24:11 312

原创 Java内省注解泛型

内省——JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象。这些信息在类中用私有字段来存储,如果读取或

2012-10-06 23:24:09 367

原创 Java反射

有很多个小的对象,他们有很多属性相同,把他们变成一个对象。那些不同属性变成方法的参数,称之为外部的状态,那些相同的属性称为对象的内部状态。       枚举类       枚举(enum)就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举可以在编译器编译时就可

2012-10-05 16:15:10 295

原创 关于组合数的小程序

/*第二题 * 从图中,我们可以发现26个字母分布在2-9这8个数字键上。某人的电话号码是65967427,观察单词“olympics”, * 可以发现:字母o位于数字键6上,字母l位于数字键5上,…字母s位于数字键7上。此时,我们说olympics是65967427对应的一个字母组合。

2012-09-22 23:40:58 402

原创 Java多线程

1、  线程的概念现在的操作系统都是都任务的,在同一时刻允许运行多个程序。现在,人们都有单台拥有多个CPU的计算机,俗称双核或者四核。但是并发执行的进程数目并不是由CPU数目决定的,操作系统将CPU的时间分配给每一个进程,给人一种并行出来的感觉。多线程程序在较低层次上扩展了多任务的概念,一个程序

2012-09-15 15:33:32 285

原创 Java异常处理(续)

1、捕获异常下面说一下如何捕获异常。如果某个异常被抛出而我们没有在任何地方捕获,那程序就会终止执行,并在控制台上打印异常信息。       要想捕获异常,必须设置try/catch语

2012-09-06 22:02:10 305

原创 解数独游戏(Java实现)

最近正在学习Java,所以用Java实现了一个解数独游戏的控制台程序,觉得里面缺点很多,好多代码可以优化,本人初学,希望大家不吝赐教!import java.util.*;class Stack//创建一个栈{ private int[][] StackData = new int[81][

2012-09-04 20:54:38 1184

原创 Java泛型数组列表

泛型数组列表 在Java中我们定义了一个数组就要确定数组的大小,而一担确定了数组的大小之后想改变数组大小就很麻烦了,所以Java为我们提供了ArrayList类,这是一个采用类型参数的泛型类。为了指定数组存储对象的类型,我们需要一对尖括号将类名括起来加在后面。例如 class Person/

2012-09-03 20:27:28 955

原创 Java异常处理

如果一个用户在程序运行期间,由于程序的错误或者一些外部环境的影响造成数据丢失,用户可能就不会在用这个程序了,为了避免此类事情的发生。Java使用一种称为异常处理的错误捕捉机制处理。一、

2012-09-01 14:05:57 317

原创 Java函数参数

程序设计语言中参数传递:1、值调用表示方法接收的是调用者的值。2、引用调用表示方法接收的是调用者提供的变量地址。       Java语言总是采用值调用。也就是说,函数得到的是参数值的一个拷贝,函数

2012-08-21 13:45:09 537

Redis设计与实现(第二版)

本书全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis。本书主要分为四大部分。第一部分“数据结构与对象”介绍了Redis中的各种对象及其数据结构,并说明这些数据结构如何影响对象的功能和性能。第二部分“单机数据库的实现”对Redis实现单机数据库的方法进行了介绍,包括数据库、RDB持久化、AOF持久化、事件等。第三部分“多机数据库的实现”对Redis的Sentinel、复制、集群三个多机功能进行了介绍。第四部分“独立功能的实现”对Redis中各个相对独立的功能模块进行了介绍,涉及发布与订阅、事务、Lua脚本、排序、二进制位数组、慢查询日志、监视器等。本书作者专门维护了www.redisbook.com网站,提供带有详细注释的Redis源代码,以及本书相关的更新内容。

2019-04-24

RocketMQ技术内幕

高清完整版带目录 本书由RocketMQ社区早期的布道者和技术专家撰写,Apache RocketMQ创始人/Linux OpenMessaging创始人兼主席/Alibaba Messaging开源技术负责人冯嘉的高度评价并作序推荐。源码角度,本书对RocketMQ的核心技术架构,以及消息发送、消息存储、消息消费、消息过滤、顺序消息、主从同步(HA)、事务消息等主要功能模块的实现原理进行了深入分析,同时展示了源码阅读的相关技巧;应用层面,本书总结了大量RocketMQ的使用技巧。通过本书,读者将深入理解消息中间件和底层网络通讯机制的核心知识点。

2019-04-24

Java数据结构和算法中文第二版

《Java数据结构和算法》(第2版)介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和队列、链表、递归、进阶排序、二叉树、红黑树、哈希表及图形等知识。附录中则提供了运行专题Applet和例程、相关书籍和问题解答。《Java数据结构和算法》(第2版)提供了学完一门编程语言后进一步需要知道的知识。本书所涵盖的内容通常作为大学或学院中计算机系二年级的课程,在学生掌握了编程的基础后才开始本书的学习。

2013-01-30

空空如也

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

TA关注的人

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