- 博客(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
原创 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设计与实现(第二版)
2019-04-24
RocketMQ技术内幕
2019-04-24
Java数据结构和算法中文第二版
2013-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人