自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MachineRandy

不断追求进步、积极求索,努力做最优秀最充实的自己

  • 博客(68)
  • 收藏
  • 关注

原创 yjs demo: 多人在线协作画板

基于实现实时在线多人协作的绘画功能。

2023-10-20 15:48:52 624

原创 中国地图经纬度范围,用多个矩形表示大致范围

经纬度区域// 每行代表一个矩形范围,第一个点是左下角,第二个点是右上角(124.37, 39.75), (135.25, 53.65)(115.24, 46.95), (124.37, 53.65)(110.68, 43.01), (124.37, 46.95)(79.7, 43.01), (97.07, 49.24)(73.37, 26.61), (95.45, 43.01)(95.45, 27.73), (124.37, 43.01)(97.50, 21.13), (124.37,

2022-02-15 17:45:57 1789

原创 利用Java实现后端文件跨服务器传输(上传图片等文件)

背景假设一台服务器部署了一个 Java 应用程序,需要将本机的数据文件(可能是文本也可能是图像)上传到远端的另外一台服务器,注意这个不是通过前端进行PUT请求来完成的,需要怎么做呢?实现需要上传的一方实现一个 FileIOService.java // 这里把图片的常用后缀采用列举的方式做了设置,可以换个其他更简单的图像判别方法 private static final String[] IMAGE_VALUES = new String[]{"jpg", "BMP", "bmp",

2021-01-11 21:02:50 9209 1

原创 Spring Boot 创建定时任务

Step 1: @EnableScheduling 使能 Application 主类@SpringBootApplication@EnableSchedulingpublic class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApp...

2019-05-07 16:48:08 288

原创 Flume [Bug]: org.apache.commons.cli.MissingOptionException: Missing required option: n

在使用 Apache Flume的时候,开启 agent 指令:bin/flume-ng agent -c conf -f conf/console.conf --name agent1出现报错: org.apache.commons.cli.MissingOptionException: Missing required option: n at org.apache.commons.c...

2019-05-04 23:01:02 4324

原创 HTTP (超文本传输协议)和 HTTPS(超文本传输安全协议)的区别

HTTP (超文本传输协议)和 HTTPS(超文本传输安全协议)的区别首先解释一下,什么是HTTP 和 HTTPS,再讨论它们的区别。HTTP协议是客户端和服务器端请求和应答的标准,是一种应用层协议,默认端口为 80,HTTP假定其下层协议提供可靠的传输。因此其在TCP/IP协议族使用 TCP 作为其传输层。HTTP协议的缺点:HTTP 以明文传输(即不加密),内容可能会被窃听;HTTP 不...

2018-11-19 15:53:57 2914

原创 Trie 树(字典树/前缀树)实现 Java

Trie 树:在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下,不是所有的节点都有对应的值,只有叶子节点和部分内部节点所对应的键才有相关的值。(摘自 https://zh.wikip...

2018-11-15 17:08:06 775 1

原创 头条后端一面凉经

今日头条一面面试题自我介绍select和epoll区别TCP和UDP的区别Sychronized 关键字以及其实现方法JAVA垃圾回收从算法到垃圾回收器同步、异步、阻塞、非阻塞,它们之间有什么区别IPC 进程间通信方式进程间通信,消息队列和共享存储的区别浏览器输入网址后的全过程以及TCP在其中出现的情况mysql索引以及B、B+树的区别为什么使用B+树算法题:给定一个链表...

2018-11-07 00:17:39 1006

原创 再见,秋招!再战,春招!

再见,秋招!再战,春招!整个秋招,我领悟到:实力很重要运气有时候这东西说不好原罪其实还是:自己太菜!回顾这几年在学校的时候,做了两年 Web 开发,接学校项目,接外包,靠着两手 PHP 和 jQuery 自以为很牛逼可以混迹江湖,大二开始,接触机器学习,那时候在学校还没那么火,然后跑去找学长请教怎么学,研究怎么做 Kaggle/天池,买了很多很多书,刷西瓜书、刷了好几遍统计学习方...

2018-11-06 23:50:58 1027 3

原创 后台开发常见必备知识点

排序算法 //快速排序 划分算法 public int Partition(int A[], int low, int hight){ int pivot = A[low]; while (low < hight){ while (low &a

2018-11-06 14:13:15 1080

原创 消息队列以及Kafka

为何使用消息队列应用解耦、可恢复性系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。顺序保证在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。Kafka保证一个Partition内的消息的有序性。缓冲、流量削锋流...

2018-11-04 15:02:55 297

原创 914. 卡牌分组

给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输出:false解释:没有满足要求的分组。思路与实现:...

2018-10-29 18:08:08 717

原创 905. 按奇偶排序数组

给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <= 5000...

2018-10-29 15:19:53 306

原创 KMP模式匹配算法 Java实现

在字符串操作中,子串定位操作通常被称为串的模式匹配,即在主串中找子串是否存在; 若存在需要能定位到字串首次出现的位置。朴素的模式匹配算法public class KMP { public int naiveStringMatch(String S, String T) { char[] s = S.toCharArray(); char[] t...

2018-09-17 21:05:14 514

原创 常微分方程初值问题的数值方法 Python实现

原理:(1)利用Euler方法和改进的Euler方法求解初值问题 (2)利用Runge-Kutta方法求解初值问题步骤: import mathdef f1(x, y): if x == 0: return 0 else: return ((4 * x) / y) - (x * y)def f2(x, y): retur...

2018-09-12 00:02:38 3574

原创 数值积分 Python实现

原理:利用复化梯形公式,复化Simpson公式,计算积分。步骤: import math"""测试函数"""def f(x,i): if i == 1: return (4 - (math.sin(x)) ** 2) ** 0.5 if i == 2: if x == 0: return 1 ...

2018-09-11 23:59:10 6196

原创 解线性方程组的迭代法 Python实现

原理:采用jacobi迭代法,Guass-Seidel迭代法,SOR迭代法求解线性方程组的解1.三种迭代法的程序实现。 2.分别计算出3个精度迭代法的迭代次数 3.对方程组使用SOR迭代法计算出不同松弛因子的迭代次数,从而选取最佳松弛因子。# -*- coding: utf-8 -*-"""@author: MachineRandy"""import warningsw...

2018-09-11 23:54:37 4736

原创 矩阵求逆运算 Python实现

原理:应用列主元消去法运算矩阵A的逆矩阵,利用初等矩阵行变换A转化单位矩阵时,同样的行变化可将单位矩阵转化为A的逆矩阵。步骤:编制下三角部分消元和上三角部分消元的代码 a. 从对角线元素往下比较取得这一列的最大值所在的行,与对角线元素所在行进行交换。 b. 从对角线所在行往下,利用矩阵的行变换将这一列下所有元素消为0,存储消元过程中的系数(三角矩阵) c. 类似b步骤从最后一列往前...

2018-09-11 23:40:24 11204 7

原创 Vector C++实现(在校旧文)

在邓公的课上手抄的(手打算不算原创啊) ლ(ó﹏òლ)对不起typedef int rank; //秩 #define DEFAULT_CAPACITY 3 //默认初始容量 template <tempname T> class Vector{ //向量模板类 private:protected: Rank _size;int _capacity;...

2018-09-11 23:00:26 273

原创 Java 并发编程艺术笔记

Thread.sleep() 和 Object.wait() 的区别: sleep是Thread类的方法,wait是Object类的方法 调用Thread.sleep()方法不会释放锁,而调用Object.wait()方法是会释放当前锁 wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用 sleep必须捕获异常,而wait...

2018-09-05 01:05:05 216

原创 MySQL 技术内幕读书笔记

存储引擎是基于表的,而不是数据库。InnoDB 简介InnoDB 存储引擎支持事务,面向在线事务处理,特点是行锁设计、支持外键以及非锁定读,即默认读取操作不会产生锁。InnoDB 通过使用 MVCC 多版本并发控制来获取高并发性,并实现了 SQL 标准的四种隔离级别: 未提交读(READ UNCOMMITTED):事务中的修改,即使没有提交,对其它事务也是可见的。 提交...

2018-09-02 00:07:30 453

原创 小米科技2019秋招内推

非官方 内推宣传由于小米HR平台好像好看点的宣传(类似面向同学们的公众号推送),而且内推岗位链接仅限于微信打开 所以,写个小米秋招内推博客,希望能给有需要的同学内推 提前说明,我写这篇文章内推不是为了内推奖励,因为几乎没有,怎么?不信?看图! 内推方式(2018/08/15 - 2018/09/15)点击小米内推链接 或者微信扫码 小米是否值得来如果你是米...

2018-08-31 17:29:27 2761 2

原创 二叉树的 前序遍历、中序遍历、后序遍历和层次遍历

前序遍历:Leetcode 题 144. 二叉树的前序遍历给定一个二叉树,返回它的 前序 遍历。输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]/** * Definition for a binary tree node. * public class TreeNode { * int val...

2018-08-27 01:10:27 249

原创 一文掌握 Redis 必备知识

参考 https://www.jianshu.com/p/f8ccf8806095 https://zhuanlan.zhihu.com/p/32540678 https://juejin.im/post/5ad6e4066fb9a028d82c4b66 https://blog.csdn.net/ydyang1126/article/details/72667602...

2018-08-26 21:11:48 509

原创 Leetcode 动态规划 (持续更新)

动态规划解决问题 Max / MinYes / NoCount(*)Can’t sort / swap 四要素 状态 state初始化 init方程 function结果 result常见类型 矩阵DP序列DP双序列DP背包问题题 62. 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只...

2018-08-25 21:50:32 1080

原创 卡特兰数问题

卡特兰数卡特兰数 卡特兰数是组合数学中一个常出现在各种计数问题中的数列,最早由清代数学家明安图发现,也叫“明安图数” 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012 ... 一般通项公式为 Cn=1n+1(2nn)=(2n)!(n+1)!n!Cn=1n+1(2nn)=(2n)!(n+1)!n!C_n =...

2018-08-25 00:53:58 698

原创 elasticsearch Exception: io.netty.util.internal.PlatformDependent.newAtomicIntegerFieldUpdater

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...Exception in thread "elasticsearch[_client_][mana...

2018-08-24 15:14:38 2216

转载 Java 守护线程

Java的线程分为两种:User Thread(用户线程)、DaemonThread(守护线程)。守护线程的作用和特点:Daemon 作用是为其他线程提供便利服务,守护线程最典型的应用就是 GC (垃圾收集器)。只要当前 JVM 实例中尚存任何一个非守护线程没有结束,守护线程就全部工作; 只有当最后一个非守护线程结束是,守护线程随着 JVM 一同结束工作。守护线程的创建:...

2018-08-23 00:45:53 163

原创 Java final 和 static 关键字

final 关键字在Java 中,final 是有 “最后的,不再可变” 的意思,主要的作用有:修饰数据(局部变量或者成员变量),该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值;修饰方法的参数,表示在变量的生命周期内不能被修改;修饰方法,被 final 修饰的方法不能被重写(注:类的private方法会隐式地被指定为final方法);...

2018-08-23 00:36:30 334

转载 (搬运 )Java抽象类与接口的区别

本文由 ImportNew - jessenpan 翻译自 javacodegeeks。 http://www.importnew.com/12399.html抽象类抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例: 被abstract修饰的类叫抽象类,抽...

2018-08-22 23:45:39 126

原创 Java 代理机制

本文纯属搬运,参考以下文章(侵删,请联系): Java代理机制与hook: http://www.zengye.cc/2016/05/01/java%E4%BB%A3%E7%90%86%E6%9C%BA%E5%88%B6%E4%B8%8Ehook/ Java三种代理模式:静态代理、动态代理和cglib代理: https://segmentfault.com/a/119...

2018-08-22 22:24:39 1056

原创 Leetcode 回溯法 (持续更新)

题 78. 子集给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3] 输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]My Answer:class Solution { ...

2018-08-21 22:33:45 766

原创 Java 采集 Linux 网络带宽信息

通过 cat /proc/net/dev 和 ethtool [net] 两个信息,计算网络带宽、吞吐速率和带宽利用率。package demo;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Properties;...

2018-08-21 22:20:50 1623

原创 二分搜索模板方法

二分搜索模板:start = 0;end = n - 1;while (start + 1 < end) { mid = start + (end - start) / 2; if (arr[mid] == value) return mid; if(arr[mid] < value) start = mid; if(arr[mid] >...

2018-08-18 21:09:06 195

原创 单例模式实现—考虑线程安全性

在设计模式中,最为常见常用的应该就是单例模式了。单例模式的使用场景:1.资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。 2.控制资源的情况下,方便资源之间的互相通信。如线程池等。 单例模式要素:私有构造方法 私有静态成员变量,自身类型的实例以自己实例为返回值的公有静态方法单例模式常见的七种实现方式—— 1. 简单的懒...

2018-08-18 20:43:05 429

原创 MySQL 的 limit 和 offset

在MySQL中,选择 top n个记录我们可以使用:select * from table limit n;当我们想选择第 11 - 15 个记录的时候,我们就需要用到 limit 和偏移 offset :select * from table limit 5 offset 10;//or 两者表达的意思一样select * from table limit 10,5;所...

2018-08-18 19:33:36 571

原创 位运算技巧 (长期持续更新)

1. 给定两个备选值,取反(如 ‘1001’ 和 ‘1011’ 相互取反)假设当前值为 X ,X 是 ‘1001’ 和 ‘1011’ 中的任意一个,要取其另一个数,只需要: 取反(X) = X ^ 1001 ^ 1011 进行两次异或操作即可。...

2018-08-18 18:28:30 228

原创 Java 实现线程池

ThreadPool 接口 ThreadPool.javapackage ThreadPool;public interface ThreadPool<Job extends Runnable> { //执行一个Job,这个Job需要实现Runnable void execute(Job job); //关闭线程池 void shutd...

2018-07-28 22:22:39 175

翻译 笔记ctype - Java 并发机制的底层实现原理

一、前言: 总结自《Java 并发编程的艺术》 如有雷同,纯属摘抄-.-首先,多线程并行执行不总是比串行执行快,因为存在线程创建和上下文切换的开销。所以在计算量较小的情况下,并发执行跟串行执行效率差不多,甚至有比串行慢的情况。 减少上下文切换的方法主要有:无锁并发编程、CAS算法、使用最少线程和使用协程。无锁并发编程: 多线程竞争锁时,会引起上下文切换,可以使用数据ID按H...

2018-07-24 18:13:33 203

原创 Java 传值 or 传引用

因为之前没怎么用Java,一直没有搞清楚一个有趣的问题,Java 传参时,到底是传值还是传引用?! 直到在工作过程中看到一段代码public ThreadTask(..., ConcurrentMap<String, Map<String, Object>> result) { ... }我发现这个方法没有显式地返回 res...

2018-07-10 20:28:00 176

空空如也

空空如也

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

TA关注的人

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