自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猫球球的博客

一只蹒跚而行的菜鸡

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

原创 【JAVA】如何可以通过反射获取方法参数名

在javac 执行install的时候加上参数-parameters,就可以在反射获取到类的时候顺便获取到方法的参数名了。

2019-07-27 14:39:59 1155

原创 【工具】Tmux使用笔记

以前做测试的时候就觉得tmux和screen这种分屏工具是命令行神器,但是因为长期脱离命令行开发的环境,所以就基本上把这项技能给忘了,现在也就大概整理一下使用方法。安装使用brew 轻松安装brew install tmux基本概念在tmux中,session包括一个或者多个window,window包括一个或者多个pane,这三者的关系如下图所示:Session:...

2019-04-03 13:58:12 371

原创 【JAVA实战】手写代码生成器-根据mysql表结构生成实体类

项目已上传github:https://github.com/seraphapple/mysql-code-generator这个应该属于一个入门项目吧,因为之前一直没做过,就一直想着有空了要先不上这一课,不然总觉得缺点什么。我的实现方案其实很简单,先通过驱动和mysql数据库获取到表结构信息,再根据表名和字段名进行转换成帕斯卡命名和驼峰命名来适配类名和成员变量名,最后通过freeM...

2019-03-27 18:24:16 2681 2

原创 【JAVA】使用java生成文件并输出

感觉这篇博客记录了我重复造轮子的过程,这显而易见是一个很多人实现过的功能呢。写这段代码主要是为了在文件中批量生成命令文件,也就是个文本生成器,用机器生成命令的好处很明显——人绝不可能手打1000多行代码,哪怕是复制黏贴主要部分,并且对一些参数进行修改。但是对机器来说循环个1000次,无论是怎么样的老爷机都可以轻松做到(还记得我初学变成的第一个作业就是循环输出1到1000,但是用的是学校公共机房最差...

2019-03-18 21:23:51 11606

原创 【JAVA实战】编写迷你spring mvc

我用spring系列框架进行开发也有两三年的时间了,但是仅止于使用,偶尔会聊些一些细节的原理什么的,但是对于spring其实还停留在一知半解的地步上_(:зゝ∠)_。这次找到了一个介绍编写spring mvc的小视频,正好从头开始重新系统的了解spring的运行原理。1. 运行原理spring的代码运行分为三个阶段:配置阶段,初始化阶段和运行阶段(如下图)。1. 配置阶段:先在we...

2019-02-01 14:31:51 303 2

原创 【Redis】mac安装redis

先安装homebrew(之前博客有提到)然后使用brew install redis等他跑完, redis就安装好了。然后使用命令:redis-server启动redis。

2019-01-16 21:32:43 137

原创 【JAVA】单元测试工具-Mockito学习心得

前一段时间换到了一个新的项目,开始疯狂加班,连学习都暂时停滞了。好在新的项目有新的要求,也经常会遇上新的问题,和新的技术,就算是在加班,也不失为一种学习的过程。在原本的项目中我是从来不写单元测试的,第一是没有人做此要求,第二是我不会。一个java开发还没有研究过单元测试,说不定会笑死人,但是因为从来用不上,我也就从没有意识到自己需要补充这方面的知识。但是在新的工作环境中, 总是会遇到新的问题,...

2019-01-16 20:28:25 1449 1

原创 【macOS】mac安装homebrew

拿回去维修的工作机终于回来了,但是之前在上面安装的各种东西也都丢失了。记录我重新安装各种包和工具:homebrew官网:https://brew.sh/index_zh-cn直接将命令行:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/instal...

2019-01-14 17:21:08 266

原创 【JAVA】单元测试工具-junit学习心得

最近新项目对单元测试要求很高,对我来说是一种新的挑战。用了几天,发现单元测试真的能减少很多愚蠢的错误,也正是因为我之前从来没有用过,才感受特别明显。所以整理一下单元测试的一些内容。1 单元测试1.1 什么是单元测试所谓单元测试是测试应用程序的功能是否能够按需要正常运行,并且确保是在开发人员的水平上,单元测试生成图片。单元测试是一个对单一实体(类或方法)的测试。单元测试是每个软件公司提高...

2019-01-12 21:49:27 1997

原创 【JAVA】HashMap源码探索

 hashmap的源码在java的面试中一直是一个很关键的部分,在搜索面试题的时候我们经常会看到类似这样的题目:hashmap的底层数据结构是什么? 描述一下hashmap put方法的过程?很多时候我们好像都只顾着使用它,而不清楚底层实现,还有的时候我们知道一鳞半爪,但是表示不出来具体的内容。今天我准备从源码理一遍,HashMap的实现细节。 一. 什么是Map? 根...

2018-11-30 23:57:18 642 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 740 1

原创 【数据结构】数据结构探索(四)—— 红黑树(R-B Tree)

本文部分代码和图来自大佬博客https://blog.csdn.net/v_JULY_v/article/details/6105630,向大佬致敬; 红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。红黑树有五个性质:    性质1. 节点是红色或黑色。    性质2. 根节点是黑色。    性质3 每个叶节点(NIL节点,空节点)是...

2018-11-12 23:09:32 204

转载 【转载】清晰理解红黑树的演变---红黑的含义

原文地址:https://www.cnblogs.com/tiancai/p/9072813.html前言      红黑树,对不少人来说是个比较头疼的名字,在网上搜资料也很少有讲清楚其演变来源的,多数一上来就给你来五条定义,红啊黑啊与根节点距离相等之类的,然后就开始进行旋转、插入、删除这些操作。一通操作下来,连红色和黑色怎么来的,是什么含义,有什么作用都云里雾里的,能搞清楚就怪了。 ...

2018-11-09 23:29:37 136

原创 【数据结构】数据结构探索(四)—— AVL树(平衡二叉树)

AVL树又称平衡二叉搜索树,它能保证二叉树高度相对平衡,尽量降低二叉树的高度,提高搜索效率。它具有以下特点:1. 左子树和右子树的高度之差的绝对值不超过1 2. 树中的每个左子树和右子树都是AVL树3. 每个节点都有一个平衡因子(balance factor--bf),任一节点的平衡因子是-1,0,1。(每个节点的平衡因子等于右子树的高度减去左子 4. 树的高度 ) .AVL树出了...

2018-11-09 18:52:27 309

原创 【数据结构】数据结构探索(三) —— 二叉搜索树(Binary Search Tree)

部分内容引自大佬博客《深入理解二叉搜索树(BST)》https://blog.csdn.net/u013405574/article/details/51058133二叉搜索树是一种有顺序的二叉树,它具有以下特征:1.每个元素有一个关键字,并且任意两个元素的关键字都不同;因此所有的关键字都是唯一的。 2.在根节点的左子树中,元素的关键字(如果有的话)都小于根节点的关键字。 3.在根节点...

2018-11-09 15:18:58 247

原创 【数据结构】数据结构探索(二) —— 二叉树(Binary Tree)

我们对树这一种结构有了入门的了解以后,我们就要开始研究最重要的树结构即二叉搜素树。二叉树(Binary Tree)的定义二叉树是(n≥0 )数据元素的有限集。它或为空集(n=0),或者含有唯一的一个元素称为根结点,其余的元素被分为两个互不相交的有限集合。每个集合本身又是一棵二叉树,称为根结点的左子树和右子树。二叉树(binary tree)是树形结构的另一个重要类型。二叉树的每个结...

2018-11-09 14:12:08 245

原创 【数据结构】数据结构探索(一) —— 树的综述

最近研究了mysql的索引结果,mysql的索引结果是使用了b+ tree的数据结构,了解了结构以后,对索引的功能和使用的一些规则就有了更加深入的了解,原来只是死记硬背规则和策略,现在感觉能知道背后到底是因为什么。之后因为看到了Set对象的元素存入方式,TreeSet使用的是红黑树存储,来保证元素不会重复,我大概能理解他的实现原理,但我回头一想居然发现我对红黑树的定义已经完全想不起来了。所以准...

2018-11-08 23:51:15 332

原创 【mysql】mysql索引探索(四)-- 整理一下索引的其他知识点

1. 索引列的数据长度能少则少。(能节省空间,长度越少就说名关键字能保存的越多)2. 索引不一定是越多越好越全越好,一定是建合适。(因为需要维护,插入的时候需要所有索引都维护到)3. 匹配列前缀可用到索引 like 999%, like %9999%和like %9999是无法使用索引的。(最左匹配原则)4. where条件中 not in 和<>操作无法使用索引。(同上)...

2018-11-08 12:56:20 233

原创 【mysql】mysql索引探索(三)-- 高性能使用索引的策略

既然我们已经对索引的本质有所了解,那么我们就应该来讨论如何高性能的使用引擎。1. 列的离散性越高,选择性越好。列的离散性是这样定义的:count(discount col):count(col),也就是不同的列数比列的总数。这个数值越大说明列的离散型就越好。如果用离散性很低的列,比如性别来做索引,你会发现大家都只有两种值(男和女),这样其实你根本不知道应该往那条路走,区别度太低,选择性...

2018-11-08 12:41:31 396

原创 【mysql】mysql索引探索(二)-- B+Tree索引在Mysql中的体现形式

我们都知道在mysql中有两种常用的引擎,MyISAM和InnoDB,这两种引擎是不一样的。但是这两种索引如何不一样呢?MyISAMmyisam引擎的表会生成三个文件,.frm,.MYD 和 .MYI.其中.frm里面存储了表定义文件,比如表有哪些字段,字段是如何修饰的。然后.MYD会是一个数据文件,也就是下图右边的图,你的数据行数什么的全都保存在.MYD文件中。所有的索引全部...

2018-11-07 23:20:38 246

原创 【mysql】mysql索引探索(一)-- 为什么使用B+ Tree作为索引的结构

什么是索引在百度上查找索引的时候,很多回答会是:数据库就像是一本书,索引就像是他的目录,我们通过索引可以很快的定位到我们要找的数据。这话说的通俗易懂,一点没错。但是如果要说的更确切一点,那么应该这么表达:索引是为了加速对表中数据行检索而创建的一种分散的数据结构。首先索引的存在是为了加速对表中数据行的检索,其次他是分散的,最后他是一种数据结构。所以我们说正确的创建索引是提升数据库...

2018-11-07 22:31:58 3077 2

原创 【JAVA】HashSet和TreeSet如何保证存入元素不会重复?

Set是一种数据集合。它与List同样继承与Collection接口。它与Collection接口中的方法基本一致,并没有对Collection接口进行功能进行功能上的扩充,只是比Collection接口更严格了。与List不同的是,Set中的元素是无无需的,并且都以某种规则保证存入的元素不会出现重复。它的特点也就是:1. 元素不会出现重复。2. 元素是无序的。(存取无序)3....

2018-11-06 16:03:41 2976

原创 【JAVA】java数据存储-基础类型,对象和字符串

总所周知,java是一种面向对象的程序设计语言。在java里,一切都被视为对象,因此可以采用单一固定的语法。尽管一切都看作对象,但是操纵的标识符实际上是对象的一个“引用”,这个引用指向数据实际存放的地址。而我们的数据被存储到什么地方呢?特别是内存是怎么分配的呢?我们有个不同的地方可以存储数据(以下内容摘自《java编程思想》:1. 寄存器。这里是最快的存储区,因为它位于不同于其他存储区的地...

2018-11-01 21:45:09 918

转载 【转载】springboot过滤器和拦截器的实现和区别

原问地址为:https://segmentfault.com/a/1190000012072060前言springmvc中有两种很普遍的AOP实现:1.过滤器(Filter)2.拦截器(Interceptor)本篇面对的是一些刚接触springboot的人群所以主要讲解filter和interceptor的简单实现和它们之间到底有什么区别(一些复杂的功能我会之后发出文章,请记得...

2018-09-06 17:34:00 111

原创 【疑难杂症】SourceTree仓库为无效源Authentication failed

今天帮小学妹拉代码,我们的代码是放在git仓库上的,一般用命令行和用图形化软件拉都可以,权限也设置了没问题。但是不知道这次为什么就一直报Authentication failed,连用户名和密码都没有让输入,直接就说仓库无效了。解决方案:因为小学妹用的是自己系统安装的git 而不是sourceTree内部的git,因此出现了这个问题,把git切换成内部的git就可以使用了。...

2018-08-31 12:50:52 2691 4

原创 【疑难杂症】百万级数据跨表数据统计和计算

产品提交了一个方案,要做一个以我们的表和职位表为基础,统计计算每个职位、地区、薪资区间、工作年限、学历的数据数量,并计算平均薪资,和总数占比的统计信息产品。逻辑并不复杂,比较困难的地方在于,这两张表都是我们业务的核心表,数据量庞大,其中简历表大概有180w可用数据。更困难的是,学历和工作年限这两个数据并不在简历表上而在个人信息表上。这就疯了,个人信息表起码有3000w的数据,如果一条一条组装,...

2018-08-24 15:11:14 1293

原创 【疑难杂症】Cannot connect to VM Bad file descriptor (Write failed) eclipse debug启动不起来

我查资料的时候发现其他人有以下几种解决方案:1. 确认你的jre是否真的可用。2. 城市热点认证软件冲突,关掉这个软件就可以。3. 防火墙问题但这些对我都不适用。我用的是:4. 重启eclipse大法,重启完就ok了。...

2018-08-21 22:22:02 745

原创 【疑难杂症】访问所有mapper方法都提醒invalid bound statement (not found)

大部分的invalid bound statement (not found)的log都是配置啊,编译啊之类的产生了问题,这类问题可以看下面的博客,基本上说的很全了:https://blog.csdn.net/u013512987/article/details/80925881使用SpringBoot+eclipse+Maven+Oracle 初写查询接口,遇到一个问题:invalid...

2018-08-21 22:16:43 148186 32

原创 【阿里云metaq】 奇怪问题:No route info of this topic 原因及解决方案

今天新功能上线,使用了新的metaq topic,但是明明预发和线上相同配置,预发跑的好好的,线上出现了这个错ERROR com.gy.taojob.util.metaq.MetaProducerUtil - No route info of this topic, taojob_usergroup550See http://rocketmq.apache.org/docs/faq/ for...

2018-08-21 22:10:39 10616 7

原创 【阿里云tair】tair项目间共享对象和过长字符串(包含解决方法)

tair存入对象不能成功的原因和缓存一样,是序列化的问题,目前最麻烦的是路径名,也就是包名很有可能不相同,这个目前就没法解决了。解决方法:转换成字符串的格式进行存储。 过长字符这个问题,是从上面延伸而来的,因为我们把对象转换成字符串了,但是由于对象可能会很大,所以字符串非常长。按理来说tair是推荐存储100k以内的数据,但是我存储6k的数据的时候就出现了严重的问题:实际上没存进去,但...

2018-08-21 22:06:31 242

原创 【阿里云opensearch】如何在opensearch配置一对多的数据结构

阿里云的opensearch服务本身是只支持主表N对1的结构,但是并不支持1对N的结构。换而言之就是多条主表记录可以对应单条辅表记录,但是如果一条主表记录对应多条主表记录就会出问题。比如多个商品可以对应同一个品牌,那么我们就必须用商品来做主表,而不能用品牌来做主表。如果一条物品有进仓和出仓两条记录,我们是不能用进出仓记录来做附表的,但如果此时又有这样的需求,那么我们应该怎么办呢?在我们的工作中...

2018-08-19 17:45:33 1979 1

原创 【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 1255

原创 【VUE】easytable单元格编辑和单元格内嵌套组件

老大提出了一个一个设想,我们编辑记录的时候就不要打开弹框了,直接在表格里编辑吧~~~(╯‵□′)╯︵┻━┻ 让一个后端java开发工程师来写后台管理页面已经很不容易了,这这这这是人能提出的要求吗!!老娘已经不做前端hin!多!年!了!呀!前端的语法我都记不囫囵了!但是老大是不可能不是人的,作为一只猫球球只能含泪在老大的殷切嘱咐下奋力的滚动起来。1. 实现单元格编辑这个和前端同学们咨...

2018-08-01 22:46:51 10106 6

原创 【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 619 5

原创 【mahout笔记】初步理解itemCF(基于物品的推荐算法)在mahout的实现

之前分析了基于用户的CF的原理。今天尝试调试一下基于物品的CF算法。再次声明,本文部分内容是参考:https://blog.csdn.net/wolvesqun/article/details/52757772感谢大佬的整理为我指明方向。基于物品的CF的原理和基于用户的CF类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏...

2018-07-28 11:46:48 2359 4

转载 【转】面向对象三大基本特性,五大基本原则

收藏转自:https://www.cnblogs.com/hnrainll/archive/2012/09/18/2690846.html一切权利归属于原作者大大。面向对象三大基本特性,五大基本原则透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.三大特性是:封装,继承,多态  所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者...

2018-07-27 12:13:31 127

原创 【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 1956 6

原创 eclipse、maven搭建mahout简单基于用户协同推荐demo

  本文记录了在mac使用maven和eclipse搭建mahout小demo的过程。一、eclipse安装二、maven安装请允许我跳过这两步,因为我开始开发的过程中,eclipse和maven都已经是现成安装好的。三、用maven构建mahout项目1. 新建项目打开eclipse,通过菜单File > New > Project新建项目,选择Mav...

2018-07-25 11:42:18 1137

原创 【python笔记】pycharm使用matplotlib的show()函数无法显示图片解决方案

看了一系列基础课程以后,准备自己尝试做一个机器学习领域的HelloWorld的。但是在进行可视化尝试的时候,却发现无法显示出图片。一开始我以为是因为生成的图片是保存到某个文件夹,遍寻之后依然一无所获。后来才想到了可能是没有显示出来。搜索之后我发现,一般情况下matplotlib不能显示图片有以下两个原因:1. python的版本和matplotlib的版本冲突。2. matplotli...

2018-07-15 23:25:47 7205 6

原创 【学习笔记】ReentrantLock的一些自有方法(查询为主)

1. 设定公平锁或者非公平锁Lock lock = new ReentrantLock(isFair);// isFair is Boolean2. int getHoldCount():查询当前线程保持此锁定的个数,也就是调用lock()方法的次数。3. int getQueueLength() : 返回正等待获取此锁定的线程估计数。

2017-10-28 18:12:09 215

空空如也

空空如也

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

TA关注的人

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