自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Bobo‘s Home

心若向阳,无畏悲伤

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

原创 记一次逗逼的算法经历

闲来无事,想着做一做leetcode的题,题目如下:如果 n 是偶数,则用 n / 2替换 n 。如果 n 是奇数,则可以用 n + 1或n - 1替换 n 。n 变为 1 所需的最小替换次数是多少?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/integer-replacement著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。我是想的直接使用位运算的方式进行计算,算法的过程如下(细节我就不说怎么回事了,感兴趣的

2021-11-21 01:13:21 127

原创 Java对象拷贝以及常用对象拷贝工具

许久没有更新过,最近因为这个问题引发线上bug,特再次整理汇总!!!文章目录1. 对象拷贝1.1 引用拷贝1.2 浅拷贝1.3 深拷贝2. 对象拷贝中常用的工具类2.1 Apache BeanUtils#copyProperties2.2 SpringUtils#copyProperties2.3 序列化(JSON)2.4 MapStruct(推荐)1. 对象拷贝Java语言中对象拷贝分为深拷贝和浅拷贝以及对象简单的引用拷贝(也就是通常使用的对象赋值)。1.1 引用拷贝引用拷贝即对象的赋值操作,就

2021-04-10 22:53:15 10473

原创 SpringBoot整合RPC框架Dubbo

目录1. 什么是Dubbo2. 设计架构2.1 角色2.1.1 提供者2.1.1 消费者2.1.1 注册中心2.1.1 监控中心2.1.1 容器3. 创建应用(maven + springboot + dubbo)3.1 安裝zookeeper1. 什么是DubboApache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dobbo本身阿里开源的RPC框架,现由Apache进行维

2020-07-12 17:20:58 683

原创 SpringBoot集成ElasticSearch使用

目录1. 客户端依赖2. 配置3. API3.1 索引3.1.1 创建索引3.1.2 判断索引是否存在3.1.3 删除索引3.2 文档3.2.1 创建文档3.2.2 判断文档是否存在3.2.3 获取文档内容3.2.4 更新文档3.2.5 删除文档3.2.6 批量插入3.2.7 搜索注:这里的客户端使用的是RestClient,没有使用spring-boot-starter-data-elasticsearch1. 客户端依赖<elasticsearch.version>7.6.2</

2020-06-27 23:00:38 258

原创 ElasticSearch笔记01

安装部署过程网上有很多教程,在此不累赘目录1. 什么是ES?2. 基本概念2.1 Index2.2 Type2.3 Document2.4 Filed2.5 倒排索引3. RestFul操作风格(通过kibana测试)3.1 POST方式创建Document3.2 PUT创建Document3.3 PUT更新文档3.4 PUT创建索引3.5 POST更新文档3.5 DELETE删除文档3.6 GET获取文档3.7 POST查询所有数据4. ES查询1. 什么是ES?Elasticsearch是一个基于

2020-06-26 20:32:22 147

原创 Zookeeper集群与Curator客户端

目录1. Zookeeper集群搭建1.1 将集群服务器上分别放置zookeeper文件1.2 修改对应服务器上的zookeeper配置文件1.3 在dataDir的指定目录创建myid文件,文件内写入服务器的编号1.4 启动集群服务器2. zab(zookeeper atomic broadcast)原子广播协议2.1 集群角色3. Leader选举3.1 启动时期3.2 运行时期4. observer角色及配置5. Curator客户端5.1 maven依赖5.2 curator连接对象的创建以及重连

2020-05-26 20:55:35 787 2

原创 Zookeeper案例

1. 统一配置中心在分布式集群系统中,经常要对某个配置信息进行修改,若一台一台对服务器进行修改,非常浪费时间,假如服务的体量非常大,几十台上百台甚至上千台服务器进行修改的话,几乎很不现实。zookeeper通过对节点数据进行监听,一旦配置信息发生变化,立马通知所有的客户端对数据进行重新读取。下面通过Java代码的方式对统一配置中心进行简单的实现。1.1 客户端package cn.tianqb.zookeeper;import org.apache.zookeeper.KeeperExcepti

2020-05-22 19:34:52 255

原创 Zookeeper Java API

建议:Zookeeper中Java API的学习重点在节点的创建,熟悉了权限的指定和节点类型,其他方法也就都会用了。1. 创建节点方法描述public String create(String path, byte[] data, List<ACL> acl, CreateMode createMode)同步创建节点public void create(String path, byte[] data, List<ACL> acl, CreateMod

2020-05-20 15:40:25 179

原创 Zookeeper基础

1. 什么是ZookepperZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次它们被实现时,都会有大量的工作来修复不可避免的错误和竞争条件。由于实现这类服务的困难,应用程序最初通常会忽略它们,这使得它们在出现更改时变得脆弱,并且难以管理。即使正确地执行了这些服务,在部署应用程序时,这些服务的不同实现也会导致管理复杂性。链接它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步

2020-05-20 14:27:26 276

原创 Docker学习

这里不讲Docker是什么?怎么用?既然学到了Docker,一定知道自己为什么要学习它。这里只是对学习过程中遇到的命令和常用命令进行总结!!!Docker中文文档Docker英文文档Docker官网阿里云开发者中心我的博客1. Docker安装(centos)更新yum(推荐,非必须)yum update安装docker依赖库$ sudo yum install -y yum...

2019-12-12 23:14:27 138

原创 ffmpeg笔记

这篇仅仅是自己的笔记,用起来方便一些!!!他人博客 https://www.jianshu.com/p/ddafe46827b7简单转换视频格式ffmpeg -i [源视频文件] [目的视频文件]如: ffmpeg -i input.mp4 output.mov-i 即input 标识输入视频文件常见视频编码MP4封装 = H264视频编码 + AAC音频编码WebM封装 = V...

2019-10-20 19:52:06 167

原创 微信小程序实现瀑布流(FlowLayout)效果

前言:小程序不同于安卓直接提供布局的配置,而必须要像写前端页面一样来写。并且小程序没有像web网页的DOM和BOM操作,准确的来说是存在这么个API的,但是我测试使用的时候,得到的数据总是不尽人意,地址为这个https://developers.weixin.qq.com/miniprogram/dev/api/wxml/SelectorQuery.html,想去了解的去看下,对于我来说就当没有好...

2019-10-13 22:55:26 3368

原创 Swagger学习笔记

什么是SwaggerSwagger使用于前后端分离开发的一款框架,能够动态的显示接口的信息并且对接口进行调试。优点为使用方便,配置简单,减少工作量等。注:Swagger推荐使用Restful接口开发规范Swagger官网Swagger的配置Swagger依赖<!-- https://mvnrepository.com/artifact/io.springfox/springfox-...

2019-10-03 22:12:33 302 1

原创 Git命令总结

Git命令总结1. 基础命令绑定签名git config user.name [username]git config user.email [email]git config --global user.name [username] // 设置全局,系统层面git config --global user.email [mail] // 设置全局,系统层面初始化git ini...

2019-09-28 20:51:03 114

原创 Java使用数组实现栈

看到了一个面试题,使用数组创建一个栈。所以亲自动手实现了一个,没有查资料,按照自己的想法去实现的,若存在不合理或者错误的地方,欢迎指出,谢谢!栈的特性:先进后出栈的方法:优点:指定泛型存储(任意类型)启发:ArrayList源码测试:本地测试所有方法均正确代码:class MyStack<T> { private int DEFAULT_CAP = 10;//...

2019-09-22 17:50:36 414

原创 List、Set、Map三大集合的排序问题

学了这么长时间的集合,是否会对这三大集合进行排序呢?首先,了解一下Comparator和Comparable通常,要对一个存储在集合内的实体类进行排序时,有两种策略:1. 实体类实现Comparable接口;2. 创建集合时指定Comparator,即实现Comparator接口;为了区分这两个接口,通过称实现Comparable的实体类是可排序的,而Comparator则称呼为比较器。下...

2019-08-15 09:59:09 238

原创 多线程总结

多线程主要运用在并发下,并且多线程的面试也多以并发的题目来考,我用思维导图做了总结。对多线程基础不太熟悉的,建议先去看Java多线程核心编程技术这本书,或者也可以看https://github.com/QingboTian/Java-Muliti-thread-Programming-Learning,代码的结构在描述上也比较清晰,然后再去学习JUC包下的类。...

2019-08-13 10:44:45 77

原创 ThreadPoolExecutor讲解

线程池这里首先明白一个概念,什么是线程池(自己总结的,总感觉太偏向于概念性的内容反而不利于理解):线程池就是提前创建好固定数量的线程,有任务则执行,没有任务则进行等待。线程池解决了线程频繁创建与销毁在资源上的浪费,一次创建多次使用一次销毁。优点统一管理,更加方便避免资源上的浪费控制并发数量等ThreadPoolExecutor继承关系构造器:重点(每个参数的意义)/** ...

2019-08-13 10:35:49 115

原创 数据库总结

之前对数据库的了解仅仅是会用,最近学习了数据库的一些底层和基础知识,用思维导图的方式做了整理,在这里做个记录,防止文件丢失等问题。自己总结的肯定有不足和错误的地方,有问题或者有更好的建议欢迎评论。由于是图片形式,若感觉不清晰的话,我可以将图片上传到服务器把链接贴出来供大家下载。...

2019-07-23 16:50:40 119

原创 NIO学习笔记

在IO流中,大致可以分为普通IO(阻塞式IO)、NIO(非阻塞式IO)、AIO(异步IO)三种。普通IO就是我们通常说的IO流,按照流对象可以分为字节流和字符流,按照的流的方向可以分为输入流和输出流。这里只是按照这两种方式进行划分,对于IO流还可以划分的更加的详细,这里就不加多说。下面这个表格有助于我们更好的了解IO流的结构:字节流字符流输入流InputStream...

2019-07-23 16:44:26 175

原创 SpingBoot学习笔记

之前学习的框架主要有ssh、ssm以及分布式以及分布式集群方面的知识,之后也一直想学习SpringBoot框架,无奈于没有多余的时间,正好实习的公司有用到SpringBoot框架,抽空学习了一下,知识点肯定不全,也是挑重点去学习了一下。之后肯定会慢慢去学习不知道的东西,必须要知根知底!!!下面的内容也是本人的笔记,若有错误,欢迎指出 。1. 什么是SpringBootSpring Boot是由...

2019-07-20 21:33:16 222

原创 图片像素的替换

最近朋友让我帮他一个忙,就是给他的图片中所有的棕色换成黑色,我深深感觉到了这个任务的艰巨,不会使用PS怎么办呢?已经答应了,怎么办呢?我一定可以的,怎么办呢?怎么办呢?怎么办呢?怎么办呢?撸代码呗!对Java了解比较全面的人,都知道Java有个专门针对图片有个BufferedImage这个类,这个类文档中是这么说的。什么?不理解,我就简单说说我的理解吧,其实就是它可以实现的功能主要有读取...

2019-06-29 11:37:16 1259

原创 Java中线程的状态详解

无论我们是在学习OS中了解的线程还是在多线程的学习中了解的线程,都会学习到一个共同的知识点,就是线程的生命周期或者是线程的状态,这里通过Java语言对线程进行详解。在Java语言中,我们对Thread类肯定是非常熟悉的,那大家知道在Java语言中,线程的状态在哪里定义的吗?在Java中,线程的状态是通过内部枚举类实现的,无论我们通过API或者是源码我们看到,线程有6中状态,分别是NEW,RUN...

2019-06-22 22:17:57 126

原创 多线程实现生产者/消费者模型

生产者/消费者模型不多讲,默认大家都是了解的,直接上代码。一对一(wait/notify)package chapter3.producerconsumer;public class Count { private int count; public int getCount() { return count; } public void setCount(int coun...

2019-06-16 00:57:00 1145

原创 实现三个线程轮流执行顺序打印ABC

这道题目在多线程的面试题中可能遇到的比较多,由于最近一直在学习Java多线程编程的知识,这里做一个总结,总结的可能并不是很全面,有问题或者有更好的编程方法也欢迎大家指出。这道题目的实现方式很多,这里就以我了解的进行一个总结。首先,我们看一下题目:有三个线程A、B、C,采用多线程的方式使三个线程轮流执行顺序打印ABC 10次,结果如下:通过wait/notify实现package tes...

2019-06-16 00:43:18 10373 4

原创 Java多线程学习

对多线程学习感兴趣的可以看一下实力推荐高洪岩大佬的Java多线程编程核心技术这本书https://github.com/QingboTian/Java-Muliti-thread-Programming-Learning

2019-06-13 22:48:32 101

原创 使用C语言实现Linux命令ls -l

#include <stdio.h>#include <dirent.h>#include <string.h>#include <sys/stat.h>#include <unistd.h>int ls(char *str);int ls_long(char *str, char *argv);char getFile...

2019-05-13 21:08:59 1184

原创 Java虚拟机之垃圾收集器

在学习垃圾回收之前,我们需要明白下面这个知识点。在Java虚拟机中,它会将它所管理的内存区域进行划分,也就是运行时所管理的内存区域,大致划分为以下几个区域:程序计数器、本地方法栈、虚拟机栈、方法区、堆、运行时常量池(实际它是在方法区中的)等。我们知道,前三个是线程私有的,随线程而生,随线程而死,后边的是属于线程共享的。由于前三个的特殊性,在回收时具有确定性,因此我们完全没有必要对这三个区域进行回...

2019-03-31 13:27:15 104

原创 Java设计模式

单例模式饿汉模式懒汉模式工厂模式工厂方法模式普通工厂模式多个工厂模式静态工厂模式抽象工厂模式

2019-03-14 21:16:56 120

原创 SpringMVC

SpringMVC属于Spring全家桶中的一员,作用于web层,Spring准确的来说可以支持一个项目的各个层,SpringMVC的三大组件为处理器映射器、处理器适配器、视图解析器,需要用户完成的组件是Handler和ViewSpringMVC工作流程SpringMVC架构SpringMVC入门jar包依赖前端控制器的配置(SpringMVC的核心就在前端控制器,没有前端控制器...

2019-01-18 17:03:06 132

原创 MyBatis

Mybatis架构环境搭建jar包核心配置文件sqlMapConfig.xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&amp;gt;&amp;lt;!DOCTYPE configurationPUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN&quot;&quot;http

2018-12-23 14:33:24 135

原创 Oracle学习笔记_02

Oracle_02Oracle的体系结构数据库实例——表空间——用户——表结构——数据文件创建表空间create tablespace demo1 -- 表空间名称datafile &amp;amp;quot;c:\demo1.dbf&amp;amp;quot; -- 表空间路径(服务器)size 10m -- 初始化表空间大小autoextend on -- 自动增长空...

2018-12-17 19:18:37 239 2

原创 SSH小项目——客户管理模型(crm_ssh)

客户管理模型(ssh整合)https://github.com/QingboTian/crm_ssh该项目不完整,意在结合ssh进行项目的开发,有意者下载记得修改配置文件,如数据库连接等!

2018-12-16 18:38:38 454

原创 Oracle学习笔记_01

备注:Oracle服务器和客户机提前安装配置完成(scott和hr用户必须解锁以供学习测试)!!!了解Oracle的体系结构Oracle中文合集手册:链接: https://pan.baidu.com/s/1d4WhBos9sYfVZRw4l4rabg 提取码: yvmjOracle操作表select * from tab;select * from emp;select * ...

2018-12-13 14:58:26 153

原创 jQuery学习

jQuery入门什么是jQuery?jQuery可以说是Javascript的一个框架,也可以说是JavaScript的函数库,封装了大量的方法JQuery和DOM的要点jQuery和DOM对象不可以直接调用进行使用,但是可以通过内部的机制进行对象之间的转换jQuery的使用(三种方式)&amp;amp;amp;amp;amp;lt;script type=&amp;amp;amp;amp;quot;text/javascript&amp;amp;amp;amp;qu

2018-12-08 16:39:02 148

原创 Spring——笔记03

基于AspectJ的注解AOP操作开启AOP操作及类的配置&lt;!-- 开启自动代理(aop操作的注解方式) --&gt;&lt;aop:aspectj-autoproxy&gt;&lt;/aop:aspectj-autoproxy&gt;&lt;!-- 创建对象 --&gt;&lt;bean id="user" class="tqb.anno.test.User"&gt

2018-11-14 18:56:54 213

原创 Spring——笔记02

通过注解方式进行bean管理准备jar包(红框内为aop操作需要的依赖)引入约束&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema...

2018-11-11 19:41:36 114

原创 Spring——笔记01

Spring概述Spring是开源的轻量级框架Spring的两大核心思想1)AOP(面向切面编程)扩展功能模块时对源代码不进行修改来实现2)IOC(控制反转)获取对象不再使用我们以往的new,而是使用配置文件进行获取Spring是一站式的框架,在三层结构中每一层都有解决方案1)dao层:jdbcTemplate2)service层:Spring的IOC3)web层:SpringM...

2018-11-09 17:21:14 201

原创 Struts2——笔记04

Struts2拦截器概述Struts2封装的功能是靠拦截器实现的Struts2有很多的功能,也就是有很多的拦截器,每次加载时,只加载一些默认的拦截器Struts2中默认拦截器配置的位置(该jar包下的struts-default.xml文件)默认加载的拦截器 &lt;interceptor name="alias" class="com.opensymphony.xwork2...

2018-11-05 17:33:37 145

原创 Struts2——笔记03

OGNL概述ognl同jstl表达式类似,但又比jstl功能强大且高效

2018-10-31 18:05:32 145

空空如也

空空如也

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

TA关注的人

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