- 博客(87)
- 资源 (5)
- 收藏
- 关注
原创 一文了解RoaringBitmap
大量数据检索问题10亿数据存储检索数据检索问题:给定一个长度为10 的int数组,例如:{1,2,3,4,5,6,7,8,9,10} 查找数字“9” 是否存在给定数组中。对于这样的问题直接进行数组遍历或者二分查找很容易就找到对应数字是否存在,但这是数据量很少的情况。计算一下数组占用存储空间:10个int数字4字节=40字节。同样的问题数组长度换成10亿int数组,占用空间10亿4字节=40亿字节=4000000000/1024/1024/1024=3.73GB,这样的空间占用内存无法支持只能存盘进行
2022-05-18 19:06:55 1478
原创 trim()或replace()不掉的空格是什么
背景:在开发过程中,偶尔会出现程序错误的情况,然后发现是因为在对url进行校验的时候url错误。查看url发现是因为url最后包含了一个空格,但是在最开始的时候已经对url进行前后空格的去除了,为什么还会出现这样的情况呢。不同的空格是什么?trim()还有replace()都不能替换掉的空格,这应该就不是一个空格吧,所以先把正常空格和这个“空格”的ascii码打印出来先看一下。打印出来是这样:结果:普通空格ascii就是32 那这个160是什么?借鉴博客:https://blog.csd
2021-11-05 11:57:45 988
原创 @Transactional 注解使用
一 功能1 做什么为了保证数据一致性、在异常情况下进行全部操作回滚,注解声明式事务管理,特别是基于注解的声明式事务管理,简单易用。2 原理声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。声明式事务最大的优点就是不需要通过编程的方式管理事务,这样就不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过基于@Transactional注解的方式),便可以将事务规则应
2021-10-26 16:27:32 224
原创 Mysql常见错误总结
1、java.sql.SQLException: The consensus follower is not allowed to to do current operation.原因:当前实例不允许当前执行的操作。多数为主备角色错误导致不可读、或不可写。解决: 自动修复,可能是主备集群之间调用错误,例如,写的时候写备,就会产生这样的问题,可以找DBA确认。...
2021-10-18 16:38:07 897
转载 mac触摸板手势
一个手指直接点击,类似Windows中鼠标左键功能,同时在苹果Safari等浏览器中,这个手势还支持快速查询功能;一个手指轻轻点击,可以选中目标;两个手指同时点击,类似Windows中鼠标右键功能;两个手指上下拖移滑动,即可实现翻页;两个手指分开或捏合,可以放大缩小图片、网页等内容;两个手指旋转,可以旋转图片等对象;两个手指从触控板右侧边缘向左滑动,可以调出通知窗口;两个手指在网页中左右滑动,可以推出或前进网页;三个手指左右滑动,可以在全屏应用桌相互切换;三个手指向上滑动,可以打开所有正在
2021-06-28 20:31:55 374
原创 SwitchHost无法切换环境
本来写完代码准备切一下测试环境验证一下,用switchHost的时候发现就是点不了环境切换。后面找了一下解决方法,就是host文件不知道为什么没了。解决方法就是在目录:C:\Windows\System32\drivers\etc下创建一个host文件直接该目录下复制一个改名字为hosts就行了,文件内容清空...
2021-04-15 15:39:18 526
原创 HIve 删除乱码分区
一,hive删除分区方式alter table table_name drop partition (day>='2021-03-15');二,删除分区部分数据#按条件查询出数据再写入同一个分区insert overwrite table table_name select * from table_name where day='2021-03-15' and id >= 10;三,删除乱码分区对于误写入了乱码分区 例如:分区信息:show partitions table
2021-03-16 16:59:49 9826
转载 Hive架构及Hive SQL的执行流程
1、Hive产生背景MapReduce编程的不便性HDFS上的文件缺少Schema(表名,名称,ID等,为数据库对象的集合)2、Hive是什么Hive的使用场景是什么?基于Hadoop做一些数据清洗啊(ETL)、报表啊、数据分析可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后在Hadoop执行。由Facebook开源,最初用于解决海量结构化的日志数据统计问题构建在Hadoop之上的数据仓库Hive定义了一种
2021-03-12 00:16:58 916
原创 column length too big for column ‘param_value‘ (max = 21845) use blob or text instead
varchar(n):n 指可存储字符长度 mysql在不同字符集下一个字符的字节长度不同,所以选择不同字符集可存储的字符长度不同。varchar 可存储最大字节长度是:65535字节对于latin字符集下,因为一个字符占一个字节,所以M的最大值为65535(但实际只有65532);对于gbk字符集,因为一个字符占两个字节,所以M的最大值为32767;对于utf8字符集,因为一个字符占两到三个字节,所以M的最大值为21845。...
2020-10-20 17:48:02 691
原创 Mysql高级特性-表分区
一 概述分区表是一个独立的逻辑表,但是底层由多个物理子表组成。实现分区的代码实际上是对一组底层表的句柄对象(HandlerObject)的封装。对分区表的请求,都会通过句柄对象转化成对存储引擎的接口调用。所以分区对于SQL层来说是一个完全封装底层实现的黑盒子,对应用是透明的,但是从底层的文件系统来看就很容易发现,每一个分区表都有一个使用#分隔命名的表文件。分区的目的是将相关数据存放在一起,在创建表时使用partition by子句定义分区数据,这样在使用mysql数据的时候,优化器会根据查询条件选择对
2020-10-10 15:18:55 283
原创 java对象赋值、深拷贝与浅拷贝
Java 应用当中将一个对象的值给到一个新的对象可以通过直接赋值和拷贝的方式进行,但两种方式我们应该清除他们之间的区别;直接赋值(引用赋值)定义一个对象public class User { private String name; private Integer age; private String sex;}给新对象赋值并修改新对象: public static void main(String[] args){ User user1 = n
2020-10-09 17:46:43 7201 4
原创 Mysql(1)数据结构
1 mysql使用的数据结构(B+树)几个特点 :1.非叶子节点不存储data,只存储索引,因此 可以存储更多的索引2.叶子节点包含所有的索引+数据3.叶子节点使用指针链接,提高区间访问性能举例:查询30,只需要三次磁盘io2 相似数据结构(二叉树,红黑树,b-树)2.1 二叉树定义:只有两个分叉的树。为度不超过2的树查询效率:查23,三次磁盘io如果使用二叉树作为mysql存储数据结构,定义一个自增主键的数据库表根据二叉树增加原则,造成数据存储类似于链表,无法起到提升效率的作用
2020-09-06 11:32:26 260
原创 动态规划:买股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。示例 2:
2020-08-28 11:46:11 158
原创 JAVA并发包
一 Java提供并发包整体API图来自:http://www.blogjava.net/xylz/archive/2010/06/30/324915.html一、描述线程的类:Runable和Thread都属于java.lang包二、内置锁synchronized属于jvm关键字,内置条件队列操作接口Object.wait()/notify()/notifyAll()属于java.lang包二、提供内存可见性和防止指令重排的volatile属于jvm关键字java.util.concurren
2020-08-14 08:59:22 642
原创 Java内存模型
1,cpu多核并发缓存架构cpu与内存交互过程2.java内存模型Java 线程内存模型3.Java内存模型的8种原子操作原子操作:不可被中断的一个或一系列操作lock(锁定):作用于主内存,它把一个变量标记为一条线程独占状态;read(读取):作用于主内存,它把变量值从主内存传送到线程的工作内存中,以便随后的load动作使用;load(载入):作用于工作内存,它把read操作的值放入工作内存中的变量副本中;use(使用):作用于工作内存,它把工作内存中的值传递给执行引擎,每当虚拟机遇
2020-07-30 23:52:34 119
转载 jdk安装配置
https://blog.csdn.net/qq_43655622/article/details/97611476?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.compa
2020-07-13 23:39:42 139
原创 0-1背包问题理解
背包问题我们可以把背包问题分成3种不同的子问题:0-1背包问题、完全背包和多重背包问题,剩下一些都是这3种的变形以及组合。01背包有 N 件物品和一个容量为 V 的背包,第 i 件物品消耗的容量为 Ci,价值为 Wi,求解放入哪些物品可以使得背包中总价值最大。完全背包有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用,第 i 件物品消耗的容量为 Ci,价值为 Wi,求解放入哪些物品可以使得背包中总价值最大。多重背包有N种物品和一个容量为V的背包,第 i 种物品最多有 Mi 件可用,
2020-07-02 23:59:55 956
转载 jdk8
https://blog.csdn.net/wpf719971425/article/details/78634578?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
2020-06-11 23:21:22 385
原创 Redis可视化工具Another Redis DeskTop Manager
Another Redis DeskTop在使用redis的时候,需要进行可视化的查看,可以使用这个客户端在使用redis的时候,需要进行可视化的查看,可以使用这个客户端简单记录一下防止后面还要再找:下载地址:https://gitee.com/qishibo/AnotherRedisDesktopManager/releases直接下载一个exe文件安装就可以使用了。使用操作如下:...
2020-04-21 14:44:45 45534 8
原创 Mybatis中resultMap与resultType的区别
在使用mybatis进行数据库查询的时候,涉及到查询出来的数据的映射返回,这样的映射返回就有两种方式可以实现。一是:使用resultMap,二是:resultType两者的区别是:使用reusltType是将查询出来的数据传给具体的自己定义的对象,赋值给对应的字段属性resultMap一般是在mapper.xml文件里面自行定义的map。进行具体的映射。...
2020-03-17 20:20:47 314
原创 在安装Elasticsearch-head遇到问题小结
1.使用npm install命令的时候报错Error: CERT_UNTRUSTED解决方法:npm config set strict-ssl false2.使用vim编辑器搜索文档操作在normal模式下“/+你要搜索的内容”回车,n转到下一个匹配项...
2020-03-16 17:17:29 272
原创 ES启动外网访问
修改ES安装目录下的config/elasticsearch.yum文件,如下网上有很多说改成network.host: 0.0.0.0或者network.host:本地ip试了都不行
2020-03-16 15:32:26 1482
原创 Hive概览
一,Hadoop开源的分布式计算平台,核心是分布式文件系统”HDFS(Hodoop Distributed Filesystem )“和分布式计算模型:MapReduce。HDFS:进行大数据存储,分布式文件系统,具有高容错性特点,因此可以设计部署再低廉的硬件设施上面,通过提高吞吐率来访问数据,适合拥有超大数据集的应用MapReduce:进行大数据运算,在存储了大量数据的基础上,如何将这...
2020-03-11 20:20:04 144
原创 Mybatis的 #{}与${}区别
在mybatis查询时,参数传递方式可以是#{}或者是$ {}。两者的区别是:一, #{}传参时会将传入参数当成是一个字符串,为这个字符串加上引号。而$ {}则不会加引号 例:select * from user where name = #{name} //如果传的name是"小明"对应的sql执行的语句就是select * from user where name = "小明"...
2020-03-10 19:52:41 208
原创 List.add()方法使用时被覆盖
代码如下:public class AddExecption {public static void main(String[] args){ List<String> list = new ArrayList<>(); String aa = new String(); User user = new User(); List&...
2019-10-30 11:10:23 1347
原创 方差和标准差
方差方差用来衡量一段数据的离散程度,再概率论和统计学中有不同的定义,概率论:概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度统计学:统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数方差计算公式:标准差标准差计算公式:...
2019-10-21 20:56:25 719
原创 Redis高可用方案
要做到redis的高可用,可以从以下几个方面实现1 持久化Redis持久化定义:redis是一个内存数据库,所以在服务器进程退出之后,redis数据库内的数据就会丢失。持久化就是保证服务重启后依然保证数据不丢失,持久化将redis在内存中的数据通过持久化方式存入磁盘。Redis持久化方式分为两种:RDB持久化和AOF持久化。1.1 RDB持久化RDB持久化根据一下方式实现:配置规则: ...
2019-10-10 14:23:48 380
原创 Java 基础知识(3)(抽象类/IO/异常)
1 抽象类抽象: 实际存在的,具体的现实生活中的事务叫做对象,而抽象就是将他们的共有信息提取出来做一个描述。比如说:“猫” 是一个对象,具体存在。“ 动物”,”宠物“等等就是猫可以抽象出来的东西,而抽象出来的东西又可以代表一个部分,你可以理解抽象出来的东西,但是不能用来具体对应上现实存在的事物。1.1抽象类与普通类(1) 抽象不是具体的概念,抽象类不能被实例化,而普通类可以进行实例化调用。...
2019-09-28 21:10:42 164
原创 Java基础知识(2)(hashcode/final/round/String)
1 hashCode()和equals()euqals()和hashCode()是Obiect类的两个方法,Object类是所有类的父类,所有的对象都实现了Object()类中的方法。1.1 equals()Object的原生equals()方法定义是:public boolean equals(Object obj){ return (this == obj)}就是对对象的地址值...
2019-09-23 22:01:16 174
原创 Java基础问题(1)(jdk/jre/equals)
1.JDK和JRE1.1 JDK(Java development kit)Java开发工具包,面向开发人员使用的SDK(software development kit)包括库函数,编译程序等,JDK包含JRE,JRE包含JVM。1.1 JRE(Java runtime environment)Java运行环境,在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里...
2019-09-20 11:49:35 112
原创 Java的instanceof用法
instanceof的作用是判断左面的对象是否是右面类的实例1.instanceof是一个双目运算符,该运算符与“==”,“>”等类似,该运算符左面是一个实例化的对象,右面是类。2.当左面的对象是右面类创建的对象时,既是左面的对象是右面类的实例,返回true,否则返回false。示例:Animal类:public class Animal {public String weigh...
2019-09-12 11:00:41 473
原创 win10快速搭建vue开发环境并使用element ui
1,环境1.1 node.js安装下载对应你系统的Node.js版本:https://nodejs.org/en/download/选安装目录进行安装(安装过程就是全程next,注意不要取消自动配置环境)测试:win+R 输入cmd 进入控制台使用“node -v”,“npm -v”这样就安装成功了。1.2 cnpm安装npm install -g cnpm 3 安...
2019-09-10 11:50:32 892
原创 Java多线程实现-implement Runnable和extend Thread
Java实现线程的方法有两种分别是:/*** @author LiuTaiyi* @description implements Runnable* @date 2019/8/22*/ public class testThread implements Runnable { @Override public void run() { System.out.printl...
2019-08-22 16:51:59 895
原创 java 进程与线程
1,进程对于操作系统来说,一个任务就是一个进程。例如:打开一个浏览器既是一个进程。多进程多余单核cpu来说,执行多任务是顺序执行的,那么怎么实现多进程呢。就是操作系统轮流地让多个任务轮流执行,但是由于轮流执行的时间非常短,所以就感觉多个进程都在同时工作。对于多核cpu才能真正地并行执行多任务。2,线程在同一个进程内部,也会有很多事要做,就需要同时运行多个子任务。这些进程的子任务就叫做线程...
2019-08-22 14:36:05 109
原创 git获取公钥私钥
1,设置git用户名和email git config --global user.name "username"//你的用户名 git config --global user.email "email"//你要设置的email2,如何查看你的用户名和密码 git config user.name git config user.email3,设置秘钥ssh生成(1)查看是否已...
2019-08-20 21:39:09 1994
原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
今天在写接口的时候报这个错,一直没有解决说一下争对这个错误有什么解决方法:一般的原因是:Mapper 接口定义和mapper.xml文件的定义对应不上,这是一般只要去检查"包名","namespace"要是mapper接口的地址,函数名能否对应上但是。。。。。。我的错都不是这些,然后发现我的mapper.xml文件没有后缀 ”.xml“???...
2019-08-19 15:16:18 144
原创 使用@ComponentScan注释扫描多个包
当使用@ComponentScan来进行包扫描时当只扫描一个包可写为@ComponentScan("包名")例如:@ComponentScan("com.example.service.rpc")当扫描的包是多个时,应当使用数组的形式例如:@ComponentScan({"com.example.service.rpc","com.example.web.controller"})...
2019-08-09 20:50:50 29458 4
原创 spring boot 整合swagger2
**swagger **:在线接口管理工具,服务端将接口展示在swagger上面,方便前端人员对接开发。本文针对其好处,记录如何在spring boot项目里面将swagger2 整合。1,pom依赖:在pom中导入如下依赖 <dependency> <groupId>io.springfox</groupId> <artifactId&g...
2019-08-01 20:35:47 166
黑盒测试 Predate
2018-04-10
gradle-4.1-all.zip
2018-04-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人