自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 MySQL中的数据类型和schema优化

最近在学习MySQL优化方面的知识。本文就数据类型和schema方面的优化进行介绍。1. 选择优化的数据类型MySQL支持的数据类型有很多,而如何选择出正确的数据类型,对于性能是至关重要的。以下几个原则能够帮助确定数据类型:更小的通常更好应尽可能使用可以正确存储数据的最小数据类型,够用就好。这样将占用更少的磁盘、内存和缓存,而在处理时也会耗时更少。简单就好当两种数据类型都能胜任一个字段的存储工作时,选择简单的那一方,往往是最好的选择。例如整型和字符串,由于整型的操作代价要小于字符,所以当在

2020-10-25 15:59:09 295

原创 一致性哈希的分析与实现

哈希函数,想必大家都不陌生。通过哈希函数我们可以将数据映射成一个数字(哈希值),然后可用于将数据打乱。例如,在HashMap中则是通过哈希函数使得每个桶中的数据尽量均匀。那一致性哈希又是什么?它是用于解决什么问题?本文将从普通的哈希函数说起,看看普通哈希函数存在的问题,然后再看一致性哈希是如何解决,一步步进行分析,并结合代码实现来讲解。首先,设定这样一个场景,我们每天有1千万条业务数据,还有100个节点可用于存放数据。那我们希望能将数据尽量均匀地存放在这100个节点上,这时候哈希函数就能派上用场了,下面.

2020-07-05 23:15:46 322

原创 系统学习Lambda表达式

在《挑苹果中的行为参数化思想》已经介绍了使用Lambda表达式将行为抽象化,对Lambda表达式有一定认识。而本文将对Lambda表达式进行系统性的介绍。1. 语法首先我们要知道如何写Lambda表达式,或者说怎么样才能写出有效的Lambda表达式,这就需要了解其语法。Lambda表达式由三部分组成:参数列表箭头主体有两种风格,分别是:表达式-风格(parameters) -> expression块-风格(parameters) -> { statement

2020-06-14 22:29:42 205

原创 挑苹果中的行为参数化思想

草捏对Lambda表达式的了解停留在用IDEA自动替换匿名类的程度,以为Lambda表达式只是把代码缩短了而已,不过就是一个语法糖。所以一直不屑一顾,没系统学习。“不过就是代码短一点嘛,没啥大不了”。但通过学习才知道Lambda表达式不仅仅是把代码换了种表达方式,可能更重要的是背后的思想——行为参数化。所谓的行为参数化,指的是我们可以通过参数传递的形式去指定代码的行为。是不是很眼熟,学过设计模式的童鞋,基本都是从策略模式开始学起的。策略模式便是面向接口编程,通过使用不同的实现类,改变具体的行为。行为参数.

2020-05-17 21:27:52 255

原创 关于Spring AOP,除了动态代理、CGLIB,你还知道什么?

Spring 作为 Java 中最流行的框架,主要归功于其提供的 IOC 和 AOP 功能。本文将讨论 Spring AOP 的实现。第一节将介绍 AOP 的相关概念,若熟悉可跳过,第二节中结合源码介绍 Spring 是如何实现 AOP 的各概念。1. AOP 概念1.1 JoinPoint进行织入操作的程序执行点。常见类型:方法调用(Method Call):某个方法被调用的时点。方法调用执行(Method Call Execution):某个方法内部开始执行的时点。方法调用是在调

2020-05-10 16:33:07 652

原创 和小曼一起走到MySQL行的尽头

小曼,重庆人,性格虽然内敛,但却是一位资深段子手。去年和我一起入职,工位坐我旁边后,承包了我半年的笑点。我们还曾经一起去过那个被称作 “MySQL行尽头” 的地方。那是一个普通的下午,耳边都是赶着需求的键盘声,我也码得正嗨皮,就在这时突然传来测试小姐姐的一声“(╯°Д°)╯︵ ┻━┻小曼,你的 SQL 报错啦!”我俩四目相对,眉头一皱,嗯?这 SQL 不是我们俩昨天一起看过的吗?而且在研发库上还成功运行了的,竟然报错了。没办法,只能先停下手边工作,把 SQL 领回来看看:ALTER TABLE

2020-05-08 22:21:43 195 1

原创 自制代码生成器中的一些问题与思考

1. 引言去年7月开始参加工作,刚开始被先后分配了两个制作基础页面的任务,也就是常规的增删改查,包括前端页面的 vue 文件以及后端实体类和各逻辑层的接口与实现类,总共需要创建 9 个文件,1个 vue、7个 java,1个 xml。虽然可以使用 MybatisGenerator 根据数据库表自动生成实体类和 Mapper 层文件,但再往上的逻辑层就需要手动编写。Ctrl+C,Ctrl+V,再...

2020-05-06 17:09:40 586

原创 this与Thread.currentThread()的区别

引言首先来看下下面这段代码。这是一段简单的中断线程的示例代码。public class Test { static class Runner extends Thread { @Override public void run() { while (true) { if (Thread.curre...

2020-05-05 09:20:05 305

转载 你应该知道的RPC原理

转自 http://www.cnblogs.com/LBSer/p/4853234.html  在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。  而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两

2018-01-31 17:13:22 223

原创 MapReduce论文阅读记录

本文为阅读MapReduce论文的记录,内容主要是论文的第三部分——实现。方便本人今后查看。1. 运行概述下图展示了 MapReduce 过程的整体情况当用户程序执行 MapReduce 时,会依次发生以下动作(对应图中的标号):用户程序中的 MapReduce 库将输入文件分成 M 个分片,每片有16M-64M(由用户决定),MapReduce 库还会将程序拷贝到集群机

2018-01-30 20:12:22 502

原创 java—HashMap与Hashtable的源码比较

java—HashMap与Hashtable的源码比较本文主要记录通过源码阅读的方式比较HashMap和HashTable1. HashMap、HashTable的类结构HashMap extends AbstractMapimplements Map, Cloneable, SerializableHashMap继承于AbstractMap,Hashtable继承于

2017-11-01 15:59:20 692

原创 Java动态代理

Java动态代理引言最近在看AOP代码,其中利用到了Java动态代理机制来实现AOP织入。所以好好地把Java动态代理学习了一遍。其中重点感谢《Java动态代理机制分析及扩展》这篇博文。受益匪浅,比《Thinking in Java》讲的还要详细。本文在原文的基础上增加了些其他参考资料的内容和自己的测试Demo及理解。

2017-11-01 15:58:16 253

原创 谈谈python2,3中的str、unicode

前言本文首先对Unicode与UTF-8的区别做一个解释,如果已了解,可跳过该部分。然后会分别对python2,3中的str、unicode进行讲解。有问题的地方,欢迎交流。

2017-11-01 15:56:49 8000 2

原创 基于深度学习的关系抽取

参考:http://www.docin.com/p-1775027820.html目的从文本中识别实体并抽取实体之间的语义关系主流的关系抽取技术有监督的学习方法:将关系抽取任务当做分类问题。根据训练数据设计有效的特征,从而学习各类分类模型,然后使用训练好的分类器预测关系。该方法的问题在于需要大量的人工标注训练语料,而语料标注工作通常非常耗时耗力。半监督的学习方法:主要采用 BootStrappi

2017-01-06 20:20:04 30416 3

转载 JDBC远程连接hiveserver2

转自http://www.mamicode.com/info-detail-1563222.html我在 JDBC 连接 Hive 的过程中遇到了很多问题,主要是两大问题:第一个问题: 没有开启 hiveserver2 服务,对该概念理解不到位,以为像 CLI 一样直接就能连接 Hive;第二个问题:缺少了 hadoop-2.2.0/share/hadoop/common/hadoop-comm

2016-11-13 16:51:11 699

原创 Java中的NAN和INFINITY

java浮点数运算中有两个特殊的情况:NAN、INFINITY。1、INFINITY:在浮点数运算时,有时我们会遇到除数为0的情况,那java是如何解决的呢?我们知道,在整型运算中,除数是不能为0的,否则直接运行错误。但是在浮点数运算中,引入了无限这个概念,我们来看一下Double和Float中的定义。Double:public static final double POSITIVE_INFINI

2016-10-23 21:52:50 1586

原创 Hadoop2.6下安装Hive

下载安装包下载 Hive1.1.1地址: http://www.eu.apache.org/dist/hive/ 下载 Mysql JDCB 地址: http://dev.mysql.com/downloads/connector/j/安装Mysql安装Mysql: sudo apt-get install mysql-server mysql-client安装后检查是否启动创建数据库Hive

2016-10-22 21:45:40 2782

原创 Scrapy+Selenium+Phantomjs的Demo

Scrapy+Selenium+Phantomjs的Demo  前段时间学习了用Python写爬虫,使用Scrapy框架爬取京东的商品信息。商品详情页的价格是由js生成的,而通过Scrapy直接爬取的源文件中无价格信息。   通过Selenium、Phantomjs便能实现。下面先介绍Phantomjs。 (我的博客原文地址:https://chaycao.github.io/2016/08/1

2016-08-27 19:58:07 1990

空空如也

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

TA关注的人

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