自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 java中出现这种错误: “error“: “Internal Server Error“

在Java中遇到 "Internal Server Error" 这种错误通常指的是服务器端遇到了问题,无法完成请求。

2019-07-15 16:25:43 16243 1

原创 可视化工具BI(superset,redash)

Redash的用户体验要比Superset好,因为够简单。如果是进行深度二次开发,那选择Redash就更加嗨了!Redash的源码可读性很好,易于开发新feature。如果你非常需要丰富图表,不想自己定制开发,那用superset也可。但是,中型团队或者创业公司,更推荐使用Redash。运维Redash 1年多,累计注册人数2k,30日平均UV 160、PV 6k+,后台单节点PG元数据6...

2019-07-02 10:08:00 4127

原创 Java使用google-ortools库的方法

环境设置:确保你正确添加了 OR-Tools 的依赖,并配置了必要的本地库。库使用:Google OR-Tools 提供了多种优化和求解算法,适用于多种优化问题,如线性规划、整数规划、约束满足问题等。

2019-06-26 11:35:00 5987 16

原创 The Tomcat connector configured to listen on port 8888 failed to start

Description:The Tomcat connector configured to listen on port 8888 failed to start. The port may already be in use or the connector may be misconfigured.Action:Verify the connector's configurati...

2019-06-21 11:39:25 1964

原创 java.nio.charset.MalformedInputException错误解决

java.nio.charset.MalformedInputException: Input length = 1 at java.nio.charset.CoderResult.throwException(CoderResult.java:281) ~[na:1.8.0_201] at sun.nio.cs.StreamDecoder.implRead(StreamDecod...

2019-06-04 10:32:07 7017

原创 LSTM预测天气温度

利用LSTM对天气温度进行预测

2019-04-24 10:00:19 3014 2

原创 Executor框架讲解

Java的线程既是工作单元,也是执行机制。从JDK 5开始,把工作单元与执行机制分离开来。工作单元包括Runnable和Callable,而执行机制由Executor框架提供。从下图中可以看出,应用程序通过Executor框架控制上层的调度,而下层的调度由操作系统内核控制,下层的调度不受应用程序的控制。 ...

2019-03-21 17:52:49 62

原创 java web的监听器

一直以来,对监听器只是熟悉,一直在用,但是不知道具体的原理,最近看资料想写一下关于监听器的博客,以后时候可以用到!一,什么是监听器: 监听器就是一个实现了特定接口的Java类,这个Java类用于监听另一个Java类的方法调用或者属性的改变。当被监听对象发生上述事件后,监听器某个方法将会立即被执行。二,监听器的用途:用来监听其他对象的变化的。主要应用在图形化界面开发上。...

2019-03-21 17:50:20 85 1

原创 简析jvm的性能调优

堆的大小进行调整:jvm堆中主要的空间,就是以上新生代、老生代、永久代组成,整个堆大小=新生代大小 + 老生代大小 ;永久代大小其实是方法区的大小。 在设置的时候,如果关注性能开销的话,应尽量把永久代的初始值与最大值设置为同一值,因为永久代的大小调整需要进行FullGC 才能实现。 计算活跃数据大小 活跃数据应该是基于应用程序稳定阶段时,观察长...

2019-03-17 22:58:00 196

原创 activemq基础篇3--源码分析2

activemq的优缺点: activemq采用消息推送方式 ,所以最适合的场景是默认消息都可以在短时间内被消费,数据量越大,查找和消费消息就越慢,消息堆积程度与消息速度成反比。 缺点: 1)吞吐量低。由于activemq需要建立索引,导致吞吐量下降,这是无法克服的缺点,只要使用完全符合jms规范的消息中间件,就要接受这个级别的TPS. 2)没有分片...

2019-02-26 20:11:13 475

原创 activemq基础2---源码分析

持久化消息和非持久化消息的发送策略 Activemq支持同步,异步两种发送模式将消息发送到broker上。 同步发送过程中,发送者发送一条消息会阻塞到broker反馈一个确认消息,表示消息已经被broker处理,这个机制提供了消息的安全性保障,但是由于是阻塞的操作,会影响到客户端消息发送的性能; 异步发送过程中,发送者不需要等待broker提供反馈,所以性能相...

2019-02-26 16:20:59 1019

原创 activemq基础篇1--引入activemq的好处

消息中间件的初步认识 消息中间件是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程之间的通信。消息中间件能做什么? 消息中间件主要解决的就是分布式系统之间消息传递的问题,它能够屏蔽各平台以及协议之间的特性,实现应用程序之间的协同。举个例子,一个电商平台的注册功能来简单分析...

2019-02-25 20:02:04 779

原创 Mysql基础4(深入理解mvcc)

MVCC(多版本并发控制):并发访问数据库时,对正在事务内处理的数据做多版本的管理,以达到用来避免写操作的阻塞,从而引发读操作的并发问题。mysql中mvcc逻辑流程-插入: mysql中mvcc逻辑流程-删除 mysql中mvcc逻辑流程--修改 ...

2019-02-23 16:47:41 377

原创 Mysql基础3(事务,锁,mvcc)

事务锁mvccInnoDB的特性: 1.事务 什么是事务? 事务是数据库的最小执行单位,是单个逻辑工作单元执行的一系列操作,事务是一组不可分割的操作组合。 典型的事务场景: update user_account set balance =balance-1000 where userID=3;...

2019-02-22 20:56:06 239

原创 Mysql基础2(引擎,体系结构,查询机制)

各大存储引擎的介绍理解mysql的体系结构基于查询执行路径理解查询机制1.mysql插拔式存储引擎 存储引擎介绍: 1)插拔式的插件方式 2)存储引擎是指定在表之上的,即一个库中的每一个表都可以指定专用的存储引擎; 3)不管采用什么样的存储引擎,都会在数据区,产生对应的一个frm文件(表结构定义扫描文件)1))CSV存储引擎 数...

2019-02-22 13:13:21 348

原创 Mysql基础1 (索引)

1.索引是mysql实现的嘛? mysql的体系结构 正确的创建合适的索引是提升数据库查询性能的基础索引是什么? 索引是为了加速...

2019-02-21 21:37:08 634

原创 Redis基础4(分布式锁,客户端源码分析)

已有的客户端支持Redis Java客户端有很多的开源产品比如Redission、Jedis、lettuce差异1.Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;2.Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为简单,不支持字符串操作,不支持排序、事务、管道、分区等Redis特性。Redisson主要是促进使用...

2019-02-18 21:06:50 253

原创 Redis基础3(集群,备份,哨兵机制)

1.集群 先来简单了解下redis中提供的集群策略, 虽然redis有持久化功能能够保障redis服务器宕机也能恢复并且只有少量的数据损失,但是由于所有数据在一台服务器上,如果这台服务器出现硬盘故障,那就算是有备份也仍然不可避免数据丢失的问题。 在实际生产环境中,我们不可能只使用一台redis服务器作为我们的缓存服务器,必须要多台实现集群,避免出现单点故障;2.主从复...

2019-02-17 19:19:41 1124 3

原创 Redis基础2(过期,发布,持久化,Lua脚本)

1.过期时间设置 在Redis中提供了Expire命令设置一个键的过期时间,到期以后Redis会自动删除它。这个在我们实际使用过程中用得非常多。 EXPIRE命令的使用方法为EXPIRE key seconds 其中seconds 参数表示键的过期时间,单位为秒。EXPIRE 返回值为1表示设置成功,0表示设置失败或者键不存在如果向知道一个键还有多久时间被删除...

2019-02-13 21:27:12 1878

原创 Redis基础1(五种类型结构)

缓存大致可以分为两类,一种是应用类缓存,比如Map(简单的数据结构),以及EH Cache(Java第三方库),另一种就是缓存组件,比如Memached,Redis;Redis(remote dictionary server)是一个基于key-value的高性能的存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求。存储结构 大家一定对字典类型的数据...

2019-02-12 21:14:18 508

原创 多线程的应用与原理分析11(线程池)

线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池;线程池就像数据库连接池的作用类似,只是线程池是用来重复管理线程避免创建大量线程增加开销。所以合理的使用线程池可以。 1. 降低创建线程和销毁线程的性能开销; 2. 合理的设置线程池大小可以避免因为线程数超出硬件资源瓶颈带来的问题,类似起到了限流的作用;线程...

2019-01-28 19:58:11 237 2

原创 多线程的应用与原理分析10(Semaphore)

Semaphore semaphore也就是我们常说的信号灯,semaphore可以控制同时访问的线程个数,通过acquire获取一个许可,如果没有就等待,通过release释放一个许可。有点类似限流的作用。叫信号灯的原因也和他的用处有关,比如某商场就5个停车位,每个停车位只能停一辆车,如果这个时候来了10辆车,必须要等前面有空的车位才能进入。使用案例package loc...

2019-01-27 20:54:17 212

原创 多线程的应用与原理分析9(原子操作)

原子操作 当在多线程情况下,同时更新一个共享变量,由于我们前面讲过的原子性问题,可能得不到预期的结果。如果要达到期望的结果,可以通过synchronized来加锁解决,因为synchronized会保证多线程对共享变量的访问进行排队。 在Java5以后,提供了原子操作类,这些原子操作类提供了一种简单、高效以及线程安全的更新操作。而由于变量的类型很多,所以Atomi...

2019-01-27 12:58:40 252

原创 多线程的应用与原理分析8(countdownlatch)

限制JUC中提供了几个比较常用的并发工具类,比如CountDownLatch、CyclicBarrier、Semaphore。CountDownLatch countdownlatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完毕再执行。从命名可以解读到countdown是倒数的意思,类似于我们倒计时的概念。 countdownlatc...

2019-01-26 21:45:51 259 1

原创 多线程的应用与原理分析7(Condition)

Condition 通过前面的课程学习,我们知道任意一个Java对象,都拥有一组监视器方法(定义在java.lang.Object上),主要包括wait()、notify()以及notifyAll()方法,这些方法与synchronized同步关键字配合,可以实现等待/通知模式;JUC包提供了Condition来对锁进行精准控制,Condition是一个多线程协调通信的工具类,...

2019-01-26 19:51:56 251 1

原创 多线程的应用与原理分析6(ReentrantLock)

ReentrantLock的实现原理分析 之所以叫重入锁是因为同一个线程如果已经获得了锁,那么后续该线程调用lock方法时不需要再次获取锁,也就是不会阻塞;重入锁提供了两种实现,一种是非公平的重入锁,另一种是公平的重入锁。怎么理解公平和非公平呢?如果在绝对时间上,先对锁进行获取的请求一定先被满足获得锁,那么这个锁就是公平锁,反之,就是不公平的。简单来说公平锁就是等待时间最长的线程...

2019-01-25 13:55:02 182

原创 多线程的应用与原理分析5(ReentrantLock)

同步锁 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源,在Lock接口出现之前,Java应用程序只能依靠synchronized关键字来实现同步锁的功能,在java5以后,增加了JUC的并发包且提供了Lock接口用来实现锁的功能,它提供了与synchroinzed关键字类似的同步功能,只是它比synchronized更灵活,能够显示的获取...

2019-01-23 21:35:24 293

原创 多线程的应用与原理分析4(synchronized)

synchronized的使用 在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁。但是,随着Java SE 1.6对synchronized进行了各种优化之后,有些情况下它就并不那么重了,Java SE 1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。我们仍然沿用前面使用的案例,然后通过sy...

2019-01-23 14:32:20 213

原创 多线程的应用与原理分析3(原子性、可见性、有序性)

JMM怎么解决原子性、可见性、有序性的问题? 在Java中提供了一系列和并发处理相关的关键字,比如volatile、Synchronized、final、juc等,这些就是Java内存模型封装了底层的实现后提供给开发人员使用的关键字,在开发多线程代码的时候,我们可以直接使用synchronized等关键词来控制并发,使得我们不需要关心底层的编译器优化、缓存一致性的问题了,所以在Ja...

2019-01-22 16:36:36 410

原创 多线程的应用与原理分析2(线程的状态)

进程是操作系统进行资源分配的最小单元,线程作为操作系统调度的最小单元,并且能够让多线程同事执行,极大的提高了程序的性能,在多核环境下的优势更加明显。但是在使用多线程的过程中,如果对它的特性和原理不够理解,很容易造成各种问题。线程的状态 Java 线程既然能够创建,那么也势必会被销毁,所以线程是存在生命周期的,那么我们接下来从线程的生命周期开始去了解线程。线程一共有 6 种...

2019-01-21 20:39:26 204

原创 多线程的应用与原理分析1

1.多线程最终解决的就是“等待”问题,它的简单使用场景: 1)通过并行计算提高程序执行性能; 2)需要等待网络,1/0响应导致耗费大量的执行时间,可以采用异步线程的方式减少阻塞;2.tomcat7以前的io模型多线程的应用场景 1)客户端阻塞:如果客户端只有一个线程,这个线程发起读取文件的操作必须等到IO流返回,线程(客户端)才能做其他的事 ...

2019-01-20 21:47:57 308

原创 分布式系统基础-- 注册中心Zookeeper应用4(分布式锁)

前面讲了zookeeper的基础,现在基于zookeeper来实现分布式锁。基于ZooKeeper分布式锁的流程:在zookeeper指定节点(locks)下创建跟节点 /locks获取locks下所有子节点children(孩子节点是临时节点)通过当前的节点和子节点中最小的节点进行比较,如果相等,表示获得锁成功监听当前节点的上一个节点具体实现1.利用watcher机制...

2019-01-19 21:30:32 236 1

原创 分布式系统基础-- 注册中心Zookeeper应用3

1.基于javaAPI初探zookeeper的使用2.深入分析Watcher机制的实现原理3.Curator客户端的使用1.基于java API初探zookeeper的使用zookeeper的数据存储是基于事务日志,快照日志,运行时日志 (bin/zookeeper.out);利用zookeeper连接客户端的例子:package com.zhang.demo;impor...

2019-01-19 16:46:39 197

原创 分布式系统基础--注册中心Zookeeper相遇2

1. 了解 zookeeper 及 zookeeper 的设计猜想 2. zookeeper 集群角色3. 深入分析 ZAB 协议一. 了解 zookeeper 及 zookeeper 的设计猜想 1.1 zookeeper 分布式系统的很多难题,都是由于缺少协调机制造成的。 在分布式协调这块做得比较好的,有 Google 的 Chubby 以及 ...

2019-01-18 16:53:27 201

原创 分布式系统基础--注册中心Zookeeper初识1

1.为什么需要Zookeeper? 以电商架构为例, 早期我们是单一的应用架构, 随着互联网的快速发展和体量的不断增长,后端的架构通过垂直伸缩的方式很难达到我们期望的性能要求,同时投入产出比也非常大,同时普通 PC 的性能也越来越高,所以通过水平伸缩的方式来提升性能成为了主流。 在分布式架构下,当服务越来越多,规模越来越大时,对应的机器数量也越来越大,单靠...

2019-01-16 10:51:10 205

原创 分布式系统基础--通信框架RMI

1. 什么是 RPC2. 实现 JAVA RMI3. RPC 框架原理4. 基于 Java RMI 实践5. RMI 通信原理分析6. 实现自己的 RPC 框架什么是 RPC RPC(Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源;对于客户...

2019-01-15 11:06:21 430

原创 分布式系统基础--序列化

1. 序列化的意义2. 如何实现一个序列化操作3. 序列化的高阶认识4. 常见的序列化技术及应用5. Protobuf 实现原理分析6. 序列化框架的选型 序列化 Java 平台允许我们在内存中创建可复用的 Java 对象,但一般情况下,只有当 JVM 处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 J...

2019-01-14 18:55:25 826

原创 分布式系统基础--Http协议

1.了解客户端和服务端的请求原理;2. HTTP 协议及其组成;3. Https 交互原理分析;Http 协议的组成大家可以通过抓包工具, Fillder 或者其他去抓去一个请求,然后可以看到如下的请求数据和响应数据。分为两部分,一个是客户端的请求信息,一个是服务端的响应信息,抓去到的信息如下:POST https://re.csdn.net/csdnbi HTTP/1.1方...

2019-01-14 08:54:54 353

原创 分布式系统基础--TCP/IP协议

1. 通信协议在分布式架构中的核心应用2. 深入了解 TCP/IP 和 UDP/IP 通信协议3. TCP 流量整形4. 基于 Java 自身技术实现系统通信5. 多任务处理及优化6. 了解什么是 NIO7. 组播协议 Multicast网络领域的知识a) 协议: tcp、 udp、 multicastb) IO(BIO、 NIO、 AIO)c) Socketd) NIO(...

2019-01-11 15:43:01 409

原创 Leetcode:84. Largest Rectangle in Histogram(面积最大的长方形)

Givennnon-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram. ...

2018-12-25 20:31:28 538 1

pokemon-datq.csv数据

1) 总共800行数据 2)csv格式数据 3)学习pandas基础数据

2024-05-22

xgboost时间序列预测资源

xgboost时间序列预测资源

2023-10-29

神经网络工具用法,数据在另外一个文档中

1)神经网络基本操作 2) 神经网络构造模型 3) 神经网络代码搭建

2023-10-26

第三章 PyTorch基础:Tensor和Autograd

1) Tensor和Autograd基础 2) tensor的基本操作 3) Autograd的基础操作

2023-10-25

pytorch快速入门文件

1)pytorch的介绍 2)pytorch的基本操作

2023-10-25

pyspark基础知识

pyspark基础知识

2023-10-12

lightGBM预测notebook代码

1)lightGBM预测波士顿房价代码 2)特征重要性可视化 3)模型保存 4)模型加载

2023-10-07

空空如也

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

TA关注的人

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