![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
猫球球
一年测试,一年前端,一年java。
最后决定在java的路上蹒跚前行。
展开
-
【JAVA实战】手写代码生成器-根据mysql表结构生成实体类
项目已上传github:https://github.com/seraphapple/mysql-code-generator这个应该属于一个入门项目吧,因为之前一直没做过,就一直想着有空了要先不上这一课,不然总觉得缺点什么。我的实现方案其实很简单,先通过驱动和mysql数据库获取到表结构信息,再根据表名和字段名进行转换成帕斯卡命名和驼峰命名来适配类名和成员变量名,最后通过freeM...原创 2019-03-27 18:24:16 · 2697 阅读 · 2 评论 -
【JAVA】HashSet和TreeSet如何保证存入元素不会重复?
Set是一种数据集合。它与List同样继承与Collection接口。它与Collection接口中的方法基本一致,并没有对Collection接口进行功能进行功能上的扩充,只是比Collection接口更严格了。与List不同的是,Set中的元素是无无需的,并且都以某种规则保证存入的元素不会出现重复。它的特点也就是:1. 元素不会出现重复。2. 元素是无序的。(存取无序)3....原创 2018-11-06 16:03:41 · 3005 阅读 · 0 评论 -
【JAVA】java数据存储-基础类型,对象和字符串
总所周知,java是一种面向对象的程序设计语言。在java里,一切都被视为对象,因此可以采用单一固定的语法。尽管一切都看作对象,但是操纵的标识符实际上是对象的一个“引用”,这个引用指向数据实际存放的地址。而我们的数据被存储到什么地方呢?特别是内存是怎么分配的呢?我们有个不同的地方可以存储数据(以下内容摘自《java编程思想》:1. 寄存器。这里是最快的存储区,因为它位于不同于其他存储区的地...原创 2018-11-01 21:45:09 · 924 阅读 · 0 评论 -
【转载】springboot过滤器和拦截器的实现和区别
原问地址为:https://segmentfault.com/a/1190000012072060前言springmvc中有两种很普遍的AOP实现:1.过滤器(Filter)2.拦截器(Interceptor)本篇面对的是一些刚接触springboot的人群所以主要讲解filter和interceptor的简单实现和它们之间到底有什么区别(一些复杂的功能我会之后发出文章,请记得...转载 2018-09-06 17:34:00 · 115 阅读 · 0 评论 -
【疑难杂症】百万级数据跨表数据统计和计算
产品提交了一个方案,要做一个以我们的表和职位表为基础,统计计算每个职位、地区、薪资区间、工作年限、学历的数据数量,并计算平均薪资,和总数占比的统计信息产品。逻辑并不复杂,比较困难的地方在于,这两张表都是我们业务的核心表,数据量庞大,其中简历表大概有180w可用数据。更困难的是,学历和工作年限这两个数据并不在简历表上而在个人信息表上。这就疯了,个人信息表起码有3000w的数据,如果一条一条组装,...原创 2018-08-24 15:11:14 · 1306 阅读 · 0 评论 -
【疑难杂症】SourceTree仓库为无效源Authentication failed
今天帮小学妹拉代码,我们的代码是放在git仓库上的,一般用命令行和用图形化软件拉都可以,权限也设置了没问题。但是不知道这次为什么就一直报Authentication failed,连用户名和密码都没有让输入,直接就说仓库无效了。解决方案:因为小学妹用的是自己系统安装的git 而不是sourceTree内部的git,因此出现了这个问题,把git切换成内部的git就可以使用了。...原创 2018-08-31 12:50:52 · 2705 阅读 · 4 评论 -
【阿里云opensearch】如何在opensearch配置一对多的数据结构
阿里云的opensearch服务本身是只支持主表N对1的结构,但是并不支持1对N的结构。换而言之就是多条主表记录可以对应单条辅表记录,但是如果一条主表记录对应多条主表记录就会出问题。比如多个商品可以对应同一个品牌,那么我们就必须用商品来做主表,而不能用品牌来做主表。如果一条物品有进仓和出仓两条记录,我们是不能用进出仓记录来做附表的,但如果此时又有这样的需求,那么我们应该怎么办呢?在我们的工作中...原创 2018-08-19 17:45:33 · 2001 阅读 · 1 评论 -
【VUE】easytable单元格编辑和单元格内嵌套组件
老大提出了一个一个设想,我们编辑记录的时候就不要打开弹框了,直接在表格里编辑吧~~~(╯‵□′)╯︵┻━┻ 让一个后端java开发工程师来写后台管理页面已经很不容易了,这这这这是人能提出的要求吗!!老娘已经不做前端hin!多!年!了!呀!前端的语法我都记不囫囵了!但是老大是不可能不是人的,作为一只猫球球只能含泪在老大的殷切嘱咐下奋力的滚动起来。1. 实现单元格编辑这个和前端同学们咨...原创 2018-08-01 22:46:51 · 10180 阅读 · 6 评论 -
【mahout笔记】初步理解itemCF(基于物品的推荐算法)在mahout的实现
之前分析了基于用户的CF的原理。今天尝试调试一下基于物品的CF算法。再次声明,本文部分内容是参考:https://blog.csdn.net/wolvesqun/article/details/52757772感谢大佬的整理为我指明方向。基于物品的CF的原理和基于用户的CF类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏...原创 2018-07-28 11:46:48 · 2378 阅读 · 4 评论 -
【mahout笔记】初步理解KNN Linear interpolation item–based(基于物品的knn算法)在mahout的实现
参考大神的博客:https://blog.csdn.net/wolvesqun/article/details/52757772以下为大佬博客对KNN Linear interpolation的介绍:这个算法在mahout-0.8版本中,已经被@Deprecated。算法来自论文:This algorithm is based in the paper of Robert M. Be...原创 2018-08-05 18:14:22 · 1269 阅读 · 0 评论 -
【数据结构】数据结构探索(二) —— 二叉树(Binary Tree)
我们对树这一种结构有了入门的了解以后,我们就要开始研究最重要的树结构即二叉搜素树。二叉树(Binary Tree)的定义二叉树是(n≥0 )数据元素的有限集。它或为空集(n=0),或者含有唯一的一个元素称为根结点,其余的元素被分为两个互不相交的有限集合。每个集合本身又是一棵二叉树,称为根结点的左子树和右子树。二叉树(binary tree)是树形结构的另一个重要类型。二叉树的每个结...原创 2018-11-09 14:12:08 · 252 阅读 · 0 评论 -
【数据结构】数据结构探索(三) —— 二叉搜索树(Binary Search Tree)
部分内容引自大佬博客《深入理解二叉搜索树(BST)》https://blog.csdn.net/u013405574/article/details/51058133二叉搜索树是一种有顺序的二叉树,它具有以下特征:1.每个元素有一个关键字,并且任意两个元素的关键字都不同;因此所有的关键字都是唯一的。 2.在根节点的左子树中,元素的关键字(如果有的话)都小于根节点的关键字。 3.在根节点...原创 2018-11-09 15:18:58 · 250 阅读 · 0 评论 -
【数据结构】数据结构探索(四)—— AVL树(平衡二叉树)
AVL树又称平衡二叉搜索树,它能保证二叉树高度相对平衡,尽量降低二叉树的高度,提高搜索效率。它具有以下特点:1. 左子树和右子树的高度之差的绝对值不超过1 2. 树中的每个左子树和右子树都是AVL树3. 每个节点都有一个平衡因子(balance factor--bf),任一节点的平衡因子是-1,0,1。(每个节点的平衡因子等于右子树的高度减去左子 4. 树的高度 ) .AVL树出了...原创 2018-11-09 18:52:27 · 321 阅读 · 0 评论 -
【JAVA】使用java生成文件并输出
感觉这篇博客记录了我重复造轮子的过程,这显而易见是一个很多人实现过的功能呢。写这段代码主要是为了在文件中批量生成命令文件,也就是个文本生成器,用机器生成命令的好处很明显——人绝不可能手打1000多行代码,哪怕是复制黏贴主要部分,并且对一些参数进行修改。但是对机器来说循环个1000次,无论是怎么样的老爷机都可以轻松做到(还记得我初学变成的第一个作业就是循环输出1到1000,但是用的是学校公共机房最差...原创 2019-03-18 21:23:51 · 11624 阅读 · 0 评论 -
【JAVA】HashMap源码探索
hashmap的源码在java的面试中一直是一个很关键的部分,在搜索面试题的时候我们经常会看到类似这样的题目:hashmap的底层数据结构是什么? 描述一下hashmap put方法的过程?很多时候我们好像都只顾着使用它,而不清楚底层实现,还有的时候我们知道一鳞半爪,但是表示不出来具体的内容。今天我准备从源码理一遍,HashMap的实现细节。 一. 什么是Map? 根...原创 2018-11-30 23:57:18 · 646 阅读 · 2 评论 -
【疑难杂症】【mybatis】mybatis字符串对比问题
这个问题其实之前遇到过,但是当时没有记录下来,昨天又遇到了,正好记一下。昨天的场景如下:select columnfrom table where id>0<if test="status == '1'"> and condition1</if><if test="status == '2'"> and conditi...原创 2018-11-21 12:45:36 · 764 阅读 · 1 评论 -
【数据结构】数据结构探索(一) —— 树的综述
最近研究了mysql的索引结果,mysql的索引结果是使用了b+ tree的数据结构,了解了结构以后,对索引的功能和使用的一些规则就有了更加深入的了解,原来只是死记硬背规则和策略,现在感觉能知道背后到底是因为什么。之后因为看到了Set对象的元素存入方式,TreeSet使用的是红黑树存储,来保证元素不会重复,我大概能理解他的实现原理,但我回头一想居然发现我对红黑树的定义已经完全想不起来了。所以准...原创 2018-11-08 23:51:15 · 339 阅读 · 0 评论 -
【mysql】mysql索引探索(四)-- 整理一下索引的其他知识点
1. 索引列的数据长度能少则少。(能节省空间,长度越少就说名关键字能保存的越多)2. 索引不一定是越多越好越全越好,一定是建合适。(因为需要维护,插入的时候需要所有索引都维护到)3. 匹配列前缀可用到索引 like 999%, like %9999%和like %9999是无法使用索引的。(最左匹配原则)4. where条件中 not in 和<>操作无法使用索引。(同上)...原创 2018-11-08 12:56:20 · 236 阅读 · 0 评论 -
【mysql】mysql索引探索(三)-- 高性能使用索引的策略
既然我们已经对索引的本质有所了解,那么我们就应该来讨论如何高性能的使用引擎。1. 列的离散性越高,选择性越好。列的离散性是这样定义的:count(discount col):count(col),也就是不同的列数比列的总数。这个数值越大说明列的离散型就越好。如果用离散性很低的列,比如性别来做索引,你会发现大家都只有两种值(男和女),这样其实你根本不知道应该往那条路走,区别度太低,选择性...原创 2018-11-08 12:41:31 · 402 阅读 · 0 评论 -
【mysql】mysql索引探索(二)-- B+Tree索引在Mysql中的体现形式
我们都知道在mysql中有两种常用的引擎,MyISAM和InnoDB,这两种引擎是不一样的。但是这两种索引如何不一样呢?MyISAMmyisam引擎的表会生成三个文件,.frm,.MYD 和 .MYI.其中.frm里面存储了表定义文件,比如表有哪些字段,字段是如何修饰的。然后.MYD会是一个数据文件,也就是下图右边的图,你的数据行数什么的全都保存在.MYD文件中。所有的索引全部...原创 2018-11-07 23:20:38 · 254 阅读 · 0 评论 -
【mysql】mysql索引探索(一)-- 为什么使用B+ Tree作为索引的结构
什么是索引在百度上查找索引的时候,很多回答会是:数据库就像是一本书,索引就像是他的目录,我们通过索引可以很快的定位到我们要找的数据。这话说的通俗易懂,一点没错。但是如果要说的更确切一点,那么应该这么表达:索引是为了加速对表中数据行检索而创建的一种分散的数据结构。首先索引的存在是为了加速对表中数据行的检索,其次他是分散的,最后他是一种数据结构。所以我们说正确的创建索引是提升数据库...原创 2018-11-07 22:31:58 · 3084 阅读 · 2 评论 -
【mahout笔记】初步理解slopeOne在mahout的实现
参考大神的博客:https://blog.csdn.net/wolvesqun/article/details/52757772以下为大佬博客对slopeOne的介绍:这个算法在mahout-0.8版本中,已经被@Deprecated。SlopeOne是一种简单高效的协同过滤算法。通过均差计算进行评分.SlopeOne论文下载(PDF)1)举例说明:用户X,Y,Z,对于物品...原创 2018-07-31 13:34:48 · 630 阅读 · 5 评论 -
【转】面向对象三大基本特性,五大基本原则
收藏转自:https://www.cnblogs.com/hnrainll/archive/2012/09/18/2690846.html一切权利归属于原作者大大。面向对象三大基本特性,五大基本原则透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.三大特性是:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者...转载 2018-07-27 12:13:31 · 132 阅读 · 0 评论 -
【学习笔记】查询性能优化:重构查询方式
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。在优化有问题的查询时,目标应该是找一个更优的方法获得实际需要的结果——而不一定总是需要从mysql获得一模一样的结果集。有时候可以将查询转换一种写法让其返回一样的记过的但是性能更好。但也可以通过修改应用代码,用另一种方式完成查询,最终达到一样的目的。一个复杂查询还是多个简单查询设原创 2017-05-02 17:49:36 · 649 阅读 · 0 评论 -
【学习笔记】mysql创建高性能索引(一)-索引基础
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。 索引有很多种类型,可以为不同的场景提供更好的性能。在MYSQL中,索引实在存储引擎层而不是服务器层实现的。不同的索引种类也有不同的优缺点:B-Tree索引当我们谈论索引的时候,如果没有特别指明类型,那多半说的是B-TREE索引,它使用B-Tree数据结构来存储数据(实际上很多存储引擎用的是B+Tr...原创 2017-04-09 19:47:20 · 334 阅读 · 0 评论 -
【学习笔记】范式与反范式
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。在对比这两者之前,首先我们需要温习一下范式和反范式的定义。范式定义:百度百科地址-http://baike.baidu.com/link?url=mhTRJ8KmzzT_cCIoIEKF_TznlLaBGvEaEk3LCavoK-bLh9lO0etcJSnX05Zmk8iwgKW8FUh原创 2017-04-09 18:10:29 · 442 阅读 · 0 评论 -
【学习笔记】mysql schema设计中的陷阱
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。太多的列mysql的存储引擎API工作时需要再服务器层和存储引擎层之间通过行缓冲格式拷贝数据,然后再服务器层将缓冲的内容解码成各个列。从行缓冲中将编码过的列转换成行数据结构的操作代价非常高。太多的关联所谓的“实体-属性-值”(EAV)设计模式是一个常见的糟糕的设计模式,尤其是原创 2017-04-09 17:33:15 · 320 阅读 · 0 评论 -
【学习笔记】选择标识符
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。为标识列选择合适的数据类型非常重要。一般来说更可能用标识列与其他值进行比较(例如股关联操作中),或者通过标识列寻找其他列。标志列也可能在另外的表中作为外键使用,所以为标识列选择数据类型时,应该选择跟关联表中的对应列一样的类型。整数类型通常是标识列最好的选择,因为它们很快并且可以适用AUT原创 2017-04-09 17:12:15 · 463 阅读 · 0 评论 -
【学习笔记】mysql中的数据类型(二)
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。日期和时间类型mysql可以适用许多类型来保存日期和时间值,例如YEAR和DATE。mysql能存储的最小时间粒度为秒(MariaDB支持微秒级别的时间类型)。但是mysql可以适用微秒级别的粒度进行临时运算。DATETIME和TIMESTAMP是mysql提供的两种相似的日期累原创 2017-04-09 16:35:13 · 430 阅读 · 0 评论 -
【学习笔记】mysql中的数据类型(一)
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。整数类型mysql中可用的整数类型有以下几种:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT,分别使用9,16,24,32,64位存储空间。他们可以存储的值的范围是从-2的n-1次方到2的n-1次方-1,其中N是存储空间的位数。整数类型可选的uns原创 2017-04-09 15:00:33 · 511 阅读 · 0 评论 -
【学习笔记】选择优化数据类型的原则
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。mysql支持非常多的数据类型,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单原则都有助于做出更好的选择:1. 更小的通常更好;一般情况下,应该尽量使用可以正确存储数据的最小数据类型(例如只要存0~200, tinyint unsigned更好原创 2017-04-08 18:09:39 · 674 阅读 · 0 评论 -
【学习笔记】《高性能MYSQL》对性能优化定义
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。在《高性能mysql》中将西能定义为完成某件任务所需要的时间度量,换句话说,性能即响应时间。按照这个定义,我们通过任务和时间而不是资源来测量性能。原因是数据库服务器的目的是执行SQL语句,所以它关注的任务是查询或者语句,如SELECT、UPDATE、DELETE等。数据库服务器的性能用查询的响应原创 2017-04-08 16:59:14 · 406 阅读 · 0 评论 -
【学习笔记】mysql的查询状态
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。对于一个mysql连接,或者说一个线程,任何时刻都有一个状态,该状态表示了mysql当前正在做什么。有很多种方式能查看当前的状态,最简单的是使用show full processlist命令(该命令返回结果中的command列就表示当前的状态。)在一个查询的生命周期中,状态会变化很多次。my原创 2017-05-02 18:32:05 · 490 阅读 · 0 评论 -
【学习笔记】mysql查询执行的基础
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。mysql执行一个查询的过程,到底做了什么? 1. 客户端发哦送一条查询给服务器。2. 服务器先检查查询缓存,如果命中缓存,则理科返回存储在缓存中的记过。否则进入下一阶段。3. 服务器进行SQL解析,预处理,再由优化器生成对应的执行计划。4. MY原创 2017-05-04 14:19:57 · 1010 阅读 · 0 评论 -
【学习笔记】mysql查询优化器的局限性
本文属于读书笔记,大部分内容摘抄于《高性能MYSQL》,摘抄内容版权属于原作者。mysql的万能“嵌套循环”并不是对每种查询都是最优的。不过还好,mysql查询优化器只对少部分查询不适用,而且我们往往可以通过改写查询让mysql高效的完成工作。而5.6以后会消除很多mysql原本的限制,让更多的查询能够以尽可能高的效率完成。关联子查询mysql的子查询实现的是很糟糕原创 2017-05-04 16:57:14 · 493 阅读 · 0 评论 -
【mahout笔记】初步理解userCF(基于用户的推荐算法)在mahout的实现
昨天尝试在java中搭建了一个mahout的小demo,实现的就是基于用户的推荐算法。代码如下(更多代码和测试数据库)参见前一篇:public class RecommendTest { final static int NEIGHBORHOOD_NUM = 2; final static int RECOMMENDER_NUM = 3; public static...原创 2018-07-25 17:02:32 · 1981 阅读 · 6 评论 -
【学习笔记】ReentrantLock的一些自有方法(查询为主)
1. 设定公平锁或者非公平锁Lock lock = new ReentrantLock(isFair);// isFair is Boolean2. int getHoldCount():查询当前线程保持此锁定的个数,也就是调用lock()方法的次数。3. int getQueueLength() : 返回正等待获取此锁定的线程估计数。原创 2017-10-28 18:12:09 · 219 阅读 · 0 评论 -
【Java实践】十二小球天平三次称重问题
十二个小球用天平三次称重找出其中唯一一个质量不同(或轻或重)的小球,用java代码实现。思路:将十二个小球分别标记为A,B,C,D,E,F,G,H,I,J,K,L,将它们以四个为一组分为三组也就是:第一组:ABCD;第二组:EFGH;第三组:IJKL。首先我们考虑将第一组和第二组放置在天平两端进行称重(第一次称重),根据称重的结果可分为两种情况:相等和不原创 2017-09-12 11:02:49 · 5314 阅读 · 1 评论 -
【学习笔记】python循环语句
本文是学习笔记,大量内容摘抄自http://www.runoob.com/python/python-basic-syntax.html,版权归原作者所有和其他的程序语言一样,python也提供了for和while两种(必须注意的是,在python中没有do..while语句)。while循环python编程中,while语句用于循环执行程序,即原创 2017-05-30 17:05:14 · 798 阅读 · 0 评论 -
【学习笔记】python条件语句
本文是学习笔记,大量内容摘抄自http://www.runoob.com/python/python-basic-syntax.html,版权归原作者所有Python条件语句是通过一条或多条的语句执行结果(true或者false)来决定执行得代码块,这点和其他的计算机程序语言并没有什么不同,从逻辑上并不难理解。python程序语言指定任何非0和非空(null原创 2017-05-30 16:45:47 · 246 阅读 · 0 评论