Kaka Blog

追求自我价值的实现

按序打印

题目链接 题目 我们提供了一个类: public class Foo {   public void one() { print("one"); }   public void two() { print("two"); }   public void three() { print("three"); } } 三个不同的线程将会共用一个 Foo 实例。 线程 A 将会调用 one...

构建JDK Docker基础镜像

前言 其实,使用官方提供的镜像mcr.microsoft.com/java/jdk:8u212-zulu-alpine也是能够构建我们的Java应用。为什么要自己构建JDK基础镜像呢?原因有几方面:一、使用官方的镜像会出现时区差8小时问题。当然这个问题可以在Dockerfile解决;二、当我们使用一些中文字符集时,官方的JDK里不包含这些字符集,就会导致中文不能正常显示的问题。这两个问题是...

打乱数组

题目链接 题目 打乱一个没有重复元素的数组。 示例: // 以数字集合 1, 2 和 3 初始化数组。 int[] nums = {1,2,3}; Solution solution = new Solution(nums); // 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。 solution.shuffle(); // 重设数组到它的初...

Chrome插件开发入门

前言 简单地说,浏览器插件,可以大大的扩展你的浏览器的功能。包括但不仅限于这些功能:捕捉特定网页的内容,捕捉HTTP报文,捕捉用户浏览动作,改变浏览器地址栏/起始页/书签/Tab等界面元素的行为,与别的站点通信,修改网页内容……给你增加许多想象空间,试想想看,你可以用它来识别一些网站上的广告代码,并直接把这些代码删掉,这样你就不会受到广告的困扰了,没错,如你所愿,这样的插件别人已经开发好了...

MySQL表索引优化与底层数据结构

本文主要介绍MySQL底层数据结构,在介绍数据结构之前通过其他数据结构先对树有一个概念,由浅入深,再介绍MySQL表的索引的优化。MySQL底层数据结构主要是B+数,在介绍B+树前我们先了解什么是二叉查找树和红黑树。 二叉查找树 左子树上所有结点的值均小于或等于它的根结点的值。 右子树上所有结点的值均大于或等于它的根结点的值。 左、右子树也分别为二叉排序树。 缺点: ...

回文链表

题目链接 题目 请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 答案分析 我的答案: /** * Definition for singly-linked list. * ...

Nginx限制访问配置实践

前言 我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,并发数进行限制。下面说说ngx_http_limit_conn_module 模块来实现该需求。该模块可以根据定义的键来限制每个键值的连接数,如同一个IP来源的连接数。并不是所有的连接都会被该模块计数,只有那些正在被处理的请求(这些请求...

使用Electron开发桌面应用程序

Electron介绍 Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。 快速上手 从开发的角度来看, Electron application 本质上是一个 Nod...

微服务架构之分布式事务解决方案

事务的定义 事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败,都将导致整个事务的回滚。 简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。 什么是分布式事务? 分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不...

高并发分布式锁Redis解决方案

问题引入 假设有这样一个场景:在redis有一个键stock,存的是库存数量,每次调用接口delstock后库存数量减1。代码如下: @RestController public class StockController { @Autowired private StringRedisTemplate stringRedisTemplate; @GetMapp...