自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老李写博客的地方

其实这个是我的学习笔记

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

原创 半小时实现数据可视化——基于Vue和Echarts

本文介绍的是怎样从零开始创建一个vue的项目,这个过程非常简单,如果不把安装软件所需的等待算进去的话,其实不用半个小时就可以创建出一个简单的数据可视化项目。简单来说,只需要下边这几个步骤:创建vue项目 自定义组件 用Echart展示数据1、创建vue项目1.1 安装node.js从零开始创建Vue项目,首先需要安装node.js。进入node.js的官网,下载...

2019-06-18 21:54:35 8352

原创 深入拆解JVM笔记(一)

Java是怎么运行在电脑上的? 要回答这个问题,我们需要知道一个很简单,但是又经常被遗忘的道理:“电脑只能读懂机器码”。在这个条件下,我们就能知道,如果想要让电脑读懂人类的意思,就只需要把逻辑转换成一种机器能够读懂的指令就可以了。 那么Java是怎么实现的?这里就需要提及到JVM了。JVM 提供了一个能在各个环境下运行特定指令的环境,而编译器能够将Java的代码转换成JVM能够识别的指令序列(也可以称为Java字节码)。这样通过一个运行环境和特定指令,Java代码就能转换成计算机

2022-07-12 13:06:26 84 2

原创 对于高并发的优化,你能做什么? 缓存篇(二)——怎么保证缓存的高可用

本文是我在学习过程中的笔记。要保证缓存的高可用,可以从三个方面入手:客户端、中间代理层以及服务端。1.客户端在客户端保证缓存的高可用,建议遵循以下原则:在客户端配置多个缓存节点,通过写入和读取算法的策略来实现分布式缓存。简单来说就是,写入数据的时候要把数据写入分散的节点中,而读,需要利用多组缓存来进行容错。1.1分片这个是一个简单的写入的策略,常用的分片...

2019-11-09 11:32:11 191

原创 对于高并发的优化,你能做什么? 缓存篇(一)——常见的缓存策略

这个是第二篇学习笔记。缓存本来是系统锦上添花的功能,但是在高并发的情况下就变成了必不可少的了。缓存的目的在于让查询请求更快返回,提高访问的速度。要澄清的一点是,缓存并不是缓存区,缓存区是数据临时存储的地方,最终都会持久化到表中。但是缓存可能会失效,也就是会穿透,里边的数据随时都有可能失效。根据不同的特性,我们可以把缓存分成这几类: 静态缓存。主要是用来存储一些静态的模板/HTML文件...

2019-11-06 13:44:36 412

原创 对于高并发的优化,你能做什么?——数据库篇

最近学到对于高并发的优化技术,所以写了一篇笔记记录一下。数据库优化可以从下边几个方面入手: 池化 主从分离 分库分表 发号器 NoSQL 池化 数据库连接池是最常见的池化手段。由于连接数据库会耗费比较多的时间,所以可以通过复用连接的方式来减少这些时间开销。使用连接池的时候需要控制好两个变量:最小连接数喝最大连接数。具体的连接...

2019-10-27 12:52:29 578

原创 D3超简单入门教程(二)——稍微复杂条形图

本文来说说怎么画一个复杂一点的条形图,不是说样式上有多么负责,是在功能,体验上稍微复杂一些的条形图。老规矩,先上代码:组件:<template> <div id="container" class="svg-container" align="center"> <h1>{{title}}</h1> ...

2019-07-22 11:11:17 731

原创 D3超简单入门教程(一)——简单条形图

1、简介本文是介绍怎么用简单的方法利用D3.js画出条形图,为了方便操作,本文选取的是vue组件。先放上最简单的代码:<template> </template><script>import * as d3 from 'd3'export default { name: 'demo001', data () { retu...

2019-07-14 16:12:40 3258

原创 快速构建数据可视化微服务系统(三)—— 5分钟入门Echart

通过上两篇文章就可以创建出一个简单的vue项目,为了让数据可视化,我们需要使用到可视化的工具——Echart。我们先看一下效果图:​​使用Echart只要几个非常简单的步骤:引入Echart 创建容器 设置图形1、引入Echart如果不是使用npm,那么需要在官网上下载Echart的包,然后放到自己的项目中,但是这里使用更加简单的npm引入的方法,只需...

2019-06-16 11:56:37 501 1

原创 快速构建数据可视化微服务系统(二)—— 在vue中自定义组件

在上一篇文章中,我们已经通过简单的方法生成了一个vue项目。那么下边简单介绍一下这个项目的结构:build:编译相关文件 config:配置文件 node_module:npm的依赖 src:主要的代码assets:存放静态资源的地方,和static不同,打包的时候会重新编译,建议存放自己写的资源。 components:存放组件的地方。 router:路由管理器,用于页面跳...

2019-06-15 21:29:49 232

原创 用python3实现《机器学习实战》代码(二)——KNN算法的分类器

1、从文件中获取数据 获取训练集的方法有很多,这里介绍的是用文件导入的方法。简单来说,就是从文件中获取到数据,将其加工到一种可以用的格式。def file2matrix2(filename): # 根据文件路径获取文件对象 fr = open(filename) arrayOLines = fr.readlines() # 获取文件的行数 ...

2019-06-04 16:28:02 469

原创 用python3实现《机器学习实战》代码(一)——KNN算法

算法简介假设有一个样本数据集合,并且这个集合里边的的每个数据都存在分类用的标签(也就是监督学习)。输入没有标签的新数据,将新数据和原有数据进行对应的特征进行比较,然后算法提取样本集中特征最相似的数据的分类标签。由于类别常用K表示,所以叫KNN(k-NearestNeighbor,k邻近算法)算法。K通常小于20,因为再大,分的类就会太细,意义不大。实现原理计算出集合中的点与输入...

2019-05-30 07:51:53 1725

原创 Java 面试题详解(一)

java 练习1String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?String是长度不变得字符串,重新赋值得时候其实是将指针重新指向新得一个对象得过程。StringBuffer和StringBuilder是可变得字符序列,都是继承于AbstractStringBuilder。上边三个类都是实现了CharSequenc...

2019-03-25 18:11:19 147

原创 高性能MySQL笔记(一)

概览InnoDB的数据存储在表空间中,采用MVCC来支持高并发,并且实现了四个标准隔离级别,默认的级别是REPEATABLE READ, 并且通过间隙锁来防止幻读。InnoDB是通过聚簇索引建立表的。聚簇索引对主键的查询有很高的性能,但是由于二级索引必须包含主键列,所以主键要尽量小。InnoDB 的行为是很复杂的,其内部也做了很多的优化,比如自动在内存中创建hash索引加速读操作的自适...

2019-03-25 14:42:15 105

原创 Java 的事务详解

背景知识事务,其实就是一个或者一组不会中途失败的操作。简单理解就是,要么同时成功,要么同时失败。一开始我对这句话有点不解,因为这句话有点故意押韵的意思,但是结合一个实际场景,就豁然开朗了。在网购的时候都需要通过网络支付才能完成下单,如果“付钱”这个动作没有完成,就显示“已支付”,那么就没有人会去网上卖东西。事务的特性根据上边的背景,我们可以总结出来事务的四个特性,也是面试中经常被问到...

2019-03-05 21:44:45 445

原创 快速构建数据可视化微服务系统(一)——Vue服务的快速构建

在现在的世界里,变化是非常迅速的,特别是在互联网这个行业,技术的变化可谓事日新月异。那么要在这样的环境下快速构建项目,我选用的是比较成熟而且常见的系统架构 。在本系列里,我使用的是spring boot + Vue 的框架。理由很简单,因为这种框架非常成熟,如果遇到问题也是有很多的解决方案。作为本系列文章的第一篇,这里我会介绍怎样利用Vue快速构建前端项目。 Vue 有前端开发经...

2019-02-22 08:18:53 848

原创 JavaScript复习笔记(一)

1、什么是JavaScript?是一种脚本语言。2、作用HTML提供网页的结构,CSS用来制作网页的样式,JavaScript用来控制网页内容,增加动态效果。3、语言组成JavaScript由3部分组成:ECMA Script;DOM;BOM;ECMA Script是JS的核心,定义了JS的语言规范。ECMA Script是一套标准,和实现的语言无关。BOM:是浏...

2019-02-14 08:43:34 156

原创 Java复习笔记——并发工具包 java.util.concurrent(三)

ForkJoinPool和ExecutorService类型,但是是在1.7版本之后才被引入的。ForkJoinPool可以对任务进行拆解或是合并。RecursiveAction合并,需要自己继承RecursiveAction类。重写compute方法。这个方法是指定一个阀值,当超过这个阀值的时候就才去相应的逻辑。RecursiveTask和上边的一样,只是会返回一个结果。...

2019-02-13 15:42:55 249

原创 Java复习笔记——并发工具包 java.util.concurrent(二)

ConcurrentMap这个是一个带有分段锁的Map。最常用的实现是ConcurrentHashMap。ConcurrentNavigableMap是一个装map的map,它的子类也具有并发访问的能力。CountDownLatch闭锁。是一个并发构造,允许一个或者多个线程等待一系列操作的完成。可以设定一个参数,在每次有线程调用的时候机会减一,到达零的时候就阻塞。Cycli...

2019-02-13 15:41:22 140

原创 Java复习笔记——并发工具包 java.util.concurrent(一)

阻塞队列BlockingQueue阻塞队列通常用于一个队列生产,另一个队列消费的情况。因为Queue只能一个线程生产每一个线程消费,进入的数据只能先进先出。个人感觉这个队列的用法和set以及list有点类似,应该算是collection的并发工具。BlockingQueue的实现类有以下几个:ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue...

2019-02-13 15:38:49 158

原创 Java复习笔记——线程安全与锁优化

线程安全 1、线程安全java中线程安全可以分成5类:不可变、绝对线程安全、相对线程安全、线程兼容和线程独立。不可变。对于基本的数据类型,只要加上final修饰,就可以实现不可变。对于对象,其实就将其构造函数相关的属性编程final即可。绝对线程安全。绝对安全的很难达到,而且java中线程安全的类并不是绝对安全的。就算是vector也需要利用Synchronized去保证同时操...

2019-02-13 15:35:01 103

原创 Java复习笔记——java内存模型和线程

java内存模型和线程 1、概述衡量一个服务的好坏,可以通过使用美妙事务处理数(TPS)来衡量。2、java 内存模型这里的java内存模型和前边的jvm的内存模型不同,这里是的内存模型是java通过一个标准的模型去消除不同平台之间的硬件的差异。所以这里的内存模式是和计算机的内存模型类似的。java的内存模型主要是定义了各个变量的访问规则,这里的规则主要是虚拟机内存存储和读...

2019-02-13 14:53:42 155

空空如也

空空如也

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

TA关注的人

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