自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 java中调用scala

​下载scala的SDK 包,https://www.scala-lang.org/download/all.html注意下载与pom文件中依赖对应的版本,解压至指定文件夹在.bash_profile中配置环境变量 # scalaexport SCALA_HOME=/Users/kejian/Folder/scala-2.11.12export PATH=$PATH:$SCALA_HOME/bin激活并验证scala安装成功source ~/.bash_profile

2022-04-14 17:10:45 2089

原创 JDK+Maven环境配置

1. 下载JDK8并安装2. 下载Maven3. 配置mavenvim ~/.bash_profile // 打开bash配置文件export Maven="/usr/local/ApacheMaven"export PATH="$Maven/bin:$PATH" // 写入source ~/.bash_profile //激活bash配置mvn -v //查看maven配置信息4. 查看java安装路径/usr/libexec/java_home -V5. 配置ja

2022-02-24 20:18:00 494

原创 git基本命令

git branch -a 显示所有的分支(本地+远程) git branch 显示本地分支 git branch -r 显示远程仓库分支 git checkout Bran 切换到分支 git branch Bran新建一个分支 git checkout -b Bran 基于当前分支新建分支并转到那个分支 git checkout -b Bran2 Bran1 基于Bran1分支新建一个分支Bran2,并转到Bran2分支 gi...

2021-09-22 10:26:56 188

原创 HBase学习笔记

全称Hadoop Database,是google Bigtable的开源实现1. HBase-组件构成 Master:通常运行在NameNode上 Master是集群的主节点,本质是一个进程 负责管理元数据,如定期更新hbase::meta表 分配与移动region保证集群的负载 管理RegionServer,出现问题时进行故障转移 region server 负载region的合并与拆分 负

2021-09-22 10:25:29 154

原创 Shell语法

export -p 列出全部的环境变量 export MYENV=7 定义环境变量并赋值 PATH格式为PATH1:PATH2:PATH3:$PATH echo $PATH单独查看PATH 在profile中添加PATHexport PATH=$PATH:PATH1,保存文件后source /profile jps命令:显示所有java进程pid的命令,即java+ps find命令: find 搜索路径 [选项] 搜...

2021-09-22 10:17:50 93

原创 20210808 拼多多笔试第四题

题目描述:将N道笔试题进行排序,只要相邻的题目中,前一道题的难度不超过后一道题难度+M,就认为是满足序列。问 满足的序列有多少种输入:第一行 N,M (N是题目的个数)第二行 N个数,代表N道题的难度用例一输入4 01 2 2 3输出2用例二输入3 11 2 3输出4方法一、dfs列举N!种排列方式,每种排列判断是否符合条件只能过30%方法二、举例:对于 1 4 7 3首先进行排序得到 1 3 4 7,整个问

2021-08-08 22:44:26 153

原创 TCP中time_wait解释及解决方法

首先是四次挥手断开连接的状态变化图总的来说,主动关闭连接的一方才会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间,进入CLOSED状态MSL时间MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间IP数据包将在网络中消失 。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒。一个s

2021-07-28 14:35:54 12589 1

原创 C++智能指针

转载https://www.cnblogs.com/WindSun/p/11444429.html

2021-07-25 23:50:48 64 1

转载 Java注解

转载https://zhuanlan.zhihu.com/p/37701743

2021-07-20 14:52:26 49

原创 MYSQL中创建foreign key碰到的一个问题,待日后解决

创建一张表CREATE TABLE tmp(person int,id, int);

2021-07-08 17:31:08 90

原创 HBase学习笔记

HBase学习笔记全称Hadoop Database,是google Bigtable的开源实现1. HBase-组件构成Master:通常运行在NameNode上Master是集群的主节点,本质是一个进程负责管理元数据,如定期更新hbase::meta表分配与移动region保证集群的负载管理RegionServer,出现问题时进行故障转移region server负载region的合并与拆分负载数据的增删改查将MemStore中数据写到StoreFiles中检

2021-06-23 15:41:30 185

原创 各类型数据库基本概念

数据库基本概念结构化数据、非结构化数据、半结构化数据结构化数据是由二维表结构来逻辑表达和实现的数据,严格遵循数据格式和长度规范,也称为行数据特点:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的非结构化数据是指数据结构不规则或者不完整,没有任何预定义的数据模型,不方便用二维逻辑表来表现得数据(word文档、图片、视频音频等)半结构化数据介于结构化数据与非结构化数据的一种,虽然没有严格意义上的数据模型结构,但是包含相关标记,可以用来对记录和字段进行分层,常见

2021-06-23 11:27:29 240 1

原创 通过虚函数表调用虚函数与通过虚函数表

转载自https://blog.csdn.net/iicy266/article/details/11906807同时转载这样带来的安全性问题:https://blog.csdn.net/haoel/article/details/19480511、通过父类型的指针访问子类自己的虚函数2、访问non-public的虚函数

2021-05-13 22:29:41 112

原创 C++类内存分布,包含虚指针

首先类的内存空间大小,只与类中非静态的成员变量(int, char*)和虚函数指针个数有关,其中函数被存放到text区域,静态成员变量存放到.rodata区域,其实也就是数据区上面的只读存储区顺便提一下,类的所有实例化对象共享类的虚函数吧,虚函数表中存放的是虚函数的指针(也就是存放函数的地址),因此虚函数的每一项都是sizeof(pointer)的大小当一个类中有虚函数时,类的内存中首先会存放虚函数表的指针,其次才会存放类中的非静态成员变量class Aarrt{ int a = 1;

2021-05-13 22:25:27 587 10

原创 HTTPS连接过程以及数字证书的理解

HTTPS比HTTP协议多了加密的过程,因为HTTP在网络上传输是明文传输,明文数据会经过中间代理服务器、路由器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了,因此需要HTTPS协议进行加密。加密算法总体来说可以分为对称加密和非对称加密对称加密对称加密意思就是 客户端与服务器段拥有相同的密钥K,客户端发送时用K加密,服务器端用K解密。如果由服务器生成一个密钥并传输给浏览器,那在这个传输过程中密钥被别人劫持到手了,之后他就能用密钥解开双方传输的任何内容了。因此对称加密不行。

2021-05-08 12:36:02 777 2

转载 操作系统内存管理

每个进程创建的内存地址都是虚拟地址,操作系统使用了虚拟化技术,让进程觉得它拥有了大块可支配的内存的假象,操作系统拿到这个地址后会将它转变为真实的内存地址,从而拿到对应的信息。比如下面这段代码:#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]){ printf("location of code : %p\n", (void *)main); printf("lo

2021-04-30 11:03:19 68

原创 C++ 内存对齐

内存对齐的规则:1、第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。2、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部"最宽基本类型成员"的整数倍地址开始存储.(struct a里存有struct b,b里有char,int ,double等元素,那b应该从8的整数倍开始存储.)。3、在数据成员完成各自对齐之后,类(结构或联合)本身也要进行对齐,对齐将按照#pragma pa

2021-04-30 09:47:15 164

原创 C++ new申请空间失败的判断

C++ new默认申请空间失败是抛出异常的,而malloc申请失败默认是返回空指针方法1、try catch捕获异常try { int *p = new int[10000000000]; } catch (bad_alloc &e) { cout << e.what() << endl; }方法2强制new不抛出异常,这时候会返回空指针int *p = new (std::n

2021-04-29 14:48:50 1533

原创 给定一个包含 100 亿个无符号整数的大型文件,使用最多 1G 内存,对此文件进行排序

一个无符号数大小4B100亿个数大小为4*10^10B,一个G差不多是10^9B,因此差不多需要40G的内存,肯定无法同时加载进内存进行排序因此思路是将40G划分为的1000个文件,每个文件大小为40M,对每个文件内进行排序,之后建立一个全局的小根堆(维护capacity为1000)之后每次取小根堆顶i,写入总的文件,并取i对应文件的下一个数加入小根堆,重复以上过程http://www.javashuo.com/article/p-muxyfppx-g.html...

2021-04-23 20:17:31 418

原创 C++ 记住proirity_queue, sort函数中cmp的理解

自定义的sort, stable_sort,map,set,priority_queue等都需要传入自定义的比较函数不同的是,sort,statble_sort可以需要传入比较函数或仿函数map,set,priority_queue需要传入仿函数在定义自己的比较时,常常容易搞混对于比较函数,一句话 为true的放在前面对于priority_queue,大于为小根堆,小于为大根堆1、sort中比较函数此外sort中也可以穿仿函数,比方有个仿函数叫 struct cmp {};.

2021-04-19 10:58:39 386

原创 将ip地址存放到一个unsigned int中

描述:输入一个ip地址的字符串,将其存放到一个 unsigned int输入“12.5.34.90”做法:先将4个整数提取出来,从最右边也就是90,不断的压入到int的头部注意一定是先int右移,后将当前的位数置为头部代码如下:#include <iostream>#include <functional>#include <unordered_set>#include <string>#include <cstr.

2021-04-12 18:55:51 414

原创 对极几何 单应性矩阵好文汇总

https://stackoverflow.com/questions/35942095/opencv-strange-rotation-and-translation-matrices-from-decomposehomographymatstackoverflow上使用findHomography 以及decomposeHomographyMat使用的例子https://www.jianshu.com/p/b10d5bb7f58chttps://www.jianshu.com/p/fb.

2021-04-08 13:06:20 100

原创 1000瓶药水,一瓶有毒,用10只老鼠来判断到底是哪一瓶

1、方法1,二分搜索500 250 125 63 32 16 8 4 2 1假设毒性在一个小时才会发作,这样可以用10只老鼠来判断,但是在灌入250瓶的时候,必须等灌入500瓶的结果,来确定是哪250瓶,因此一共需要10只老鼠,需要10个小时2、方法2 位数法将瓶子编号,老鼠也编号那么n只老鼠,最大可以判断2^n瓶药水有没有毒比方 第7瓶药水编号是 0000000111,那么编号为0,1,2的老鼠喝这瓶这样每个老鼠喝多瓶药水,只需要1个小时就可以判断哪瓶药水有毒参考分析:比方

2021-04-04 16:45:15 9521

原创 打家劫舍问题汇总

打家劫舍问题总的来说就是相邻的数不能同时取问题1leetcode198这个问题就是从头到尾遍历一个数组,数组相邻的数不能同时取,求最后的最大值dp[i][0] = max(dp[i-1][0], dp[i-1][1])dp[i][1] = dp[i-1][0] + prices[i]问题2leetcode213这个问题描述的是数组的头尾也算是相邻,因此只要我们不同时取头尾就好,按照问题1的思路找prices(0, size()-1),和prices(1, size()).

2021-03-29 16:48:41 219

原创 从n个数中选择k个数

这是组合问题,组合问题有几种写法,且时间复杂度位O(n^2)1、暴力循环,适用于固定的k比方从7个数中找两个数int main(){ vector<int> nums{1, 2, 1, 1, 4, 6, 8}; sort(nums.begin(), nums.end()); int count = 0; for (int i = 0; i < nums.size(); ++i) { if (i > 0 &

2021-03-17 16:39:41 1381

原创 Hot100

115 给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 s = "rabbbit", t = "rabbit" 思路:dp[i][j]表示s[0~i] 与 t[0~j]有几种匹配结果 dp[i][j] = dp[i-1][j] //无论什么时候都可以将第i位删掉,去查看s[0/i-1]与t[0/j]的匹配 此外当第i位与第j位匹配的时候,还可以加入s[0/i-1] 和 t[0/j-1]的匹配情况 因此 dp[i][j] = dp[i-1]

2021-03-17 15:10:31 149

原创 placement new 和 allocator的一些理解

首先我们有一个概念,new操作会执行两部:申请内存和构造函数,也就是说new操作的申请空间和执行构造函数是绑定的,placement new操作(new(p)int)是在给定的p内存上执行构造函数。我理解的给定内存是 甭管你怎么搞到的这块内存,只要这块内存比要new的对象占用的内存大,就可以进行placement new那么给定内存p有几种方式呢静态存储区 栈空间 堆空间1、静态存储区上placement newclass A{public: A() : x(1) {

2021-03-14 11:33:54 214

原创 并查集判环

C风格的数组,你是无法知道它的大小的,只能自己去维护在栈上分配的数组可以通过sizeof来知道数组大小,而堆上分配的数组就没办法了int name[5];cout << sizeof(name) / sizeof(int) << endl; //sizeof(name)是整个数组的大小int *p = name;cout << sizeof(p) << endl;int *name2 = new int[5];cout <<.

2021-03-08 11:24:23 192

原创 字面常量字符串的一些思考

今天看Cherno的视频,发现const char* name = "www";char name[] = "qw";含义是不同的,第一行的意思是,我们只返回了一个指向字面值字符串内存的指针,这块内存是只读的,所以当我们即使将该指针转为char* 的,我们对内存种的内容进行更改,那也不一定会成功,因为这是一种未定义的行为(意思是C++标准也没说遇到这种情况该怎么做,完全取决于不同的编译器)像我现在使用的是minGW64编译器进行如下操作后const char *name = "123"

2021-03-08 09:42:25 99

原创 placement new 理解

两篇好文章博客园和CSDN基本上就是说placement new是指在指定内存上进行对象的构造,这个指定的内存可以堆,栈,静态存储区等等,用完之后要主动调用对象的析构函数,只是清除了这块内存种的内容,并没有释放空间。...

2021-03-07 21:22:29 115

原创 为什么说C++引入的强制类型转换比C风格的强制类型转换更安全?

我目前只体会到两种转换更安全,static_cast和dynamic_cast首先static_cast,static_cast只能在有 相互联系的类型 中进行相互转换,这个相互联系就很微妙(我也没去深究)第一种情况,double的指针和int的指针你觉的有关系嘛,虽然说double可以转为int,但是一个指向double的指针去指向int,是不是不太合理,static_cast也觉得不合理hhh可以看到static_cast阻止了这种转换,而C风格的强制转换并没有第二种,是类指针.

2021-03-07 17:06:02 435 1

原创 C++中stringsteam中的str(), clear(), eof(), rdbuf->in_avail()的用法,以及多次使用stringsteam的注意事项

今儿使用stringsteam可是遇到了一个大坑了先把坑贴上来int main(){ stringstream ss; int tmp = 0; ss << "1"; ss >> tmp; cout << tmp << endl; ss << "2"; ss >> tmp; cout << tmp << endl;};大家觉得这两次

2021-03-05 22:11:38 1782

原创 剑指offfer 43 (leetcode 233)整数中出现1的个数

这个题从想思路到实现再到debug,前后差不多用了1个小时时间,不过是因为昨晚十二点多做的,在碰到一种情况时脑子有点不清醒耽误了点时间。这题作为hard来说 我觉得有点不太够,自认为hard的题应该是那种算法设计的特别巧妙的题,我做这题更像是找规律,不过也可能是别的大神有严谨的数学推导,还是自己太菜了。找规律范围 1的个数 计算方法 0-9 1 只有1 10 - 19 11 十位上的1出现了10次 0-9个位上出现了1次

2021-02-04 11:12:16 110

原创 C++unordered_set 基本操作

遍历set#include <string>#include <iostream>#include <unordered_set>using namespace std;int main(){ unordered_set<string> set; set.insert("1"); set.insert("2"); set.insert("3"); set.insert("4"); unorde

2021-02-03 21:45:25 4011

原创 C++ string按照逗号分隔

除了普通的判断,之外使用stringstream代码string s1("1,2,3");stringstream ss(str);string s2("");while(getline(ss, s2, ',')) { cout << s2 << endl;}

2021-02-03 21:41:11 3481

原创 C++中stringstream如何判断流中是否为空

学习自 StackOverflow方法1:ss.rdbuf() -> in_avail()code:#include <sstream>#include <iostream>using namespace std;int main () { stringstream ss; ss << "12"; if (ss.rdbuf() -> in_avail() != 0) { cout <.

2021-02-03 19:20:50 4336 1

原创 GMM与EM算法的好文

CSDN:https://blog.csdn.net/jinping_shi/article/details/59613054/博客园:https://www.cnblogs.com/zhangchaoyang/articles/2624882.html知乎:https://zhuanlan.zhihu.com/p/30483076

2020-12-27 20:11:23 81

原创 胶囊网络理解 好文转载

先读这篇简单粗略的介绍简书再读这篇详细的介绍搜狐

2020-12-24 16:09:31 128 1

原创 残差网络的好文

转载微信转自知乎

2020-12-22 17:30:44 99

原创 pytorch中的DataParallel

转载自知乎https://zhuanlan.zhihu.com/p/102697821

2020-12-22 14:00:58 352

空空如也

空空如也

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

TA关注的人

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