自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

青春季风暴

一起见证我的成长之路

  • 博客(144)
  • 资源 (2)
  • 收藏
  • 关注

原创 python学习笔记-位运算

位运算1. 原码、反码和补码二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用补码来表示。原码:就是其二进制表示(注意,有一位符号位)。00 00 00 11 -> 310 00 00 11 -> -3反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。00 00 00 11 -> 311 11 11 00 -> -3补码:正数的补码就是原码,负数的补码是反码+1。00 00 00 11 -> 3

2022-04-03 22:36:45 291

原创 Matplotlib学习教程(三)

学习目标目标 掌握常见统计图及其意义 绘制散点图和柱状图 应用 探究不同变量之间的关系 Matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据。1 常见图形种类及意义 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图 特点:能够显示数据的变化趋势,反映事物的变化情况。(变化) api:plt.plot(x, y) 散点图:用两组数据构..

2021-01-03 18:48:15 468

原创 Matplotlib学习教程(二)

学习目标目标 学习折线图的绘制和图形保存 给图形添加辅助功能(如:标注、x,y轴名称、标题等) 多次plot绘制图形 多个坐标系显示图形 知道折线图的应用场景 应用 天气的温度变化显示 1 折线图绘制与保存图片为了更好地理解所有基础绘图功能,我们通过天气温度变化的绘图来融合所有的基础API使用1.1 matplotlib.pyplot模块matplotlib.pytplot包含了一系列类似于matlab的画图函数。 它的函数作用于当前图形(figure)的当前坐

2021-01-03 18:41:41 577

原创 Matplotlib学习教程(一)

学习目标目标 了解什么是matplotlib 为什么要学习matplotlib matplotlib的三层结构介绍 1 什么是Matplotlib是专门用于开发2D图表(包括3D图表)使用起来及其简单以渐进、交互式方式实现数据可视化2 为什么要学习Matplotlib可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。能将数据进行可视化,更直观的呈现 使数据更加客观、更具说服力例如下面两个图为数字展示和图形展示: ...

2021-01-02 19:58:51 337

原创 Flume知识点总结

概述Flume定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。优点:1.可 以和任意存储进程集成。。2.输入的的 数据速率大于写入目的存储的速率,flume 会进行缓冲,减小hdfs的压力。。3.flume中的事务基于channel,使用了两个事务模型(sender+receiver...

2020-11-23 19:52:28 422

原创 mapReduce知识点总结

mapreduce概述mapreduce定义:MapReduce是一个分布式运 算程序的编程框架,是用户开发" 基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群 上。mapreduce优缺点:优点:1. MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运...

2020-11-16 18:28:25 2060 1

原创 查找单链表中的倒数第k个结点

问题:编写代码,查找单链表中的倒数第K个节点思路分析:1.编写一个方法,接收head节点,同时接收一个index2. index表示是倒数第index个节点3.先把链表从头到尾遍历,得到链表的总的长度getLength4. 得到size 后,我们从链表的第一个开始遍历(size-index)个, 就可以得到5.如果找到了,则返回该节点,否则返回null代码: public static HeroNode findIastIndexNode(HeroNode h..

2020-10-14 19:50:37 303

原创 数据结构与算法-链表

一、链表介绍:链表是有序列表,存储结构如下:总结如下:1)链表是以节点的方式来存储,是链式存储2)每个节点包含data域,next域:指向下一个节点.3)如图:发现链表的各个节点不一定是连续存储.4)链表分带头节点的链表和没有头节点的链表,根据实际的需求来确定单链表(带头结点)逻辑结构示意图如下:二、应用实例使用带head头的单向链表实现–水浒英雄排行榜管理完成对英雄人物的增删改查操作1)第一种方法在添加英雄时,直接添加到链表的尾部思路分析示意图:..

2020-10-14 19:41:18 1736

原创 数据结构与算法-队列

队列介绍1、队列是一个有序列表,可以用数组或是链表来实现2、遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出示意图:(使用数组模拟队列示意图)数组模拟队列队列本身是有序列表,如使用数组的结构来存储队列的数据结构,则队列数组的生命如下图,其中maxSize是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理的,因此需要两个变量front及rear分别记录队列前后端的下标,front会随着数据输出而变化,而rear则是随着数据输入而改变,如图所...

2020-09-21 21:19:00 199

原创 数据结构与算法-稀疏数组

当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:1) 记录数组一共有几行几列,有多少个不同的值2) 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组举例说明:转换前的二维数组:转换后的稀疏数组:稀疏数组的应用实例:1)使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等)2)把稀疏数组存盘,并且可以从新恢复原来的二维数组数3)整体思路分析...

2020-09-21 20:52:25 157

原创 Java面试题2.0--redis

欢迎关注《Java面试题2.0》合集发布页,持续更新中!Redis支持的数据类型?String字符串:string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。Hash(哈希)Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。List(列表)Redis 列表...

2020-06-30 17:22:41 1124

原创 Java面试题2.0--elasticsearch

欢迎关注《Java面试题2.0》合集发布页,持续更新中!Elasticsearch是什么?Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。Elasticsearch...

2020-06-30 17:13:24 741

原创 Java面试题2.0--solr

欢迎关注《Java面试题2.0》合集发布页,持续更新中!概念:Solr是目前非常受欢迎的基于Apache开源组织下Lucene开发的一个开源高性能的企业级搜索平台。Solr具有高度可靠性、可扩展性、可容错性的特点,提供了分布式索引、索引备份、查询负载均衡、自动故障转移和恢复,以及集中配置等功能。core想要在Solr中添加索引,你需要指定一个Core,即你需要把索引数据添加Solr中的Core术语指的是一个单一的索引数据,而索引又是由多个Docum...

2020-06-30 17:11:49 1066

原创 Java面试题2.0--zookeeper

欢迎关注《Java面试题2.0》合集发布页,持续更新中!Zookeeper是什么框架分布式开源框架,提供分布式协调服务,解决了分布式一致性问题。原本是Hadoop、HBase的一个重要组件。应用场景数据发布与订阅(配置中心)发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。负载均衡...

2020-06-30 17:10:11 597

原创 Java面试题2.0--dubbo

欢迎关注《Java面试题2.0》合集发布页,持续更新中!dubbo是什么dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含:集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平...

2020-06-30 17:08:58 745 1

原创 Java面试题2.0--mybatis

欢迎关注《Java面试题2.0》合集发布页,持续更新中!#{}和${}的区别是什么?答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0,...

2020-06-30 17:07:09 1285

原创 Java面试题2.0--mysql

欢迎关注《Java面试题2.0》合集发布页,持续更新中!MySQL如何优化表的设计合理化(符合3NF)添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]SQL语句优化分表技术(水平分割、垂直分割)读写[写: update/delete/add]分离存储过程 [模块化编程,可以提高速度]对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]mysql服务器硬件升级定时的去清除不需要的数据,定时...

2020-06-17 14:59:34 933

原创 Java面试题2.0--数据库

欢迎关注《Java面试题2.0》合集发布页,持续更新中!varchar和char的使用场景用来存储字符varchar适用字符长度经常变的char适用字符长度固定的Varchar2和varchar有什么区别?Char的长度是固定的,而varchar2的长度是可以变化的,比如,存储字符串“abc”对于char(20),表示你存储的字符将占20个字节,包含17个空,而同样的varchar2(20)只占了3个字节,20只是最大值,当你存储的字符小于20时,按实际长度存储...

2020-06-17 14:57:56 1570

原创 Java面试题2.0--设计模式

欢迎关注《Java面试题2.0》合集发布页,持续更新中!设计模式有哪些类型?常用设计模式分别属于什么类型?总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。...

2020-06-17 14:56:34 617

原创 Java面试题2.0--spring事务

欢迎关注《Java面试题2.0》合集发布页,持续更新中!spring事务定义1.事务的定义:事务是指多个操作单元组成的合集,多个单元操作是整体不可分割的,要么都操作不成功,要么都成功。其必须遵循四个原则(ACID)。原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;一致性(Consistency):在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是应该处于正确的状态,即数据完整性约束...

2020-06-17 14:54:09 1748

原创 Java面试题2.0--spring aop

欢迎关注《Java面试题2.0》合集发布页,持续更新中!Spring中AOP的应用场景、Aop原理、好处?答:面向切面编程;用来封装横切关注点,具体可以在下面的场景中使用:Authentication 权限、Caching 缓存、Context passing 内容传递、Error handling 错误处理Lazy loading懒加载、Debugging调试、logging, tracing, profiling and monitoring 记录跟踪优化...

2020-06-17 14:51:32 737

原创 Java面试题2.0--spring ioc

欢迎关注《Java面试题2.0》合集发布页,持续更新中!什么是IOC,什么又是DI,他们有什么区别?一、IOC介绍IOC是控制反转。创建对象实例的控制权从代码控制剥离到IOC容器控制(之前的写法,由程序代码直接操控使用new关键字),实际就是你在xml文件控制,控制权的转移是所谓反转,侧重于原理。二、DI介绍DI是依赖注入创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。三、区别1.它们是spring核心思想的...

2020-06-17 14:49:44 1511

原创 Java面试题2.0--jvm

欢迎关注《Java面试题2.0》合集发布页,持续更新中!程序计数器(Program Counter Register)程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,一个处理器都只会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都有一个独立的程序计数器,各个线程之间计数器互不影响,独立存储。称之为“线程私有”的内存。程序计数器内存区域是虚拟...

2020-06-03 11:43:04 1079

原创 Java面试题2.0--多线程

什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。创建线程有几种方式方式一,继承 Thread 类创建线程类。方式二,通过 Runnable 接口创建线程类。方式三,通过 C...

2020-05-18 15:55:24 1872

原创 Java面试题2.0--面向对象

面向对象的三个特征封装,继承,多态,抽象。什么是面向对象?面向对象程序设计是以建立模型体现出来的抽象思维过程和面向对象的方法。我们可以将某个事物抽象出来,赋予它自己的特征,并且可以针对这个事物进行相应的操作,以及规定与其他对象之间的关系。可以降低代码的耦合度,使程序更加灵活。多态的好处允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。即父类型的引用指向子类型的对象。主要有以下优点:可替换性:多态对已存...

2020-05-15 11:03:37 3048 1

原创 Java面试题2.0--集合

Java集合框架是什么?说出一些集合框架的优点?集合框架的部分优点如下:(1)使用核心集合类降低开发成本,而非实现我们自己的集合类。(2)随着使用经过严格测试的集合框架类,代码质量会得到提高。(3)通过使用JDK附带的集合类,可以降低代码维护成本。(4)复用性和可操作性。集合框架中的泛型有什么优点?泛型允许我们为集合提供一个可以容纳的对象类型,因此,如果你添加其它类型的任何元素,它会在编译时报错。这避免了在运行时出现ClassCastExceptio...

2020-05-12 17:22:28 1429

原创 Java面试题2.0--RocketMQ

RocketMQ概述RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力RocketMQ包含的组件NameServer:单点,供Producer和Consumer获取Broker地址Producer:产生并发送消息Consumer:接受并消费消息Broker:消息暂存,消息转发Name ServerName Ser...

2020-05-12 10:27:25 1953

原创 2020最全最新java技术栈面试题系列全家桶(带答案)—2.0版

去年,我在博客更新了有关java技术栈的相关面试题,收到了很多朋友的支持与喜爱,所以近期利用空闲时间,在已有基础上,自己对相关知识进行了梳理与调整,补充了很多内容,尤其是在消息队列、搜索引擎、大数据等方面增加了很多实用的问题,近期会陆续把相关的文章发布出来。作为技术人员,每次在换工作的时候,最头疼的就是准备面试题。尤其是java相关的技术人员,因为java技术栈实在是太复杂,所以要准备的内容就会很多。从java基础到常用框架,从消息队列到搜索引擎,不管你工作中有没有使用过,面试都有可能涉及,而且很...

2020-05-11 16:40:32 7645

原创 Java面试题2.0--RabbitMQ

什么是RabbitMQ?它的特性是什么RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。具体特点包括:1、可靠性(Reliability)2、灵活的路由(Flexible Routing)在消息进入队列之前,通过 Exchange 来路由消息的。对于典型的路由功能,RabbitMQ 已经提供了一些内置的 Exchange 来实现。针对更复杂的路由功能,可以将多个 Exchange 绑定在一起,也通过插件机制实现自己的 ..

2020-05-11 16:24:15 1077

原创 “个性化推荐”到底是什么?

今年的双十一购物节即将到来,相信很多人又要开启买买买的节奏,这段时间对于电商来说是一年一度的大考,为了提升自己的业绩,会制定各种营销策略。“个性化推荐”作为营销策略之一,在这其中扮演极为重要的角色。今天我们就聊聊什么是“个性化推荐”,以及“猜你喜欢”的商品到底是什么来的。所谓“个性化推荐”,便是我们常说的“千人千面”,系统会根据每个人的历史行为以及人物特征,为其推荐较为合适的物品。比较常见的有...

2019-10-26 10:42:07 4858

原创 springboot整合系列----springboot整合mybatis

今天我们介绍springboot整合mybatis教程。本文采取全注解的方式来实现springboot与mybatis的整合,不再使用xml配置的方式。因为注解的方式更加简洁高效,这也是spring大力推荐的方式,之后技术的发展也是使用注解的趋势,所以建议你在不影响业务本身的情况下,能使用注解就使用注解。如何创建一个springboot项目这里就不在过多介绍,操作步骤非常简单,不会的同学...

2019-09-04 07:15:54 777

原创 java 取消科学计数法表示

当long类型的数据,转换为double类型的数据来保存时,系统会自动转换为科学计数法的形式来保存,那我们在取数据之后,用数据的时候肯定是不想要科学技术法的形式的,所以要将科学计数法转换为Long类型。BigDecimal bd = new BigDecimal(1.03219E+14);Long value = Long.valueOf(bd.toPlainString())...

2019-08-30 11:53:24 1698

原创 异步请求使用reactor中mono和flux所遇到的问题

最近在项目升级改造的过程中,需要用到异步请求,技术选型为reactor的mono和flux,实际用的过程中遇到不少问题,简单记录一下,分享给大家避免踩同样的坑。项目需求:1、能够同时发起多个请求,多个请求所耗费的总时间,其实是耗时最长的一个请求所用时间。同时要保证最终的结果数据顺序,和发起的请求顺序保持一致。2、能够在发起请求后,不阻塞后面的操作。请求与后续操作同时执行。当我们需要请求...

2019-08-25 16:40:05 7785 2

原创 @Data注解

在实体类的编写过程中,常常需要应用大量的get、set方法,需要写大量的重复代码,即有的工具有自动生成功能,当时也会使实体类中产生大量冗余代码,使得代码变,springboot为我们提供了相应注解可以解决这类问题----@Data 接下来简明扼要的介绍一下@Data注解的功能与使用方法 ## 注解功能 1、@Data可以为类提供读写功能,从而不用写get、set方法...

2019-08-10 16:47:51 74001 4

转载 @Expose注解

之前,我们都是假设model字段都是需要序列化和反序列化的,这是一种最简单的情况,可真实的情况并不是如此,所以我们需要定制我们的解析规则。注解 @Expose当你不需要完全序列化model字段时,我们就可以使用 @Expose 来帮我结局。@Expose 默认有两个属性:serialize 和 deserialize,默认值都为 true,如果你给字段设置了 @Expose 注解,但是...

2019-07-24 13:31:34 17606

转载 @SerializedName注解

在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。  Gson解析json的方法我这里就不详细说明了,网上一大把的例子,我这里主要说一下使用@SerializedName进行注解的情况。  使用Gson解析json成对象时默认的是将json里对应字段的值解析到java对象里对应字段的属性里面。然后我们经常会遇到我们自己定义的java...

2019-07-24 11:57:03 11134

转载 @EqualsAndHashCode详解

官方文档:@EqualsAndHashCode原文中提到的大致有以下几点:1.此注解会生成equals(Object other)和hashCode()方法。2.它默认使用非静态,非瞬态的属性3.可通过参数exclude排除一些属性4.可通过参数of指定仅使用哪些属性5.它默认仅使用该类中定义的属性且不调用父类的方法6.可通过callSuper=t...

2019-07-24 11:52:25 2951

转载 springboot多数据源配置

之前在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源。在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别...

2019-05-27 16:31:04 252

转载 java多线程-- synchronized详解

记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一...

2019-05-27 16:08:37 345

原创 重构--有效设计代码

最近在读《重构-改善既有代码的设计》,对其简单进行了一下总结,但是对于里面大多数内容,认为都是无关紧要的。姑且先简单写一下,如果后续有比较好的重构理念,再进行补充重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。原因:当人们只为短期目的,或是在完全理解整体设计之前,就贸然修改代码,程序将逐渐失去自己的结构,程序员越来越难通过...

2019-05-23 16:18:06 237 1

阿里巴巴Java开发规范

阿里巴巴Java开发规范,文档为pdf格式,为2017最新修订版

2018-09-26

android布局实例微信界面Tab模仿

android布局实例微信界面Tab模仿

2016-07-23

空空如也

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

TA关注的人

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