自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

mosterRan的博客

感谢一直努力的自己!

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

原创 深入理解设计模式之单例模式

单例模式属于创造型模式,是常用的设计模式之一。单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。懒汉式/** * @author zhr * @create 2018-11-15 下午3:59 */public class Singleton { private static Singleton instance; pri...

2018-11-15 16:18:25 7502

原创 斐波那契数列理解

斐波那契额数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……,这是由数学家列昂纳多·斐波那契由兔子引入的,又称为兔子数列。斐波那契数列是我第一个入门算法,最开始经典解法是用递归的形式。//n:想要得到前几个数的和public static void fibo(int n){ if(n < 1){ return 0; } if(n == 1 || n == ...

2019-10-24 09:53:21 2646

原创 Spring Boot 数据库JDBC

数据源(DataSource)数据源是数据库连接的来源,通过 DataSource 接口获取。类型通用型数据源(javax.sql.DataSource)主要使用场景:通用型数据库,本地事务,一般通过Socket方式连接。分布式数据源(javax.sql.XADataSource)主要使用场景:通用型数据库,分布式事务,一般通过Socket方式连接。嵌入式数据源(org.sprin...

2019-10-15 22:54:40 539

原创 Spring Boot 嵌入式Web容器(下)

Spring Boot嵌入式Web容器Embedded Tomcatorg.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerorg.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainerimport o...

2019-10-13 20:49:35 272

原创 Spring Boot 嵌入式Web容器——传统Servlet容器(上)

传统Servlet容器JettyEclipse Jetty:Jetty的Web服务提供http服务和servlet容器并且支持动态和静态两种内容,从jetty-7开始将jetty的web服务和相关核心放到了Eclipse上面Jetty提供的功能:异步的HttpServer标准Servlet容器webSocket服务器http/2服务异步Client(http/1.1,http/2...

2019-10-13 20:03:42 386

原创 SpringBoot Web(下)

什么是Servlet?Servlet是一种基于Java技术的Web组件,用于生成动态内容,由容器管理。类似于其他Java技术组件,Servlet是平台无关的Java类组成,并且由Java Web服务器加载执行什么是Servlet容器?Servlet 容器,有时候也称作为 Servlet 引擎,作为Web服务器或应用服务器的一部分。通过请求和响应对话,提供 Web 客户端与 Servlets ...

2019-10-07 11:29:49 328

原创 SpringBoot Web(中)

REST理论基础REST用不同状态来进行rpc传输,比较轻量级的web服务架构属性:性能可伸缩性统一接口简化性组件可修改性组件通讯可见性组件可移植性可靠性SpringBoot REST核心接口:定义相关:定义是一个Rest接口@Controller@RestController:是Controller+RestBody的组合@Target(ElementTyp...

2019-10-06 17:24:26 646

原创 SpringBoot Web(上)

微服务:是一种现代的软件SOA架构,用于建立分布式系统,主要是解决单体应用(Monolithic Application)规模增加时所带来的问题分布式系统主要是分布式计算什么是SOA?面向服务的体系结构,任何资源都是服务快速开始建立一个spring-boot项目https://start.spring.io/...

2019-09-30 22:34:37 381

原创 Java编程模型

面向对象编程(OOP)首先Java面向对象编程有三大特性为封装性、继承、多态封装:决定数据访问的限制继承:决定上下游的关系多态:一种接口多种实现面向切面编程(AOP)面向切面编程分为三种种,一种静态、一种动态、字节码提升静态接口:使用java.util.logging.Filter、java.util.EventListener,当我执行代码的时候会进行拦截通过规定拦截方法、注...

2019-09-22 21:03:29 532

原创 最全的Java版本历史

JDK 1.0(1996)Sun公司发布Java1.0,发布初期叫Oak,后改名为Java(JDK1.0基本上只支持Java语言基础特性)JDK 1.1(1997)引入内部类引入JDBC: 是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。JDBC是面向关系型数据库的。引入RMI...

2019-09-22 16:17:17 4957 1

原创 并发集合

List Set Map,在遍历的过程中,不允许更新操作(增删改),由于快速失败fail-fast机制,会抛出Concurrent Modification Exceptionpublic class User { private int id; private String name; public User(int id,String name){ ...

2019-09-18 22:19:37 269

原创 并发工具CountDownLatch&CyclieBarrier&Semaphore

CountDownLatchCountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器功能eg:如有一个任务A,要等待其他n个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现,每当线程完成任务后,计数器值就会减1.当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。使用方法初始化...

2019-09-17 20:16:48 686

原创 并发深度解析CAS&AQS

CAS(1) 概念:CompareAndSet 一种无锁的原子算法,使用乐观锁, 如:版本控制,CAS可以保证一次的读-改-写操作是原子操作,在单处理器上该操作容易实现,但是在多处理器上实现就有点儿复杂了。悲观锁:写(增删改)的操作多,读(查)的少 Lock乐观锁:读的多,写的少(2) 思想:给你一个期望值,与你现在的值比较,如果相等立即修改,反之不能修改什么也不做CAS(V,E,N)...

2019-09-15 16:23:57 368

原创 Java并发之深度解析volatile

1.首先复习一下CPU和JMM的关系:CPU缓存模型硬件:CPU 中有 寄存器Cache:包含L1i和L1d,L2,L3缓存内存eg:CPU想要计算i++的步骤如下:Cache缓存会将 i 拷贝一个副本到缓存当中,然后寄存器对i进行读取然后 i++操作返回给 Cache 最后把 Cache的数据更新到内存当中如果此时有两个线程,一个只做i++写入内存,一个从内存读取,那么他们就...

2019-09-08 18:29:23 411

原创 Java并发深度解析synchronized关键字

问题:在并发请求的情况下对一个属性进行操作会导致数据不一致性解决方案:利用锁的机制来实现同步锁机制互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。可见性:必须确保在锁被释放之前,对共享变量所做的修改,对于随后获得该锁的另一个线程是可见的(即在获得锁...

2019-09-01 20:38:55 280

原创 Java内存模型

1.基本概念:程序:代码,完成某一个件任务,代码序列(静态的概念)进程:程序在某些数据上的一次运行(动态的概念)线程:一个进程可能包含一个或多个线程(占用资源的独立单元) 线程介绍如何开多进程 ?如何开多线程?2.JVM与线程:JVM什么时候启动?类被调用 JVM线程–>其他的线程(main)线程在JVM中3.JVM内存模型方法区:类信息、常量、静态变量、运行时...

2019-08-31 23:17:41 579

原创 Spring注解查找表

注解@SpringBootApplication——spring boot应用标识@Controller——Spring MVC注解,表示此类用于负责处理web请求@RequestMapping——Spring MVC注解,表示如果请求路径匹配,被注解的方法将被调用@ResponseBody——表示此方法返回的是本文而不是试图名称@PathVariable——对于rest风格获取参数 u...

2019-08-31 09:50:20 691

原创 Arthas 快速入门

介绍Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。可以解决的问题:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全...

2019-08-25 12:12:18 1179

原创 RocketMq快速入门 (三)

发送消息类型:普通消息、顺序消息(实现有序消费)、事务消息(解决分布式事务实现最终一致)RocketMq有两种消费模式:DefalutMQPushConsumer:推送模式为consumer请求broker建立起长连接的关系,broker每5秒钟监测是否有消息,如果有就推送数据,使用DefalutMQPushConsumer实现消息消费,broker会主动记录消息消费的偏移量(推荐)Defa...

2019-08-12 21:44:16 504

原创 RocketMq入门(二)下载、检验、控制台、框架介绍

RocketMq环境要求:64bit OS,Linux/Unix/Mac 64bit JDK1.8+ Maven 3.2.x Git 4g+ free disk for Broker serverRocketMq下载:http://rocketmq.apache.org 目前最新版本4.5版本点击 Latest releasev4.5conf目录配置文件说明2m-2...

2019-08-11 21:44:42 459

原创 RocketMQ介绍及主流MQ对比(一)

MQ称为Message Queue 解决项目之间的耦合问题 解决A和B项目之间的通信主流MQ对比:Kafka、RocketMq、RabbitMqKafka:Apache下的子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统(用于日志领域)快速持久化:通过磁盘顺序读写与零拷贝机制,可以在O(1)的系统开销下消息持久化 高吞吐:在一台普通服务...

2019-08-11 17:37:43 1360

原创 手推点到平面距离

今天在算点到平面距离的时候,直接套用公式就求得结果,感觉很不爽,想知道具体推导公式,于是自己手推了一下,推导涉及投影长度公式,想具体了解的同学可以点击链接出门左转即可https://blog.csdn.net/qq_35975685/article/details/91152718话不多说直接上图:喜欢的同学别忘给点赞~...

2019-06-08 09:46:47 405 1

原创 手推向量投影长度、投影向量

投影 (tóuyǐng),数学术语,指图形的影子投到一个面或一条线上。声明向量F为F、 向量F的大小为|F|,向量b为b、向量b的大小为、|b|当我们得到了投影的大小之后|F|因为 F 在 b 上所以 单位向量相同,F 和 b存在一个比值关系如下:F / |F| = b / |b|因此 投影向量F为 (|F| * b)/ |b|...

2019-06-07 21:36:49 6630

原创 PySpark SQL Basics

导包import numpy as npimport pandas as psfrom pyspark import SparkContext,SparkConffrom pyspark.sql import SparkSessionfrom pyspark.sql import *%config ZMQInteractiveShell.ast_node_interactivity='...

2019-06-03 21:02:24 531

原创 PySpark-RDD Basics

导包import numpy as npimport pandas as psfrom pyspark import SparkContext,SparkConf%config ZMQInteractiveShell.ast_node_interactivity='all'初始化sparkcontent#方法一:sc = SparkContext(master='local[2]'...

2019-06-03 17:19:25 591

原创 BigTable知识点随记

BigTable没有Schema用户需要自定义数据的下标是行和列的名字BigTable是一个稀疏的分布式的持久化存储的多维序列Map,Map(row:string, column:string,time:int64)行:同一行关键字的读或者写都是原子的列族:列关键字组成的集合叫做“列族”,列族在使用之前必须先创建,然后才能在列族中任何的列关键字下存放数据,一张表的列族不能太多(最多几百个...

2019-05-29 16:01:46 523

原创 Hadoop核心介绍课程笔记

Hadoop历史雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。2004年Nutch创始人Do...

2019-05-28 16:43:49 532

原创 Seaborn函数总结

Seaborn是matplotlib库的扩展,主要专注于统计学的分析Seaborn背后有调色板import seaborn as snssns.set_style(‘darkgrid’) 设置一些背景sns.load_dataset(‘tips’) 加载数据 seaborn datasetssns.relplot(x=‘total_bill’,y=‘tip’, data=tips) 画...

2019-05-23 22:22:06 2828 1

原创 matplotlib函数总结

导入matplotlibimport matplotlib.pyplot as pltimport matplotlibFigures对象包含一个或多个Asex对象方法:matplotlib.rc(‘figure’, figsize = (14, 7)) 全局设置大小matplotlib.rc(‘font’, size = 14) 全局设置字体matplotlib.rc(...

2019-05-22 21:07:14 617

原创 numpy&pandas函数总结

导入numpy属性:ndarray 多维数组属性如下itermsize 每个项占用多少个字节dtype 多维数组是整体什么类型size 多维数组有多少项shape 多维数组的形状 几行几列ndim 数组的维数nbytes 数组中所有数据消耗的字节数方法:np.array([0,1,2,3]) 创建一个数组 []或()np.arange(5) 从0开始5个数字当做数...

2019-05-22 21:06:35 320

原创 python常用函数总结

help(obj) 在线帮助, obj可是任何类型eval(str) 表示合法的python表达式,返回这个表达式exec(str) 执行合法的python声明,返回字节码print(value):打印函数range(valeu):打印 0-(value-1)range(start,stop)range(start,stop,step)ord()函数获取字符的整数表示chr()函数...

2019-05-21 20:58:04 132

原创 703. Kth Largest Element in a Stream

设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。package com.zhr.heap;/** * @ Author :zhenghaoran. ...

2019-01-25 15:20:23 185

原创 225. Implement Stack using Queues

使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空package com.zhr.queue;import java.util.LinkedList;import java.util.Queue;/** * @ Author :zhenghaoran. * @ D...

2019-01-23 10:08:29 101

原创 232. Implement Queue using Stacks

使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。package com.zhr.stack;import java.util.Stack;/** * @ Author :zhenghaoran. * @ Date :...

2019-01-23 10:04:35 137

原创 24. Swap Nodes in Pairs

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1-&gt;2-&gt;3-&gt;4, 你应该返回 2-&gt;1-&gt;4-&gt;3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 /** * 两两结点反转 1 2 3 4 变成 2 1 4 3 * @param head...

2019-01-22 10:00:10 78

原创 20. Valid Parentheses

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。package com.zhr.stack;import com.zhr.exception.CodeException;import java.util.HashMap...

2019-01-22 09:57:45 146

原创 142. Linked List Cycle II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表git源码地址:https://github.com/a947000098/algorithm-case/** * 142 ...

2019-01-21 18:29:30 85

原创 141.Linked List Cycle

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 /** * 一个链表怎么看是否有环 * 第一种:如果一个链表一秒钟后走到了null那么就说明没有环 延迟1s * 第二种:使用一个Set数据结构,每次遍历结点的时候都添加进去,如果...

2019-01-21 18:27:06 111

原创 Hbase命令大全

首先到官方下载Hbase最新版 进入到bin目录./start-hbase.sh 开启hbase./hbase shell 启动hbase shell查询服务器状态 status查询hbase版本 version查看当前用户 whoamiddl操作创建一个表 create ‘tablename’,‘tab1_id’,‘tab1_add’,‘tab1_info’列出所有的表 list...

2019-01-21 10:27:06 227

原创 算法与数据结构你需要了解

数据结构分类按照存储结构来分线性结构:Array、Stack/Queue、PriorityQueue(heap)、LinkedList(single/double)非线性结构:Tree/Binary Tree、Binary Search Tree、HashTable、DisjointSet并查集、Trie字典树、Bloom Filter、LRU Cache常见算法General C...

2019-01-17 15:15:02 126

bcprov的jar包ssl单向认证

用于生成安卓密钥比不可少的jar包,1.查看/etc/profile下JAVA_HOME配置路径, 如果不存在,使用whereis java命令你会看到java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java 打开java.conf,找到JAVA_HOME路径 2.将bcprov-jdk16-146.jar放入JAVA_HOME/jre/lib/ext下 3.打开JAVA_HOME/jre/lib/security下的java.security文件,在下面加上 security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider

2018-12-13

手写可重入锁

java手写可重入锁,对刚学锁的同学很有帮助,可以来下载互相学习一下。

2018-05-17

空空如也

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

TA关注的人

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