自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

橘子味的阳光

难得世界那么美

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

原创 java面试笔试宝典2020年4月

java面试题,编码规范

2018-09-15 10:37:34 869

原创 java多线程面试宝典

1. 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?这个线程面试题通常在第一轮面试或电话面试时被问到,这道多线程问题为了测试面试者是否熟悉 join 方法的概念。答案也非常简单——可以用 Thread 类的 join 方法实现这一效果。t.join()方法阻塞调用此方法的线程(calling thread),直到线程t完成...

2018-09-04 17:51:25 1079

原创 关系型数据库面试宝典

一、存储引擎查询搜索引擎命令SHOW ENGINESInnoDB存储引擎(default)支持事务行锁MyISAM存储引擎批量操作效率高表锁支持全文检索不是真正删除,清理碎片化optimize table 表名MEMORY存储引擎 二、drop,delete与truncate的区别DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行...

2018-09-02 20:40:51 510

原创 22,23合并K个链表链表

21. 合并两个有序链表迭代法/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode { l3 := new(ListNode) head := l3 for l1!=nil &&

2021-07-07 22:54:21 184 2

原创 递归-跳台阶/爬楼梯

70. 爬楼梯前往楼梯顶部最后一跳要么是1台阶, 要么是两阶, 所以只要把x-1阶的部署加上x-2阶的步数,就能算出x阶的步数了f(x)=f(x−1)+f(x−2)func climbStairs(n int) int { if n==1 { return 1 } if n==2 { return 2 } return climbStairs(n-1) + climbStairs(n-2)}但是 超时了, 因为进行了重复计

2021-07-06 22:12:16 150

转载 基于Binlog的数据迁移

文章目录前言一、入Binlog实时采集 + 离线还原的解决方案二、使用步骤1.Binlog2.Canal总结前言 关系模型构建起整个数据分析的基石,关系型数据库作为具体实现、采集MySQL数据接入Hive是很多企业进行数据分析的前提。如何及时、准确的把MySQL数据同步到Hive呢。一、入Binlog实时采集 + 离线还原的解决方案基于Binlog日志的数据还原,与在线业务解耦采集通过分布式队列实时传递,还原操作在集群上实现,及时性及可扩展性强Binlog日志包括了增、删、改等明细动作..

2021-06-30 14:23:36 814

原创 RDB和AOF都是什么,AOF日志量太大时redis如何处理

RDB快照形式 (默认)配置方法save 900 1 # 900 秒内有 1 个key 变化,则存入 RDB 文件save 300 10Redis运行在内存中但是周期性全量持久化到RDB二进制文件中(RDB)优点: RDB文件紧凑,体积小,网络传输快,适合全量持久化;恢复速度比AOF快很多。与AOF相比RDB最重要的优点之一是对性能的影响相对较小。缺点: RDB文件数据快照的会造成数据丢失,因此AOF持久化成为主流。此外,RDB文件需要满足特定格式,兼容性差(如老版本的Redis不兼容新版本的

2021-06-29 21:44:55 516

原创 写点redis面试加分的东西

redis支持的数据结构Redis 内部内存管理Redis 内部使用一个 redisObject 对象来表示所有的 key 和 value。redisObject 最主要的信息:type 表示一个 value 对象具体是何种数据类型encoding 是不同数据类型在 Redis 内部的存储方式。redis如何实现string,这样实现有什么好处存储数字的话,采用int类型的编码,如果是非数字的话,采用 raw 编码;数据结构–动态字符串简单动态字符串SDS 数据类型的定义:  1、

2021-06-29 16:40:14 104

转载 Go语言你会停止goroutine吗

一个没有停止的goroutine当 goroutine 内的任务,运行的太久,又或是卡死了…就会一直阻塞在系统中,变成 goroutine 泄露,或是间接造成资源暴涨,会带来许多的问题。func main() { ch := make(chan string, 6) go func() { for { ch <- "脑子进煎鱼了" } }()}1. 关闭 channelclose 机制来完成对 goroutine 的精确控制func main() { ch :=

2021-06-17 19:46:11 409

原创 滑动窗口法

基本概念滑动窗口法用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,可以通过旧有的计算结果对搜索空间进行剪枝,这样便减少了重复计算,降低了时间复杂度。往往类似于“请找到满足xx的最x的区间(子串、子数组)的xx”这类问题都可以使用该方法进行解决。实例Leetcode 209. 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:

2021-06-03 16:32:54 105

原创 leetcode617-java合并二叉树

你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。合并二叉树两个二叉树的对应节点可能存在以下三种情况,对于每种情况使用不同的合并方式。如果两个二叉树的对应节点都为空,则合并后的二叉树的对应节点也为空;如果两个二叉树的对应节点只有一个为空,则合并后的二叉树的对应节点为其中的非空节点;如果两个二叉树的对应节点都不为空,则合并后的二叉树的对应节点的值为两个二叉树的对应节点的值之和,此时需要显性合并两

2021-01-21 17:41:05 104

原创 对volatile的认知

volatile是jvm提供的轻量级同步机制保证了不同线程对变量操作的内存可见性强制线程每次读取时从主内存取值禁止指令重排序编译器可能对输入指令进行执行重排序,各个语句执行的先后顺序不一致,但会保证执行结果一直, 但是忽略的数据的依赖性通过在指令间添加内存屏障,强制刷新cpu缓存数据,并且禁止指令重排序, store的屏障指令进行写操作, 使用copy命令刷新到主内存,load屏障指令从主内存中读取共享变量不具备原子性...

2020-11-11 15:51:35 156 4

原创 你知道多少wait与sleep区别(看看你在哪个工作年限)

找实习sleep()方法方法是属于Thread类中的静态方法。wait()方法属于Object类中的。初级sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但依然是监控状态保持者(线程不会释放对象锁),当指定的时间到了又会自动恢复运行状态。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。中级sleep(1000)和wait(1000)的区别:Thread

2020-11-11 12:28:23 118

原创 从观察者模式到spring事件机制

观察者模式(Observe Pattern)定义对象之间的一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。业务开发中,观察者模式对我们很大的一个作用,在于实现业务的解耦。spring事件机制Spring 基于观察者模式,实现了自身的事件机制,由三部分组成:事件 ApplicationEvent:通过继承它,实现自定义事件。另外,通过它的 source 属性可以获取事件源,timestamp 属性可以获得发生时间。事件发布者 ApplicationEven

2020-11-11 11:09:13 211

原创 让Redis和Mysql保持数据统一

缓存一致性业务场景缓存不一致场景解决方案业务场景在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到 Redis,而不是直接访问MySQL等数据库。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能出现数据不一致的情况。\缓存不一致场景1.如果删除了缓

2020-06-01 11:27:34 291

原创 SQL开发规范SQL 技巧

一、不能命中索引的 SQL(1)负向条件查询不能使用索引。反例: not in/ not exists /!= / <>select * from order where status!=0 and stauts!=1可以优化为in查询:select * from order where status in(2,3)正例: <,<=,=,>,>=,BE...

2020-04-30 15:43:23 196

原创 Redis 持久化,从 RDB 到 AOF 到混合持久化

想要加入阿里语雀,请在本文下方评论阿里语雀

2020-04-23 18:36:34 142

原创 python基础和编程库

一、基本数据类型 整数/浮点数/字符串/布尔值True和False/空值None不是0 内置数据类型:列表[‘Michael’, ‘Bob’, ‘Tracy’],list是一种有序的集合,可以随时添加和删除其中的元素变量 python是动态变量,不仅可以是数字,还可以是任意数据类型,是引用 与之对应的是静态变量,java是静态变量字符串 字符串可以用”或者”“括起来表示。 如...

2019-07-30 20:00:21 25163 1

原创 ElasticSearch-重建索引两种方法

null_value一个null值不能被索引或搜索。当字段设置为null(或空数组或null值数组)时,它被视为该字段没有值。null_value参数允许您用指定的值替换显式空值,以便对其进行索引和搜索。例如:PUT my_index{ "mappings": { "my_type": { "properties": { "status_code":...

2019-07-25 17:15:35 4823

原创 java后端学习Vue.js2.X渐进式框架

易用性灵活性高效性生态完善环境nodejs不是一个js框架,千万不要认为是类似jquery的框架,nodejs是js运行时,运行环境,类比java中jvm,java的开端是什么,无疑是jvm,自从有了jvm,java才能吹牛说自己是“一次编写处处运行”,不管你是windows还是linux,只要安装了对应版本的jvm都可以运行.class文件。同样nodejs的作用和jvm的一样一样...

2019-06-25 20:08:46 317 1

原创 ElasticSearch-安全重启集群节点,升级节点

ES 集群,有时候可能需要修改配置,增加硬盘,扩展内存等操作,需要对节点进行维护升级。但是业务不能停,如果直接kill 掉节点,可能导致数据丢失。而且集群会认为该节点挂掉了,就开始转移数据,当重启之后,它又会恢复数据,如果你当前的数据量已经很大了,这是很耗费机器和网络资源的。本文转载官方提供的安全重启集群节点的方法:第一步:先暂停集群的shard 自动均衡。curl -XPUT http:/...

2019-06-21 14:22:34 1436

原创 Mybatis-Plus-集mybatis与hibernate的优点一起的框架

优势SQL语句可以自由控制、更灵活和性能更高SQL与代码分离,易于阅读和维护提供XML标签,支持编写动态SQL语句劣势简单CURD操作也要写SQL,开发量大XML中需要维护大量SQL自身功能少,需要依赖插件Mybatis-Plus简介增强Mybatis无侵入,损耗小,强大的Curd操作支持lambda形式调用,支持多种数据库支持主键自动生成,支持ActiveRec...

2019-06-11 17:24:36 5759

原创 Javascript

利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位。方法一:document.getElementById("EleId").style.visibility="hidden";document.getElementById("EleId").style.visibility="visible";...

2019-05-14 16:11:28 1436

原创 beego-go语言web应用

beego >简介 特点快速开发mvc架构架构及原理 >(模块化设计,模块解耦) 1. cache文件,内存,memcache,redis(推荐)2. configini,json(推荐),xml,yaml3. context上下文(处理请求)4. httplibs支持get,post,put,delete,head支持https支持超...

2019-04-30 17:58:41 194

原创 TimeUnit-给定单元粒度的时间段

概念表示给定粒度单位的时间持续时间,并提供跨单位转换的实用方法,并在这些单元中执行定时和延时操作作用时间颗粒度转换延时应用1 延时可读性比较差Thread.sleep(4*60*1000);替换语句TimeUnit.MINUTES.sleep(4); // sleeping for 4 minutes其他用例TimeUnit.DAYS //天 T...

2019-04-28 11:24:04 1854

原创 Kubernetes1-Jenkins+K8s[待更新]

官网 > jenkins.io下载war java -jar xxx.war启动访问:localhost:80801.继续安装插件系统管理->管理插件->可选插件->rebuilder 每次构建不用重新输入参数safe restart 安全重启jenkins2. 系统管理->2.1 安全配置configuration global secu...

2019-04-25 15:06:55 2474

原创 Go语言实战(第一章)-并发

并发 goroutinegoroutine 是可以与其他 goroutine 并行执行的函数,同时也会与主程序(程序的入口)并行执行。 goroutine 很像线程,goroutine 使用的内存比线程更少, Go 语言运行时会自动在配置的一组逻辑处理器上调度执行 goroutine。这让编程模型更倾向于在 goroutine之间发送消息,而不是让多个 goroutine 争夺同一个数据的使...

2019-04-11 16:20:05 192

原创 ElasticSearch3-painless脚本应用进行range过滤和排序

使用painless脚本操作es

2019-03-29 14:00:59 2887 2

原创 ElasticSearch2-官方文档翻译(分布式,集群,docker,数据拷贝)

Elasticsearch为分布式而生,而且它的设计隐藏了分布式本身的复杂性。1.分布式以下这些操作都是在底层自动完成的:将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。将分片均匀的分配到各个节点,对索引和搜索做负载均衡。冗余每一个分片,防止硬件故障造成的数据丢失。将集群中任意一个节点上的请求路由到相应数据所在的节点。无论是增加节点,还是移除节点...

2019-03-27 16:35:50 205

原创 elasticsearch集群部署服务器问题

centos1. 不能使用root启动es需要创建用户useradd es 创建用户testuserpasswd es 给已创建的用户testuser设置密码删除 userdel es改变文件所有者 -R递归chown -R es:es /usr/local/elasticsearch2.打开安全组策略后还是访问不到您好,如果是elasticsearch,还需要在配置文件y...

2019-03-21 09:26:48 3608 4

原创 spring boot使用三种拦截器

https://blog.csdn.net/weixin_38704338/article/details/81285377https://www.cnblogs.com/bingshu/p/7819932.html过滤器(Filter) :可以拿到原始的http请求,但是拿不到你请求的控制器和请求控制器中的方法的信息。拦截器(Interceptor):可以拿到你请求的控制器...

2019-03-19 16:10:32 426

原创 Go语言实战(第一章)-基础知识

Go初识开源容易的构造简单,高效,可靠服务器编程,如处理日志、数据打包、虚拟机处理、文件系统等分布式系统、中间件、数据库代理器

2019-03-12 21:48:11 176

原创 ElasticSearch1-官方文档翻译(概念,搜索,聚合篇)

全文搜索结构化数据------&amp;amp;amp;amp;amp;amp;gt;关系型数据库存储,查找非结构化数据—&amp;amp;amp;amp;amp;amp;gt;1.顺序扫描法(从头到尾) 2. 全文搜索(建立文本库,创建索引搜索)全文搜索实现 ElasticSearch高度可扩展的开源全文搜索和分析引擎快速,近实时的对大数据的存储和搜索、分析异步写入基于java语言,Lucene引擎自身带有分布式,solr需要依赖zookeepers

2019-03-12 21:03:25 592 1

原创 docker2-docker存储持久化|数据管理

按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。数据卷的生存周期...

2019-03-12 20:59:09 192

原创 docker1-docker常用命令|Dockerfile|网络类型

基本概念基于GO语言软件容器化docker是一个装应用的容器(类似于虚拟机高于虚拟机)解决了什么问题:运行环境不一致的问题每个容器独立不影响(LXC容器虚拟化-linux下)增加容器简便不用记录存储位置启动速度慢时势造英雄:统一云计算/敏捷开发(PaaS平台即服务,平台提供了存储,数据库,网络,负载均衡,自动扩展的功能)架构图将软件或web应用build构建出镜像&...

2019-03-12 20:48:51 1579

原创 Blockly-可视化编程工具入门待更新

概述基于Web的、开源的、可视化程序编辑器。Blockly 是一个完全客户端应用,它无需服务端的任何支持(除非你要使用云存储等服务端功能),且没有第三方的依赖(除非你想重新编译内核),一切都是开源的。优势代码可导出 - Blockly 直接支持 JavaScript、Python、PHP、Lua、Dart 语言源码的导出。开源 - Blockly 开放所有源码,你可以复制、修改、并...

2019-03-12 15:46:05 4254 3

原创 PostgreSQL-知识点

功能强大的 开源的 对象关系数据库管理系统MySQL与PostgreSQL比较可靠性是PostgreSQL的最高优先级

2019-03-11 11:14:53 1309

原创 nginx2-nginx实现反向代理|负载均衡|宕机处理|热启动

集群会产生哪些问题分布式job幂等性问题(重复),例如任务调度会话session共享问题分布式生成全局id(提前生成好,存在redis)反向代理不暴露真实ip地址先配置反向代理,再配置负载均衡(集群)负载均衡实现集群根据权重,轮训机制,ip绑定...

2019-02-18 23:02:42 478

原创 同步器1-CountDownLatch倒计时计数器

描述有一个任务需要等待其他几个人物执行完毕后才能执行import java.util.concurrent.CountDownLatch;public class CountDownLatchDemo { public static void main(String[] args){ final int num = 2; //两个任务后 ...

2019-01-19 11:48:28 234

原创 Exchanger-两个线程进行数据交换

场景绑架案:一手交钱,一手交人校对工作codepackage com.zjy.thread;import java.util.concurrent.Exchanger;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Exchanger...

2019-01-19 11:08:50 156

linux下的redis安装包含配置文件

linux下的redis安装包含配置文件,配置文件包含主服务器配置,从服务器配置

2018-09-29

java坦克大战源码

1.游戏要有图形用户界面,界面能够反映游戏所有的细节。 2.界面中要有坦克,墙,树林,河流。 3.界面中要有一个“家”,“家”被攻击中则输了游戏。 4.坦克分两种,敌方和我方。 5.墙也分为两种,可以穿透的普通墙,不可以穿透的铁墙。 6.树和河流均只有一种,树林坦克可以通过。 7.坦克可以发射子弹,敌我方的子弹属性一样。 8.我方子弹可以杀死敌方坦克,敌方子弹也可以杀死我方坦克,但需要多枪子弹才可以杀死。

2017-09-05

空空如也

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

TA关注的人

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