自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (4)
  • 收藏
  • 关注

原创 2016腾旭研发工程师笔试题

用C/C++代码算出满足上述条件的值。我们首先来分析一下:step0:我们可以得到如下方程:step1:由方程(1)、(3)、(6)可得我们可以把x1、x5、x6看成自变量,x2、x8、x7看成对应的函数,这样只要x1、x5、x6确定了,x2、x8、x7也随之确定。step2:再由公式(4)(5)可得:同理我们把x1、x6、x2、x7看成自变量(可以由ste

2015-09-06 23:39:27 559

原创 Flink教程(05)- Flink原理简单分析

Flink教程(05)- Flink原理简单分析_51CTO博客_flink原理

2023-12-11 21:26:44 77

转载 Spark架构与原理这一篇就够了

可扩展的分布式计算引擎。

2022-09-27 21:59:10 617

原创 JZ31 栈的压入、弹出序列

问题描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。1. 0<=pushA.length == popA.length <=10002. -1000<=pushA[i]<=10003. pushA 的所有数字均不相同分析实现 p.

2022-01-25 23:07:31 352

转载 机器学习常见算法分类汇总

阅读目录1. 学习方式  1.1 监督式学习  1.2 非监督式学习  1.3 半监督式学习  1.4 强化学习 2. 算法分类  2.1 回归算法  2.2 基于实例的算法  2.3 正则化方法  2.4 决策树学习  2.5 贝叶斯方法  2.6 基于核的算法  2.7 聚类算法  2.8 关联规则学习  2.9遗传算法(genetic algorithm)  2.10 人工神经网络  2.11 深度学习  2.12 降低维度算法...

2022-01-17 20:39:37 3071

转载 机器学习算法分类

是否在人类监督下进行训练(监督,无监督和强化学习)在机器学习中,无监督学习就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类;而监督型学习就是有训练样本,带有属性标签,也可以理解成样本有输入有输出。所有的回归算法和分类算法都属于监督学习。回归和分类的算法区别在于输出变量的类型,定量输出称为回归,或者说是连续变量预测;定性输出称为分类,或者说是离散变量预测。分类KNN 向量机SVC 朴素贝叶斯 决策树DecisionTreeClassifier 随机森林R.

2022-01-17 20:36:26 811

转载 二叉树——求两个节点的最近公共祖先

题目给定一颗二叉树的头结点,和这颗二叉树中2个节点n1和n2,求这两个节点的最近公共祖先;思路利用后序遍历实现;对于当前节点cur,如果节点为null或者等于n1或n2中的一个,则直接返回cur;先处理左右子树,左子树返回left,右子树返回right;判断left和right;1)left和right均为null,说明以cur为根的树上没发现n1和n2;2)left和right均不为null,说明在左子树上发现了n1或n2,在右子树上也发现了n1或n2,cur为n1和n2的首次相遇节点

2022-01-11 17:10:24 1346 1

转载 SQL计算最长连续登录天数

计算最长登陆天数主要用两个函数:1.窗口函数row_number()over() 2.date_sub()1.使用row_number()窗口函数select UID,loadtime,row_number()over(partition by UID order by loadtime) sortfrom user_login2.使用date_sub()函数select UID,date_sub(loadtime,sort) as date_group,min(loadti..

2021-12-24 10:36:29 3779

转载 Spring 快速入门案例

Spring框架参考文档什么是Spring?  Spring是一个轻量级的开源框架,它是为简化企业级应用开发而生,使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能。Spring有哪些优点?方便解耦, 简化开发Spring是个大工厂,可以将所有对象创建以及对象间依赖关系的维护,交给Spring容器进行管理,避免硬编码造成过度的程序耦合,实现程序各层之间的解耦。AOP编程的支持Spring提供面向切面编程(将日志记录、权限控制、性能统计等服务理解成一个切面

2021-08-29 23:57:29 299

转载 管程:并发编程的万能钥匙

一、什么是管程不知道你是否曾思考过这个问题:为什么 Java 在 1.5 之前仅仅提供了 synchronized 关键字及 wait()、notify()、notifyAll() 这三个看似从天而降的方法?在刚接触 Java 的时候,我以为它会提供信号量这种编程原语,因为操作系统原理课程告诉我,用信号量能解决所有并发问题,结果我发现不是。后来我找到了原因:Java 采用的是管程技术,synchronized 关键字及 wait()、notify()、notifyAll() 这三个方法都是管程的组成部分

2021-08-20 21:29:38 194

转载 国内加速访问Github的办法,超级简单

说明自从GitHub私有库免费后,又涌入了一大批开发爱好者。但国内访问GitHub的速度实在是慢得一匹,在clone仓库时甚至只有10k以下的速度,大大影响了程序员的交友效率。国内加速访问Github的办法,超级简单GitHub在国内访问速度慢的问题原因有很多,但最直接和最主要的原因是GitHub的分发加速网络的域名遭到dns污染。今天我们就介绍通过修改系统hosts文件的办法,绕过国内dns解析,直接访问GitHub的CDN节点,从而达到加速的目的。不需要科()学()上网,也不需要开代理加速

2021-05-02 16:16:48 4479

转载 超简单vue-devtools工具安装

1.下载vue-devtools下载地址:vue-devtools或使用git下载$ git clone https://github.com/vuejs/vue-devtools2.安装工具$ cd ./vue-devtools/#切换到master$ git checkout master#安装,比较久需等待,如果是dev分支则会报错$ npm install$ npm run build# 安装过程可能会出现# npm ERR! code ELIFECYCLE

2021-04-29 19:07:38 450

原创 第1题 top k问题

1.题目给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组。示例1输入 [4,5,1,6,2,7,3,8],4返回值 [1,2,3,4]2.解决方案2.1 排序思路分析先对输入的n个数从小到大排序,然后输出前k个数。时空复杂度分析T(n)=O(nlogn)S(n)=O(1)2.2 partition思路分析基于快速排序的part..

2021-04-05 23:59:49 111

转载 分布式架构知识体系必读

1.问题 1、何为分布式何为微服务? 2、为什么需要分布式? 3、分布式核心理论基础,节点、网络、时间、顺序,一致性? 4、分布式是系统有哪些设计模式? 5、分布式有哪些类型? 6、如何实现分布式? 2.关键词节点,时间,一致性,CAP,ACID,BASE,P2P,机器伸缩,网络变更,负载均衡,限流,鉴权,服务发现,服务编排,降级,熔断,幂等,分库分表,分片分区,自动运维,容错处理,全栈监控,故障恢复,性能调优3.全文概要随着移动互联网

2021-03-23 17:15:44 201

原创 mac编译grpc-java 生成插件

安装 protobufbrew install autoconf automake libtoolgit clone https://github.com/google/protobuf.gitcd protobufgit checkout v3.5.0sh ./autogen.sh./configure --prefix=/usr/local/protobuf/ sudo make && make install编译插件wget https://github.

2020-11-10 17:30:06 603

转载 Druid简介及常用查询操作

目录一、druid主要功能介绍二、druid使用场景1、适用于如下场景2、不适用于如下场景三、常见查询操作1、timeseries时间序列2、TopN3、GroupBy分组查询4、scan扫描查询5、search搜索查询6、timeBoundary时间边界查询7、segmentMetadata细分元数据查询8、dataSourceMetadata数据源元数据查询四、查询组件介绍1、filter过滤器(1)选择器过滤器selector(2)列

2020-11-07 20:05:02 2257

转载 Java中的class文件详解

即使对于有经验的Java开发人员来说,阅读已编译的Java字节码也很乏味。为什么我们首先需要了解这种低级别的东西?这是上周发生在我身上的一个简单情况:很久以前,我在机器上进行了一些代码更改,编译了一个JAR,并将其部署到服务器上,以测试性能问题的潜在修补程序。不幸的是,代码从未被检入到版本控制系统中,并且出于某种原因,本地更改被删除而没有追踪。几个月后,我再次需要源代码形式的变化(这需要付出相当大的努力),但是我找不到它们!幸运的是编译后的代码仍然存在于该远程服务器上。于是松了一口气...

2020-10-25 23:08:23 394

转载 微内核操作系统

2020-10-13 22:52:25 375

转载 Linux0.11小结

第一部分 基础内容1.操作系统基础操作系统是计算机硬件系统与用户程序间重要环节,理解操作系统的原理是编写优秀代码的基础。教课书中阐述的操作系统一般由5部分组成。一个最简单的操作系统,可以不需要文件,不需要网络,只要实现多进程,且进程间也不需要通信,相互独立。那么这样一个简单的OS仅需要两块内容:进程管理、内存管理。这两方面内容是相辅相成,不可分割的,因为现在计算机系统的基本架构仍是指令存储-执行。内存管理很大程度上依赖处理器的硬件支持,而进程管理则是在这个基础上,用软件的...

2020-10-13 22:07:39 1082

转载 操作系统运行环境与运行机制(系统调用篇)

系统调用:用户在编程是可以调用的操作系统功能(使CPU可以从用户态陷入内核态)应用程序,C函数,API,和内核函数关系系统调用和函数调用区别:系统调用:INT,IRET指令用于系统调用,堆栈切换,特权级切换函数调用:CALL,RET指令用于函数调用,不涉及堆栈切换和特权级改变系统调用机制的设计①中断/异常机制支持系统调用服务的实现:选择一条陷入指令(访管指令)即可②选择一条特殊指令:陷入指令(亦称访管指令)引发异常完成用户态到内核...

2020-10-13 14:37:28 534

转载 java 中的锁 -- 偏向锁、轻量级锁、自旋锁、重量级锁

之前做过一个测试,详情见这篇文章《多线程 +1操作的几种实现方式,及效率对比》,当时对这个测试结果很疑惑,反复执行过多次,发现结果是一样的:1. 单线程下synchronized效率最高(当时感觉它的效率应该是最差才对);2. AtomicInteger效率最不稳定,不同并发情况下表现不一样:短时间低并发下,效率比synchronized高,有时甚至比LongAdder还高出一点,但是高并发下,性能还不如synchronized,不同情况下性能表现很不稳定;3. LongAdder性能稳定,在各...

2020-10-07 00:17:25 379

转载 java对象结构

在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。下图是普通对象实例与数组对象实例的数据结构:对象头HotSpot虚拟机的对象头包括两部分信息:markword 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为3.

2020-10-07 00:16:01 105

转载 Java对象的内存布局

今天来讲些抽象的东西 --对象头,因为我在学习的过程中发现很多地方都关联到了对象头的知识点,例如JDK中的 synchronized锁优化 和 JVM 中对象年龄升级等等。要深入理解这些知识的原理,了解对象头的概念很有必要,而且可以为后面分享 synchronized 原理和 JVM 知识的时候做准备。对象内存构成Java 中通过 new 关键字创建一个类的实例对象,对象存于内存的堆中并给其分配一个内存地址,那么是否想过如下这些问题:这个实例对象是以怎样的形态存在内存中的? 一个Object.

2020-10-07 00:14:49 92

转载 java线程间通讯的几种方式

文章目录 一、使用同一个共享变量控制 Synchronized、wait、notify Lock、Condition 利用volatile 利用AtomicInteger 二、PipedInputStream、PipedOutputStream 三、利用BlockingQueue 一、使用同一个共享变量控制Synchronized、wait、notifypublic class Demo1 { private final List.

2020-09-24 11:42:22 119

转载 TreeMap原理实现及常用方法

目录一. TreeMap概述 二. 红黑树回顾 三. TreeMap构造 四. put方法 五. get 方法 六. remove方法 七. 遍历 八. 总结前面我们分别讲了Map接口的两个实现类HashMap和LinkedHashMap,本章我们讲一下Map接口另一个重要的实现类TreeMap,TreeMap或许不如HashMap那么常用,但存在即合理,它也有自己的应用场景,TreeMap可以实现元素的自动排序。一. TreeMap概述TreeMap存储K-V键值对,通过.

2020-09-20 22:39:43 577

转载 Java中节点流和处理流的简单认知

在程序中所有的数据都是以流的方式进行传输或保存的,所以在Java中IO流也是必不可少的。Java中的IO流在java.io包中。在java.io包中不管是操作文件和目录都是使用File类来操作,File能新建、删除、重命名文件和目录,但是File不能访问文件内容本身。而需要操作文件内容在java.io包中主要有两大类:字符流和字节流(1)字符流字符流主要的操作对象是文本,因为文本的占用内存小,如果使用字节流,可能会因为各种字节编码字节位数不同,从而使得读取文本不完整,产生乱码。字符流在操作的时候是使

2020-09-20 16:54:28 311

转载 一文搞定Linux进程和线程(详细图解)

Linux 进程和线程本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程。系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文件和 I/O 来说都很重要。我们将从各个版本的共性出发来进行探讨。基本概念Linux 一个非常重要的概念就是进程,Linux 进程和我们在现代操作系统中探讨的进程模型非常相似。每个进程都会运行一段独立的程序,并且在初始化的时候拥有一个独立的控制线程。换句话说,每个进程都会有一个自己的程序计数器,这个程序计数器用来记录

2020-09-18 17:38:18 10786

转载 关于进程的一点理解

在任何时刻需要记住一点:任何某一时刻CPU只能执行一条指令,为一个进程服务,而不是多个进程服务。什么是多进程?比如你可以一边听网易音乐,一边聊天;这是两个不同的进程,这就是多进程;但是上文说某一时刻CPU只能干一件事情,是否矛盾? 在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如1毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样,给用户的感觉就是并行。但实际上在任何一个时间内有且仅...

2020-09-18 17:35:37 296

转载 操作系统面试题(三)

请你来说一说协程参考回答:1、概念:协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。例如:def A() :print '1'print '2'print '3'def B() :print 'x'print 'y'print 'z'由协程运行结果可能是12x3yz。在执行A的过程中,可以随时中断,去执行B,B也可能在执行过程中中断再去执行A。但协程的特点在

2020-09-18 17:33:48 11069 2

转载 操作系统面试题(二)

请你讲述一下互斥锁(mutex)机制,以及互斥锁和读写锁的区别参考回答:1、互斥锁和读写锁区别:互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒。读写锁:rwlock,分为读锁和写锁。处于读操作时,可以允许多个线程同时获得读操作。但是同一时刻只能有一个线程可以获得写锁。其它获取写锁失败的线程都会进入睡眠状态,直到写锁释放时被唤醒。注意:写锁会阻塞其它读写锁。当有一个线程获得写锁在写时,读锁也不能被其它线程获取;写者优.

2020-09-18 17:32:31 8551

转载 操作系统面试题(一)

请你说一下进程与线程的概念,以及为什么要有进程线程,其中有什么区别,他们各自又是怎么同步的参考回答:基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等)

2020-09-18 17:29:36 9230

原创 SQL练习

表t_active_user有字段dt(日期),city(城市),user_id(用户id),is_active(0:表示非活跃,1表示活跃)需求1:求在20200801到20200831期间,每个城市,用户活跃数最高的前2名用户。SELECT city,user_id,active_days,rankFROM(SELECT city,user_id,active_days,CASE city WHEN @c THEN @r:=@r+1 WHEN @c:=city THEN @r:=1

2020-09-11 18:12:49 96

转载 mysql中的case when 与if else

在sql中,能用if else 就不用case when下面来看看,具体为什么,没有搞清楚,如果有大神知道的提供下资料:Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:IF表达式复制代码代码如下:IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返..

2020-09-11 17:57:07 1462

转载 从内核文件系统看文件读写过程

阅读目录系统调用 虚拟文件系统 I/O 缓冲区 Page Cache Address Space 文件读写基本流程回到顶部系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。应用程序代码运

2020-09-06 23:06:20 214

原创 WPS on Ubuntu19.10启动缓慢,运行缓慢

WPS on Ubuntu19.10启动缓慢,运行缓慢原因:受输入系统ibus影响解决方案:安装输入系统fcitx,具体步骤:https://blog.csdn.net/wzl1217333452/article/details/108270051

2020-08-27 22:42:28 1303

原创 Ubuntu 19.10安装fcitx输入法

1.安装拼音输入法sudo apt-get install fcitx-pinyin其它输入法的名称如下//拼音:fcitx-pinyin、fcitx-sunpinyin、fcitx-googlepinyin、fcitx-sogoupinyin//五笔:fcitx-table、fcitx-table-wubi、fcitx-table-wbpy(五笔拼音混合)2、在/usr/share/applications路径中找到并执行StartupApplications,把fcitx设为自...

2020-08-27 22:38:33 1167

原创 解决 Ubuntu 19.10 安装 WPS 2019 后无法启动的问题

目前,在 Ubuntu 18.04+ 上按照官方方式安装 WPS 2019 后,会出现无论从终端还是图标都无法打开的情况,但 dpkg / apt 均未给出任何有关依赖的错误信息。经过分析,缺失的依赖项为libgtk2.0,使用下列命令安装后即可正常工作:sudo apt install -y libgtk2.0-0此外,WPS 公式所缺失的字体文件可以在这里找到,下载后执行脚本安装即可。...

2020-08-26 22:36:57 2789

转载 分布式系统核心问题

分布式系统核心问题随着摩尔定律遇到瓶颈,越来越多情况下要依靠分布式架构,才能实现海量数据处理能力和可扩展计算能力。区块链系统,首先是一个分布式系统。传统单节点结构演变到分布式系统,碰到的首要问题就是一致性的保障。很显然,如果分布式集群无法保证处理结果一致的话,那任何建立于其上的业务系统都无法正常工作。本文将介绍分布式系统领域的核心问题,包括一致性、共识的定义,基本的原理和算法,另外还介绍了评估分布式系统可靠性的指标。一、一致性问题一致性问题是分布式领域最为基础也是最重要的问题。如果分布式

2020-08-26 16:43:23 940

转载 大数据压缩与存储

压缩为什么要压缩? 1)减少磁盘的存储空间 2)减少网络和磁盘的IO 3)加快数据在磁盘和网络中的传输速度,从而提高系统的处理速度压缩的局限性每次使用数据时需要先将数据解压,加重CPU负荷。压缩格式 压缩格式 工具 算法 文件扩展名 是否可切分 DEFAULT 无 DEFAULT...

2020-08-19 22:46:36 683

原创 Linux expect用法介绍

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。expect自动交互流程:spawn启动指定进程---expect获取指定关键字---send向指定程序发送指定字符---执行完成退出.注意该脚本能够执行的前提是安装了expectapt-get install -y expectexpect常用命令总结:spawn 交互程序开始后面跟命令或者指定程序expect 获

2020-07-25 14:10:34 378

线性表的数组实现

线性表的数组实现,采用抽象数据型ADT的语法说明和语法格式说明进行实现,操作规范。

2013-10-27

算符优先文法

详细介绍了算符优先文法的操作过程,并给出了一个句子的具体分析过程。

2013-04-16

语法分析-编译

本资料给出了SLR(1)、算符优先文法和LL(1)文法的具体操作过程。

2013-04-16

哈工大计算机2013复试结果

哈工大计算机2013复试结果,有详细的各个校区的录取情况,还有初试成绩。

2013-04-02

空空如也

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

TA关注的人

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