自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

VicterTian的博客

Stay hungry, Stay foolish

  • 博客(310)
  • 资源 (5)
  • 收藏
  • 关注

原创 笔记本安装ubuntu,触控板右键失灵处理

在安装 Ubuntu ® 18.04 LTS 后,触摸板右键单击可能无法正常工作。这不是操作系统或触摸板的问题。Gnome 默认使用 Mac 触摸板行为,其中整个触摸板是一个按钮。要右键单击,请使用两个手指而不是一个手指进行单击。解决这一问题最简单办法就是命令行输入gsettings set org.gnome.desktop.peripherals.touchpad click-method areas...

2020-08-31 11:22:32 53

原创 高并发和分布式中的幂等处理

高并发和分布式中的幂等处理概念幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“getUsername()和setTr...

2019-10-11 10:18:40 166

转载 缓存与数据库双写一致问题

缓存与数据库双写一致问题在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(...

2019-09-23 19:05:40 296

转载 布隆过滤器

在使用redis的过程中,有两个问题是无法避免的:缓存雪崩和缓存穿透。下文将简要讲解讲解缓存穿透的布隆过滤器什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,...

2019-09-23 18:18:57 98

原创 创建对象的五种方式

创建对象的五种方式Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码:创建对象方法是否调用构造函数使用new关键字} → 调用了构造函数使用Class类的newInstance方法} → 调用了构造函数使用Constructor类的newInstance方法} → 调用了构造函数使用clone方法} → 没有调用构造函数使用反...

2019-09-23 17:42:53 115

原创 mybatis中${}、 #{}区别及应用场景

mybatis中${}、 #{}区别及应用场景动态sql是mybatis的主要特性之一。在mapper中定义的参数传到xml中之后,在查询之前mybatis会对其进行动态解析。mybatis提供了两种支持动态sql的语法:#{} 、${}。select * from t_user where username = '${username}';select * from t_user whe...

2019-09-23 17:25:27 197

原创 使用Docker一键搭建FastDFS+Nginx分布式文件服务器

做过很多项目在图片上传上一直使用的是FastDFS,刚开始得知搭建一个这样的系统非常复杂,所以直接使用了淘淘商城的虚拟机。在后面的项目中,最终选择在在阿里云上自己搭建一个FastDFS+Nginx分布式文件服务器。文章可参考Centos7 安装FastDFS+nginx module现在考虑到后期服务器可能要变更,重新搭建太耗时,并且现在服务器安装的东西太多准备重装一下CentOS系统,所以最近...

2019-09-20 17:07:05 12330 48

原创 一致性Hash算法

一致性Hash算法为什么使用一致性Hash我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离。如下所示:同样类似于数据库,当单表数据大于500W的时候需要对其进行分库分表,当数据量很大的时...

2019-09-19 16:29:54 168

原创 Java实现 Serializable 序列化

深度理解Java实现 Serializable 序列化概念把对象转换为直接序列的过程叫对象的序列化把字节序列恢复为对象的过程叫对象的反序列化用途对象持久化跨网络数据交换,远程过程调用对象持久化意味着一个对象的生命周期可以不取决于程序是否运行,实现序列化的对象可以生存在程序的调用之间。通过一个序列化的对象写在磁盘中,然后再调用期间恢复这个对象就可以实现对象持久化的效果序列化可以弥...

2019-07-21 14:27:07 118

原创 HashMap初始化容量

HashMap初始化容量《阿里巴巴Java开发规约》中有提到:【推荐】集合初始化时,指定集合初始值大小。说明:HashMap使用如下构造方法进行初始化,如果暂时无法确定集合大小,那么指定默认值(16)即可:public HashMap (int initialCapacity) { this(initialCapacity, DEFAULT_LOAD_FACTOR);}那么H...

2019-07-21 14:23:54 407

原创 线程和进程的区别与联系以及单线程多进程与单进程多线程的区别

线程和进程概念进程(process):是指具有已一定功能的独立程序,是系统资源分配的基本单位,在内存中有其完备的数据空间和代码空间,拥有完整的虚拟空间地址。一个进程所拥有的数据和变量只属于它自己。线程(thread):是进程内相对独立的可执行单元,所以也被称为轻量进程(lightweight processes);是操作系统进行任务调度的基本单元。它与父进程的其它线程共享该进程所拥有的全部代...

2019-07-01 11:34:41 1606

原创 用XML操作Excel文件的一些属性说明

在利用velocity导出excel中遇到了一个坑,理论上讲是没有问题的,看了vm文件也没有问题,但是打开生成的vm文件时会提示文件已损坏。经研究,Excel在生成xml的时候为了不浪费资源,在生成时候,会指定Excel有多少行,如果超出了这个长度的话,它就会编译不通过并报错,也就是遇到的这个问题。解决方法:修改它的属性值"ss:ExpandedRowCount",把它设置大一点,或者通过程...

2019-06-10 19:25:19 1334

原创 velocity模板判断null和空字符串方法

在web开发中,经常会遇到一个需求是,判断变量为空(null)或者空字符串(""),从而影响页面的展示逻辑,velocity中有相应的方法可以判断。当然也可以在java后端转化到有效值再判断。对象为空#if($lottery) 对象不为空#end#if(!$lottery) 对象为空#end对象属性为空判断方式及结果如果是对象通过‘. ’的方式获取属性#if...

2019-06-03 19:14:03 1681

转载 org.apache.velocity.exception.ResourceNotFoundException的解决方案

最近在学习Velocity,用到了VelocityEngine这个类,调用其getTemplate方法时,里面的路径设置一直有问题VelocityEngine ve = new VelocityEngine();ve.init();Template t = ve.getTemplate(fileName);实验多次后发现上面的fileName必须是直接位于项目目录下的路径,直接写绝对路径...

2019-06-03 09:09:07 1446

原创 Velocity教程

语法注释单行注释## 这是单行注释多行注释#* Thus begins a multi-line comment. Online visitors won’t see this text because the Velocity Templating Engine will ignore it. *#文档格式#** This is a VTL comment b...

2019-05-31 18:07:12 19771

转载 perf4j @Profiled常用写法

perf4j @Profiled常用写法1、默认写法@Profiled日志语句形如:2009-09-07 14:37:23,734 [main] INFO org.perf4j.TimingLogger - start[开始时间] time[执行耗时] tag[方法名] 2、带logger标识@Profiled(logger = "test.PriceService")由此产生...

2019-05-21 08:33:47 310

原创 Java注解实现以及部分参数说明

Java注解详细说明今天面试过程中遇到了一个问题:谈谈注解的底层实现。由于本人只写过几个自定义注解,在复习过程中也忽略了这一部分,所以只回答了使用过一些自定义注解。然后面试官又问了一些反射的问题。面试结束经过百度后才知道,注解的底层实现就是用到了反射。所以今天来补上这一部分内容。首先,注解是没有行为的,只能有数据。让其实现某些行为必须有实例(也就是代理对象),再用反射技术实现某些行为。通过对...

2019-04-20 11:09:46 474

原创 哈夫曼树的构造

Huffman树是一种特殊结构的二叉树,由Huffman树设计的二进制前缀编码,也称为Huffman编码在通信领域有着广泛的应用。在word2vec模型中,在构建层次Softmax的过程中,也使用到了Huffman树的知识。哈夫曼树并不唯一,但带权路径长度一定是相同的。下面是构建哈夫曼树的过程:比如:8个结点的权值大小如下:1、 从19,21,2,3,6,7,10,32中选择两个权小结点...

2019-04-07 09:54:31 1373 1

转载 Java 并发编程学习笔记

原文地址:http://www.cnblogs.com/paddix/p/5374810.htmlJava 并发编程:核心理论并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。本系列会从线程间协调的方式(wait、notify、notifyAll...

2019-03-24 10:34:36 263

转载 Transactional注解指定rollbackFor或者在方法中显示的rollback

在写代码时看到阿里巴巴代码规范提醒需要在Transactional注解指定rollbackFor或者在方法中显示的rollback究其原因需先看异常的分类error是一定会回滚的这里Exception是异常,他又分为运行时异常RuntimeException和非运行时异常可查的异常(checked exceptions):Exception下除了RuntimeException外的异...

2019-03-19 20:05:16 1170

原创 JVM知识点

JVM面试题文章目录JVM面试题1.说一下 JVM的主要组成部分?及其作用?JVM基本结构1.1. 类加载字系统1.2. Java堆1.3. 直接内存1.4. 垃圾回收系统1.5. Java栈1.5.1. 函数调用-出入JAVA栈1.5.1.1. 局部变量表1.5.1.2. 操作数栈1.5.1.3 帧数据区1.5.1.4 栈上分配1.6. 方法区1.7. 本地方法栈1.8. PC(program...

2019-03-19 17:12:04 439

原创 Redis知识点总结

文章目录Redis面试题总结1.Redis是什么?都有哪些使用场景?2.Redis有哪些功能?3.Redis和 memecache 有什么区别?4.Redis为什么是单线程的?5.什么是缓存穿透?怎么解决?6.Redis支持的数据类型有哪些?7.Redis支持的 java 客户端都有哪些?8.jedis 和 redisson 有哪些区别?9.怎么保证缓存和数据库数据的一致性?10.Redis持久化...

2019-03-19 09:05:45 605

转载 Spring IOC 容器源码分析

原文地址:https://javadoop.com/post/spring-ioc本文干货很多,建议静心阅读文章目录Spring IOC 容器源码分析引言BeanFactory 简介启动过程分析创建 Bean 容器前的准备工作创建 Bean 容器,加载并注册 BeanBeanDefinition 接口定义customizeBeanFactory加载 Bean: loadBeanDefini...

2019-03-12 19:10:49 185

原创 GC相关面试题

GC相关面试题文章目录GC相关面试题Object的finalize()方法的作用是否与C++的析构函数作用相同?为什么不能显示直接调用finalize方法?Java中的强引用,软引用,弱引用,虚引用有什么用?GC是在什么时候,对什么东西,做了什么事情?Java虚拟机规范将JVM虚拟机所管理的内存分为几部分?有哪些方法可以判断一个对象已经可以被回收,JVM怎么判断一个对象已经消亡可以被回收?哪些对...

2019-03-04 11:29:37 588

原创 剑指offer第二版-26树的子结构

/** * 树的子结构 * <p> * 输入两棵二叉树A和B,判断B是不是A的子结构。 * <p> * 当A有一个节点与B的根节点值相同时,则需要从A的那个节点开始严格匹配,对应于下面的tree1HasTree2FromRoot函数。 * 如果匹配不成功,则返回到开始匹配的那个节点,对它的左右子树继续判断是否与B的根节点值相同,重复上述过程。 * 应注意,必须...

2019-02-26 22:10:01 130

原创 剑指offer第二版-31栈的压入弹出序列

/** * 栈的压入弹出序列 * <p> * 输入两个整数序列,第一个序列表示栈的压入顺序,判断第二个序列是否为该栈的弹出序列。假设压入栈的所有数字均不相等。 * 例如,压入序列为(1,2,3,4,5),序列(4,5,3,2,1)是它的弹出序列,而(4,3,5,1,2)不是。 * <p> * 对于一个给定的压入序列,由于弹出的时机不同,会出现多种弹出序列。 *...

2019-02-26 17:24:29 104

原创 剑指offer第二版-30包含min函数的栈

/** * 包含min函数的栈 * <p> * 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。 * 要求在该栈中,调用min,push及pop的时间复杂度都是o(1)。 * * @author VicterTian * @version V1.0 * @Date 2019/2/26 */class StackWithMin<T ext...

2019-02-26 11:07:45 108

原创 Java线程知识点总结

Java线程面试题什么是线程线程是操作系统能进行算法调度的最小单位,它被包含在进程中,是进程中的实际操作单位。程序员可以通过它进行多处理器编程。可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。线程和进程有什么区别线程是进程的子集,一个进程可以有多个线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的...

2019-02-25 22:22:05 126

原创 剑指offer第二版-25合并两个排序的链表

/** * 合并两个排序的链表 * * @author VicterTian * @version V1.0 * @Date 2019/2/25 */@SuppressWarnings("all")public class P145_MergeSortedLists { static class ListNode<T> { T val; ListNode n...

2019-02-25 08:45:38 83

原创 剑指offer第二版-24反转链表

/** * 反转链表 * <p> * 想要链表反转时不断裂,至少需要3个变量记录,pre,cur,post。 * 与前面的题目类似,初始化pre为null,cur为head,post为head.next。 * 初始化之前要注意检查链表的长度。 * * @author VicterTian * @version V1.0 * @Date 2019/2/25 */pu...

2019-02-25 08:26:46 100

原创 剑指offer第二版-23链表中环的入口节点

import java.util.*;/** * 一个链表中包含环,请找出该链表的环的入口结点。 * <p> * 解决此题需要两步操作 首先确定这个链表是否包含环,若包含环,求出它的入口节点 * * @author VicterTian * @version V1.0 * @Date 2019/2/24 */public class P139_EntryNodeO...

2019-02-25 08:08:25 97

原创 Java面试题总结(集合类)

文章目录Java面试题总结(集合类)请说明Java集合类框架的基本接口有哪些?List 和 Set 区别Set和hashCode以及equals方法的联系List 和 Map 区别Arraylist 与 LinkedList 区别ArrayList 与 Vector 区别HashMap 和 Hashtable 的区别HashSet 和 HashMap 区别HashMap 和 ConcurrentH...

2019-02-24 08:34:34 263 4

转载 浏览器搜索技巧

前言搜索引擎我们经常使用,但是我们最常用的可能就是把要搜索的内容直接复制到搜索框,而很多时候这样搜索出来的结果有很多的冗余信息,对于获取自己所需要的内容甚至存在阻碍。我们如何更加快速地获取我们想要的信息呢?这里就有一些常用的搜索技巧。以下技巧多数同样适用于其他搜索引擎。按文件类型搜索-filetype我们常常需要在网络上找文件,但是搜索出来的却可能是一堆不相关的东西。怎么办?使用filety...

2019-02-23 09:37:28 720

转载 BIO,NIO,AIO 简要总结

文章目录BIO,NIO,AIO 总结1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO区别1)Non-blocking IO(非阻塞IO)2)Buffer(缓冲区)3)Channel (通道)4)Selectors(选择器)2.3 NIO 读数据和写数据...

2019-02-23 09:28:25 953

原创 java中getInstance() 的理解

getInstance方法的主要作用主函数当中使用此类的getInstance()函数,即可得到系统当前已经实例化的该类对象,若当前系统还没有实例化过这个类的对象,则调用此类的构造函数对象实例化对象的实例化方法,也是比较多的,最常用的方法是直接使用new。而这是最普通的,如果要考虑到其它的需要,如单实例模式,层次间调用等等。直接使用new就不是最好的设计,这时候需要使用间接使用new,即g...

2019-02-22 18:07:39 10137

原创 剑指offer第二版-22_1寻找链表的中间节点

/** * 寻找链表的中间节点 * @author VicterTian * @version V1.0 * @Date 2019/2/19 */public class P138_FindMidInLinkList { static class Node<T> { T data; Node<T> next; public Node(T dat...

2019-02-19 17:51:49 86 2

原创 剑指offer第二版-22链表中倒数第k个节点

/** * 链表中倒数第k个节点 * @author VicterTian * @version V1.0 * @Date 2019/2/19 */public class P134_KthNodeFromEnd { static class ListNode<T> { T val; ListNode<T> next; ListNode(T va...

2019-02-19 17:50:33 78

原创 剑指offer第二版-21调整数组顺序使奇数位于偶数前面

/** * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分 * <p> * 思路一:运用快速排序的思想,设置前后两个指针,分别从数组的前后两端开始遍历,前指针遇到偶数,后指针遇到奇数交换之。 * <p> * 思路二:因为快速排序是不稳定的排序,而题目要求稳定性。那么就要考虑冒泡排序和插入排...

2019-02-19 17:48:54 88

原创 剑指offer第二版-20表示数值的字符串

/** * 表示数值的字符串 * <p> * 判断一个字符串是否表示数值,如+100,5e2,-123,-1E-16都是,12e,1e3.14,+-5,1.2.3,12e+5.4都不是。 * 提示:表示数值的字符串遵循模式A[.[B]][e|EC] 或者 .B[e|EC];A,B,C表示整数,|表示或。[]表示可有可无。 * <p> * 此题也没有没什么特殊思路...

2019-02-19 17:47:15 74

原创 Java面试知识点总结(Java基础 )

一、基础篇1.1、Java基础面向对象的特征:继承、封装、多态、抽象抽象:从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程,称为抽象。Object 类位于 java.lang 包中,是所有 Java 类的祖先,是对万事万物的抽象。Java 中的每个类都由它扩展而来。封装封装,就是把客观事物封装成抽象的类,并且类可以把自己的...

2019-02-18 22:42:26 127

FastDFS安装需要文件

CentOS安装FastDFS必须的安装软件,配套本人博客安装。亲测可行

2018-11-22

基于SSM及前后端分离的复习系统

基于SSM及前后端分离的复习系统源码及sql文件,希望大家能够喜欢

2018-07-09

搭建web商城所需要的资料

搭建web商城所需要的资料,做鄙人博客里web商城需要下载的资料包

2018-02-07

图书商城utils包及数据库配置类

图书商城utils包及数据库配置类。为方便跟着我博客做图书商城的博友服务

2018-01-29

图书商城前期准备

图书商城前期需要准备的各种资源,包括jsp,css,js代码及网页需要用到的图片

2018-01-27

空空如也

空空如也

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

TA关注的人 TA的粉丝

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