自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ding_wl

学无止境!

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

原创 知识文章链接

一、git廖雪峰git教程

2021-06-15 21:17:42 161

原创 算法 -- 递归与非递归实现二叉树的前中后层遍历

通过递归与非递归两种方式,实现二叉树的构建,遍历。前序遍历:中序遍历:后续遍历:

2020-12-08 10:25:41 244 1

原创 Linux实操篇--进程管理

一、基本介绍在linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。每个进程都可能以两种方式存在。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。二、显示系统执行的进程1.基本介绍ps命令是用来查看目前系统中,有哪些正在执

2020-11-19 14:57:49 286 1

原创 Linux实操篇--权限管理

一、组管理1.基本介绍在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组其它组的概念。1)文件/目录所有者一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。查看文件的所有者:基本语法:ls -ahl修改文件所有者:基本语法:chown 用户名 文件名2)所在组当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。查看文件/目录所在组:基本语法:ls -ahl修改文件所在的组:基本语法:chgrp 组名

2020-11-18 18:18:01 216

原创 Linux实操篇--Linux用户

一、Linux用户Linux系统是一个多用户任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。Linux的用户至少要属于一组。二、用户操作1.添加用户基本语法:useradd [选项] 用户名备注:当创建用户成功之后,会自动的创建和用户同名的家目录。也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录2. 指定/修改密码基本语法:password 用户名3. 删除用户基本语法:user

2020-11-18 10:13:54 196

原创 Linux实操篇--常用指令

一、文件目录类pwd:显示当前工作目录的绝对路径。ls: 显示文件和目录基本语法ls [选项] [文件或是目录]常用选项:a:显示当前目录所有的文件和目录,包括隐藏的。l:以列表的方式显示信息cd: 切换目录基本语法cd [参数] 切换到指定目录常用参数cd~ 或 cd 回到自己的root目录cd… 回到当前目录的上一级目录mkdir:创建目录基本语法mkdir [选项] 要创建的目录常用选项p 创建多级目录rmdir: 删除空目录基本语法

2020-11-05 18:04:39 225

原创 Linux实操篇--Vi和Vim编辑器

一、Vi和Vim编辑器1.什么是vi和vimvi是文本编辑器,vim具有程序编辑的能力,可以看做是vi的增强版,可以主动的以字体颜色辨别语法的正确性,方便程序设计。2.vi和vim常用的三种模式1)正常模式:以vim打开一个文档就直接进入一般模式了,在这个模式中,你可以使用[上下左右]案件来移动光标,你可以使用[删除字符]或[删除整行]来处理档案内容,也可以是使用[复制,粘贴]来处理你的文件数据。2)插入模式:按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即

2020-11-02 14:50:19 359

原创 Linux基础篇

一、Linux的发行版centosubuntu 等二、虚拟机的网络连接三种形式说明桥连接: Linux可以和其它的系统通信。但是可能造成IP冲突。Net模式: 网络地址转换方式:linux可以访问外网,不会造成IP冲突。主机模式: 你的Linux是一个独立的主机,不能访问外网。三、linux目录结构linux的文件系统时采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后再次目录下再创建其它的目录。 Linux世界里,一切皆文件。/dev: 管理设备把所有的硬件用文件的

2020-10-29 18:38:04 174

原创 一起学之 《工厂模式+策略模式解决if-else过多问题》

起因:最近写的业务if-else判断过多,对代码的可读性和维护性都带来了很大的困难,因此想着对之前的代码重构一下。代码类似如下: if (){ if (){ }else if(){ } }else if(){ if (){ }else if(){ } }else if(){ if (){

2020-09-22 19:07:11 969 2

原创 Vert.x入门2 —— 《实现Hello vertx》

本文是基于vertx-core进行演示一、创建一个maven项目1.选择maven之后next2.填完GroupId跟ArtifactId之后next3.选择项目路径之后finish二、添加Vertx的maven依赖 <properties> <vertx.version>3.8.2</vertx.version> <main.class>io.example.Main</main.class>

2020-09-20 16:06:07 381

原创 Vert.x入门1 —— 《基础概念》

一、什么是VertxVert.x 在JVM上构建响应式应用程序的工具包,Vert.x不是框架而是工具包。Vert.x基于Netty项目,该项目是JVM的高性能异步网络库。此描述中有三个重要点:工具包,响应式和“在JVM上”。首先,Vert.x是一个工具包。这意味着Vert.x既不是应用程序服务器,也不是容器也不是框架。它也不是JavaScript库。Vert.x是一个普通的旧jar文件,因此Vert.x应用程序是使用此jar 文件的应用程序。Vert.x没有定义打包模型,所有Vert.x 组件都是无聊

2020-09-17 15:52:40 1689 1

原创 int与byte[]之间进行转换

如何将int与byte[]之间转换;int类型在内存中占4个字节,采用补码方式存储,而一个byte占一个字节。下面有两种方法进行转换:package cn.fh.vertxboot.utils;/** * @description: int与Byte数组转换 **/public class ByteUtils { /* int转byte[] *将int数值转换为占四个字节的byte数组,int低位在前,高位在后 * */ public static b

2020-09-12 14:28:16 1226

原创 Java开发,一年工作经验是如何准备面试,获得offer的

个人背景:普通二本,一年工作经验,没有大厂背景,没有好的开源项目。一、离职动机我为什么离职:上家公司疫情原因没有涨工资(今年好像很多都是这样),而且我之前的工资比较低。我觉得在上家公司对自己的发展有限制(主要是技术方面)。其实上家的办公环境,跟工作氛围都挺好的,也不怎么加班。薪资跟个人发展是我离职的主因。一般离职原因有薪资低、个人发展受限、团队氛围不好、干的不爽等等,需要自己考虑是否要离职。是否要裸辞我这次的离职差不多就是裸辞,我准备了两个多月的面试之后在没有offer的情况下就提了离职

2020-08-31 15:02:27 3550 2

原创 一起学之 《设计模式-策略模式》

策略模式:策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式的结构:Context(封装类):也叫上下文,对策略进行二次封装,目的是避免高层模块对策略的直接调用。Strategy(抽象策略):通常情况下为一个接口或抽象类,当各个实现类中存在着重复的逻辑时,则使用抽象方法来封装这部分公共的代码。ConcreteStrategy(具体策略):具体策略

2020-08-27 08:26:42 442 1

原创 生产者消费者场景,实现控制生产者消费者数量和生产消费速度。

题目如下:1). 有多个线程,一个线程为生产者,其他线程为消费者;2). 生产者生产商品,未消费的商品达到 20 件时就休息,小于 20 件时就继续生产;3). 消费者消费商品,当没有可消费的商品时就休息,有可消费的商品时就继续消费;4). 主入口函数 main 的输入参数有 3 个,分别为:消费者线程个数,生产速度(件/秒),消费速度(件/秒)。例如消费者线程个数为 2,生产速度为 8(即每 125 ms 生产 1 件商品),消费速度为 3(即每 1000/3 ms 消费 1 件商品)。代码

2020-08-25 14:35:00 1590

原创 JAVA社招面试问题总结(一年工作经验)

以下面试问题很多是我在最近面试过程中遇到的:一年工作经验小白,请大佬指点1、Java常考知识点java的基本数据类型与包装类;final修饰变量类方法;String为什么是不可变的,以及new String(“abc”)创建了几个对象;String、StringBuffer、以及StringBuilder的区别;static修饰变量,方法,代码块;重写跟重载的区别;接口跟抽象类;反射、继承、枚举、异常等知识点;为什么要重写hashcode和equals方法,以及hashcode相同e

2020-08-23 12:56:58 16381 28

原创 面试总结之 《算法》

1.链表逆序2.Z型打印二叉树3.如何在很大数量级的数据中(比如1个亿)筛选出前10万个最大值

2020-08-16 09:17:53 548

原创 面试总结之 《分布式事务》

文章目录一、分布式事务1. 本地事务和分布式事务二、分布式事务的基础1. CAP2. BASE3. 柔性事务4. 可见性(对外可查询)5. 幂等操作三、分布式解决方案1. 2PC2. 3PC3. 补偿事务(TCC)4. 本地消息表(异步确保)5. 事务消息6. 尽最大努力通知参考文章一、分布式事务1. 本地事务和分布式事务本地事务是解决单个数据源上的数据操作的一致性问题的话,那么分布式事务则是为了解决跨越多个数据源上数据操作的一致性问题。强一致性、弱一致性、最终一致性从客户端角度,多进程并发访问时

2020-08-15 18:57:14 1615

原创 面试总结之 《JVM》

1.为什么需要了解GC跟内存分配机制当需要排查各种内存溢出,内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。2.垃圾收集的区域垃圾收集主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后就会消失,因此不需要对这三个区域进行垃圾回收。3.判断对象是否需要回收3.1引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减

2020-08-14 18:35:23 706

转载 面试总结之 《ZooKeeper》

文章目录1. ZooKeeper 是什么?2. ZooKeeper 提供了什么?3. Zookeeper 文件系统4. Zookeeper 怎么保证主从节点的状态同步?5. 四种类型的数据节点 Znode6. Zookeeper Watcher 机制 – 数据变更通知7. 客户端注册 Watcher 实现8. 服务端处理 Watcher 实现9. 客户端回调 Watcher10. ACL 权限控制机制11. Chroot 特性12. 会话管理13. 服务器角色14. Zookeeper 下 Server 工

2020-08-14 11:45:55 457

原创 面试总结之 《消息队列》

文章目录一、什么是RabbitMQ、以及为什么要使用。1. 什么是队列2. 什么是消息队列3. 什么是RabbitMQ4. 为什么要使用二、RabbitMQ中的组件1. 组件2. rabbitmq 的消息是怎么发送的四、RabbitMQ的工作模式1. simple模式(即最简单的收发模式)2. work工作模式(资源的竞争)3. publish/subscribe发布订阅(共享资源)4. routing路由模式5. topic 主题模式(路由模式的一种)五、如何保证消息99.99%被发送成功1. 事务机制2

2020-08-14 11:17:51 587

原创 面试总结之 《Spring Cloud》

文章目录一、Spring Cloud 和dubbo区别?二、Eureka1. 什么是Eureka2. Eureka怎么实现高可用3. 什么是Eureka的自我保护模式4. Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别三、Zuul1. 什么是网关?2. 网关的作用是什么3. 什么是Spring Cloud Zuul(服务网关)4. Ribbon是什么?四、 Hystrix1. 什么是断路器2. 什么是Hystrix五、Feign六、Config参考文章一、Spring C

2020-08-10 18:13:27 563

原创 面试总结之 《Dubbo》

文章目录一、什么是RPC二、服务注册与发现三、Dubbo 服务暴露的过程四、Dubbo集群提供了哪些负载均衡策略五、Dubbo的集群容错方案有哪些?一、什么是RPCRPC(Remote Procedure Call),远程过程调用,就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。RPC在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。通常的调用过程,把函数序列化,远端收到后,再把函数反序列化,完成函数调用。R

2020-08-10 14:02:06 395

原创 面试总结之 《SpringBoot》

文章目录一、Springboot启动原理解析1. SpringBootApplication1. @Configuration2. @ComponentScan3. EnableAutoConfiguration3.Springboot的启动流程4. SpringBoot自动配置模块5. SpringBoot Starters参考文章一、Springboot启动原理解析1. SpringBootApplication@SpringBootApplication注解是Spring Boot的核心注解,它

2020-08-10 09:06:25 545

原创 面试总结之 《计算机网络》

文章目录一、七层协议二、三次握手三、四次挥手四、从浏览器输入网址到返回网页发生了什么一、七层协议1. 应用层应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。2. 表示层信息的语法语义以及他

2020-08-08 19:31:47 450

原创 面试总结之 《Spring》

什么是 Spring IOC 容器?

2020-08-08 16:00:15 666

原创 面试总结之 《集合》

文章目录一、Collection接口1. List1.1 ArrayList1.2 LinkedList1.3 Vector(已经放弃使用)1.4 线程安全List2. Set2.1 TreeSet2.2 HashSet2.3 LinkedHashSet3. Queue4.Map4.1 HashMap4.2 LinkedHashMap4.3 ConcurrentHashMap4.4 TreeMap4.5 HashTable我们常见的集合可以分为两大类Map接口和Collection接口接下来将对这两个接口

2020-08-05 15:13:35 840

原创 面试总结之 《Redis》

文章目录Redis一、Redis为什么这么快二、Redis数据结构以及底层实现1. String类型2. Hash类型3. List类型4. Set类型5. zset类型6. 其它数据类型1)BloomFilter(布隆过滤器)2)pub/sub(订阅发布机制)三、Redis持久化机制1. 什么是持久化机制2. Redis的持久化机制是什么,各自的优缺点?1) RDB:是Redis DataBase缩写快照2) AOF:持久化3) AOF重写4) 如何选择合适的持久化方式5) Redis持久化数据和缓存怎么

2020-08-04 11:17:42 749

原创 面试总结之 《线程与锁》

文章目录锁一、Synchronized升级过程实现二、AQS三、Lock实现四、共享锁和独占锁五、生产者消费者锁一、Synchronized升级过程实现Synchronized的升级顺序是 无锁–>偏向锁–>轻量级锁–>重量级锁,顺内不可逆。偏向锁Hotspot的作者经过以往的研究发现大多数情况下锁不仅不存在多线程竞争,而且总是由同一线程多次获得,于是引入了偏向锁。偏向锁会偏向于第一个访问锁的线程,如果在接下来的运行过程中,该锁没有被其他的线程访问,则持有偏向锁的线程将永远不需

2020-08-03 17:42:18 800

原创 面试总结之 《Mysql》

Mysql一、innoDB跟myisam的区别1.从索引来说:两者底层实现都是B+树。MyISAM的索引和行记录时分开的,叫做非聚集索引。其主键索引与普通索引没有本质区别。有连续聚集的区域单独存储行记录。主键索引的叶子节点,存储主键,与对应行记录的指针。普通索引的叶子结点,存储索引列,与对应行记录的指针。查询过程:主键索引与普通索引是两棵独立的索引B+树,通过索引列查找时,先定位到B+树的叶子节点,再通过指针定位到行记录。InnoDB的索引: 与行记录存放在一起,所以叫做聚集索引。没有

2020-08-03 17:37:53 927

原创 Rinzo插件的安装-----eclipse里xml提示包名

1、安装(1)从Rinzo的官方网站https://sourceforge.net/projects/editorxml/上下载到最新的版本,目前最新的版本时1.4.1版本。你会看到4个文件把两个JAR文件下载下来就行。(2)添加到Eclipse将上述解压的两个jar文件复制到Eclipse的安装目录的plugins目录中2、设置在Window-&gt;Perfe...

2020-07-17 10:53:49 870 3

原创 JVM中堆、栈、方法区之间怎么交互

作者之前都只是了解堆、栈、方法区中存储什么数据,但是对彼此之间的数据交互一直不太清楚(奈何技术太菜)。在查阅了资料之后对这方面有了了解,记录一下该知识点。作者技术有限,如有错误请指出。如下图所示来讲解堆,栈,方法区交互,此文默认您已经了解了jvm的运行时数据区域,在此基础上进行讲解。如图所示:首先创建两个类,用于讲解。public class Yi_ding{ //运行时把加载之后的Yi_ding的信息存入方法区(类型信息、常量、静态变量、方法信息等) public static voi

2020-07-14 18:07:27 996

原创 截取String中全部的id值并存到Set中

截取String中全部特定格式之间的数据存入Set中,主要是通过定位每一个特定下标的位置来实现。实现代码如下:Set<String> set = new HashSet<>(); String sb = "@53!28@59!64@qq!.com"; int ch = 0,start,end; while (ch<sb.length()) { // 索引出现负数表示这个字符串中没有匹配的字符了

2020-07-03 10:10:25 755

原创 技术博文总结

Spring 中的 XML schema 扩展机制

2020-06-30 11:05:57 355

原创 通过反射实现Spring的依赖注入

手动实现IOC依赖注入ioc的依赖注入主要是靠反射实现,本文不讲解ioc。实现如下创建Serviceackage com.company.Spring;/** * @program: demo * @description: service层 * @author: wl * @create: 2020-06-27 15:15 **/public class Service {}创建Controllerpackage com.company.Spring;/** * @p

2020-06-27 16:02:30 1193

原创 String关键字个人理解

一、String为什么是不可变的String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承)在 Java 8 中,String 内部使用 char 数组存储数据。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { private final char value[];}在 Java 9 之后,Stri

2020-05-15 09:13:46 966

原创 浅谈ArrayList源码

1 、ArrayList概述ArrayList 基于数组实现的,支持快速随机访问。RandomAccess 接口标识着该类支持快速随机访问。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io...

2020-04-09 09:52:06 394

原创 java基础知识总结

StringString为什么是不可变的:String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承)在 Java 8 中,String 内部使用 char 数组存储数据。public final class String implements java.io.Serializable, Comparable<String>, Ch...

2020-04-03 14:35:49 588

原创 为什么需要包装类型(浅谈)

在java中有八种基本数据类型对应每种基本类型又有八种包装类型:基本类型:boolean, char, int, byte,short,long, float,double包装器类型:Boolean,Character,Integer,Byte,Short,Long,Float,Double为什么还需要包装类型:包装类多了一个Null值,增加了表达性;增加面向对象特性,(以致于能够)兼...

2020-04-01 17:19:17 1496

转载 为什么要重写hashcode和equals方法?

1通过Hash算法来了解HashMap对象的高效性 我们先复习数据结构里的一个知识点:在一个长度为n(假设是10000)的线性表(假设是ArrayList)里,存放着无序的数字;如果我们要找一个指定的数字,就不得不通过从头到尾依次遍历来查找,这样的平均查找次数是n除以2(这里是5000)。我们再来观察Hash表(这里的Hash表纯粹是数据结构上的概念,和Java无关)。它的平均查找...

2020-04-01 17:04:31 252

空空如也

空空如也

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

TA关注的人

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