VicterTian的博客

Stay hungry, Stay foolish
私信 关注
VicterTian
码龄4年
  • 318,437
    被访问量
  • 271
    原创文章
  • 12,484
    作者排名
  • 103
    粉丝数量
  • 于 2016-11-28 加入CSDN
获得成就
  • 获得161次点赞
  • 内容获得127次评论
  • 获得452次收藏
荣誉勋章
兴趣领域
  • #后端
    #Java
TA的专栏
  • Java Web
    25篇
  • 剑指Offer(第二版)
    34篇
  • 深入Java
    25篇
  • 深入Java虚拟机
    3篇
  • 剑指offer(第二版)
    34篇
  • Java面试题
    15篇
  • 数据结构
    11篇
  • Linux
    5篇
  • 平时遇到的问题
    38篇
  • 宜立方商城
    3篇
  • 玩物志
    5篇
  • 寒假练习
    52篇
  • 第一次考核
    15篇
  • 【计蒜客】蓝桥杯模拟赛(五)
    7篇
  • 学习笔记
    19篇
  • 平时练习
    51篇
  • Java Web
    14篇
  • 第一个JavaWeb项目
    8篇
  • 英语复习系统
    4篇
  • Docker
    1篇
  • 假前端
    6篇
  • 设计模式
    1篇
  • Spring源码分析
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

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

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

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

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

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

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

布隆过滤器

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

创建对象的五种方式

创建对象的五种方式Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码:创建对象方法是否调用构造函数使用new关键字} → 调用了构造函数使用Class类的newInstance方法} → 调用了构造函数使用Constructor类的newInstance方法} → 调用了构造函数使用clone方法} → 没有调用构造函数使用反...
原创
135阅读
0评论
1点赞
发布博客于 2 年前

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

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

一致性Hash算法

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

Java实现 Serializable 序列化

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

HashMap初始化容量

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

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

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

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

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

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

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

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

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

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...
原创
21903阅读
0评论
3点赞
发布博客于 2 年前

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")由此产生...
转载
380阅读
0评论
0点赞
发布博客于 2 年前

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

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

哈夫曼树的构造

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

Java 并发编程学习笔记

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

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

在写代码时看到阿里巴巴代码规范提醒需要在Transactional注解指定rollbackFor或者在方法中显示的rollback究其原因需先看异常的分类error是一定会回滚的这里Exception是异常,他又分为运行时异常RuntimeException和非运行时异常可查的异常(checked exceptions):Exception下除了RuntimeException外的异...
转载
1296阅读
0评论
0点赞
发布博客于 2 年前

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...
原创
448阅读
0评论
3点赞
发布博客于 2 年前

Redis知识点总结

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

Spring IOC 容器源码分析

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

GC相关面试题

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

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

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

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

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

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

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

Java线程知识点总结

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

剑指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...
原创
91阅读
0评论
0点赞
发布博客于 2 年前

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

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

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

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

Java面试题总结(集合类)

文章目录Java面试题总结(集合类)请说明Java集合类框架的基本接口有哪些?List 和 Set 区别Set和hashCode以及equals方法的联系List 和 Map 区别Arraylist 与 LinkedList 区别ArrayList 与 Vector 区别HashMap 和 Hashtable 的区别HashSet 和 HashMap 区别HashMap 和 ConcurrentH...
原创
321阅读
4评论
2点赞
发布博客于 2 年前

浏览器搜索技巧

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

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 读数据和写数据...
转载
988阅读
0评论
3点赞
发布博客于 2 年前

java中getInstance() 的理解

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

剑指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...
原创
94阅读
2评论
1点赞
发布博客于 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...
原创
125阅读
0评论
0点赞
发布博客于 2 年前

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

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

剑指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> * 此题也没有没什么特殊思路...
原创
79阅读
0评论
0点赞
发布博客于 2 年前

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

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

HashMap之如何正确遍历并删除元素

HashMap之遍历HashMap的遍历主要有两种方式:第一种采用的是foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况。HashMap<K, V> myHashMap;for (Map.entry<K, V> item : myHashMap.entrySet()){ K key = item.getKey();...
原创
2189阅读
0评论
2点赞
发布博客于 2 年前

寻找和为定值的两个数

/** * 输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 * 要求时间复杂度是O(N)。如果有多对数字的和等于输入的数字,输出任意一对即可。 * 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 * <p> * 思路一:直接穷举,从数组中任意选取两个数,判定它们的和是否为输入的那个数字。此举复杂度为O(...
原创
108阅读
0评论
0点赞
发布博客于 2 年前

实习面试试题及答案

文章目录今日头条/字节跳动:(IOS研发实习生)一面自我介绍,可实习时间,在校情况;手撕算法:青蛙跳台阶,一次可以跳1个台阶或者2个台阶,问跳完N阶台阶总共有几种跳法?(递归和非递归)按照顺时针的顺序,逐层遍历并打印N阶方阵;TCP/IP协议;TCP 的特性IP 协议TCP三次握手,四次挥手;最近在看什么书或者在学什么知识;根据最近所学的提几个问题;你有什么想问的;二面自我介绍;项目;在校情况,可...
原创
1057阅读
0评论
1点赞
发布博客于 2 年前

JSP九大内置对象,七大动作,三大指令

文章目录三大指令page指令include指令taglib指令(引入第三方标签库)七大动作jsp:include 动态包含(分别编译):jsp:useBean动作(jsp页面使用javaBean的第二种方式):jsp:getProperty动作(name为useBean动作中的id).jsp:setProperty动作(name为useBean动作中的id):jsp:param动作(传递参数)):...
原创
135阅读
1评论
0点赞
发布博客于 2 年前

Servlet 生命周期

文章目录Servlet 生命周期init() 方法service() 方法doGet() 方法doPost() 方法destroy() 方法架构图Servlet 生命周期Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:Servlet 通过调用 init () 方法进行初始化。Servlet 调用 service() 方法来处理客户端的请求。...
转载
74阅读
0评论
0点赞
发布博客于 2 年前

J2EE基础知识点总结

文章目录1. Servlet总结2. 阐述Servlet和CGI的区别?3. Servlet接口中有哪些方法及Servlet生命周期探秘4. get和post请求的区别5. 什么情况下调用doGet()和doPost()6. 转发(Forward)和重定向(Redirect)的区别7. 自动刷新(Refresh)8. Servlet与线程安全9. JSP和Servlet是什么关系10. JSP工作...
转载
177阅读
0评论
0点赞
发布博客于 2 年前

在浏览器中输入url地址到显示主页的过程,整个过程会使用哪些协议

图解(图片来源:《图解HTTP》):总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束具体过程DNS解析DNS解析的过程就是寻找哪台机器上有你需要资源的过程。当你在浏览器中输入一个地址时,例如www.baidu.com,其实不是百度网站真正意义上的地址。互联网上每一台计算机的唯一标识是它的IP地址,但是...
转载
5091阅读
2评论
1点赞
发布博客于 2 年前

Java面试题(四)综合

1. System.out.println(3 | 9);输出什么?考察知识点:&和&&;|和||&和&&:共同点:两者都可做逻辑运算符。它们都表示运算符的两边都是true时,结果为true;不同点: &也是位运算符。& 表示在运算时两边都会计算,然后再判断;&&amp
转载
119阅读
0评论
0点赞
发布博客于 2 年前

Java面试题(三)集合类

你了解哪些集合类型?答案:你应该知道以下几个最重要的类型:ArrayListLinkedListHashMapHashSet之后,你可能会被问到这样一些问题,比如应该何时使用此种特定类型,它比其他的好在哪里,它是怎么存储数据的以及隐匿在背后的数据结构是什么。最好的方法是尽可能多地了解这些集合类型,因为这类问题几乎是无穷尽的。HashMap 有什么特点?答案:Hash...
转载
254阅读
0评论
0点赞
发布博客于 2 年前

Java面试题(二)String, String Pool, StringBuilder

写出下面代码的运行结果。int src = 65536;Integer dst = new Integer(65536);System.out.println(src == dst);System.out.println(dst.equals(src));答案:true true考点:Integer 的 equals 实现。查看源代码可以发现,65536 装箱为 Integer 对象...
转载
118阅读
0评论
0点赞
发布博客于 2 年前

单例模式的那些事

文章目录单例模式单例的特点单例模式的7种写法第一种(懒汉,线程不安全):第二种(懒汉,线程安全):第三种(饿汉):第四种(饿汉,变种):第五种(静态内部类):第六种(枚举):第七种(双重校验锁):单例模式真的能够实现实例的唯一性吗?答案是否定的!如何破坏单例反射序列化和反序列化单元素枚举类型总结单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型...
转载
164阅读
0评论
0点赞
发布博客于 2 年前

Java中类的加载顺序(ClassLoader)

在谈ClassLoader之前,先介绍一个常见异常:ClassNotFoundExcetpion ,原因:就是找不到指定的class。常见的场景:调用class的forName方法时,找不到指定的类ClassLoader 中的 findSystemClass() 方法时,找不到指定的类ClassLoader 中的 loadClass() 方法时,找不到指定的类对于这个异常,它实质涉及...
转载
235阅读
1评论
1点赞
发布博客于 2 年前

跨域下使用获取iframe的父页面URL

通常情况下,我们获取iframe父页面的url很简单:parent.location或top.location即可,但前提是它们遵循同源策略。当iframe与父页面不属于同一个域名时,像上面的获取会因为安全策略原因而失败。在nczonline的一篇文章上看到一种方法,使用document.referrer。方法很简单,通过parent !=window检测iframe与父页面是否同源,当不同源...
原创
878阅读
0评论
0点赞
发布博客于 2 年前

jq向input的value赋值

文本框如下<input type="text" value="" id="imgtalk">jquery/js 代码为//1),不推荐使用//这种写法有时会失效,特别是他的父元素是dosplay:none时 $("#imgtalk").val("值");//2),推荐使用
原创
6361阅读
0评论
0点赞
发布博客于 2 年前

Content-Disposition 文件上传、下载 中文乱码 HTTP头 解决办法

1、文件上传通过表单上传文件时,如果文件名存在中文则会发生乱码。<form name="myform" action="/fileManager/uploadFile" method="post" enctype="multipart/form-data" accept-charset="utf-8" > <input type="text&qu
原创
2470阅读
0评论
0点赞
发布博客于 2 年前

ajax获取数据后渲染到页面方法

$.ajax({url:"apiAttachmentAction_uploadAttachment.action",type:"post",data:forms,contentType:false,success:function(data){}error:function(e){}对于请求回来的数据怎么渲染到相应的页面呢,主要总结了以下几种方法:1.比较常见的就是字符串拼接的方...
原创
7288阅读
0评论
0点赞
发布博客于 2 年前

JS本地存储 localStorage操作(一个页面存值,另外一个页面拿值)

存值方法: localStorage.setItem(Key, value); localStorage.Key=value;读值方法: localStorage.getItem(Key); localStorage.key;使用:a页面存值 localStorage.li='哈哈哈';//存放字符串或者json字符串 (如果是ajax返回...
原创
1220阅读
0评论
0点赞
发布博客于 2 年前

HTML在手机上实现直接拨打电话以及发送短信

<a href="tel:153*********″>拨打电话在铃看到的一种方式<a href="wtai://wp/mc;153*********″>拨打电话接下来看发送短信的方法短信下单以下为:2013年11月29号更新因微信屏蔽一键拨号功能,所以需要在要拨号的页面的URL后面增加 “#mp.weixin.qq.com”,如在 https://blog.cs...
转载
158阅读
0评论
0点赞
发布博客于 2 年前

用Maven中实现MyBatis逆向工程(IDEA版)

用Maven中实现MyBatis逆向工程(IDEA版)MyBatis逆向工程介绍MyBatis逆向工程是指用数据库的表直接生成Java代码,利用MyBatis官方提供的逆向工程,可以针对单表自动生MyBatis执行所需要的代码(如pojo,mapper接口和mapper.xml)。首先使用idea中的Maven生成MyBatis所需要的mapper类和xml文件,非常方便。首先在IDEA...
转载
241阅读
0评论
1点赞
发布博客于 2 年前

Mybatis Generator最完整配置详解

Mybatis Generator(简称MBG)的最完整配置文件,带详解<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://myb...
转载
90阅读
0评论
0点赞
发布博客于 2 年前

启动项目时报错:IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除

原因:IDEA默认把项目的源代码版本设置为jdk1.5,目标代码设置为jdk1.5解决方案:修改Maven的Settings.xml文件添加如下内容<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault&...
转载
304阅读
0评论
0点赞
发布博客于 2 年前

nginx启动报错(1113: No mapping for the Unicode character exists in the target multi-byte code page)

使用windows版本的nginx启动时遇到(1113: No mapping for the Unicode character exists in the target multi-byte code page)这个错误把nginx的版本升高了,依旧报错后来查阅发现是因为解压的路径里面包含有中文的缘故,只要把解压后的文件剪切到没有包含中文的目录即可解决问题...
原创
350阅读
1评论
0点赞
发布博客于 2 年前

IDEA git提交代码时的detached HEAD问题

关于此问题的详细说明,请参考 Git HEAD detached from XXX (git HEAD 游离) 解决办法由于以前的代码有一个还原到前一个版本的动作,所以导致detached HEAD问题,也就是本地提交和远程的分支没有半点关系,所以需要进行如下操作:1.在本地代码处右键,打开git bash2.查看所有分支:git branch3.切换分支到master:git chec...
原创
537阅读
0评论
0点赞
发布博客于 2 年前

web.xml配置文件中true报错的解决方案

在写web.xml的时候又一次总是报cvc-complex-type.2.4.a: Invalid content was found starting with element 错误,还出现小红叉,在网上找了很多,有说是把报红叉的代码写在之间,试了之后发现完全没用。后来在外文网站上找到了一个方法就把问题解决了解决方法一:在eclipse中配置xmlhttp://www.springmod...
转载
331阅读
0评论
0点赞
发布博客于 2 年前

部署静态网站的五种方法

第一种:添加静态页面在Tomcat8\webapps\ROOT根路径下例如:在ROOT文件夹下放一个hello.html的静态页面访问方法:localhost:8080/hello.html第二种:在Tomcat8\webapps路径下自定义目录网站例如:在Tomcat8\webapps下放入一个自定义的网站文件夹WJ,在WJ文件夹下存放自己网站的内容hello.html访问方法:loc...
原创
697阅读
0评论
0点赞
发布博客于 2 年前

在github构建项目,使用git工具

使用github一年了,还没有好好地总结git工具的使用,命令行也用的越来越少,逐渐的只在IDE上进行快捷键操作。所以特地从网上转了一篇博客过来,一边看一边回顾着实践一下,加深印象一、 先注册github.com的账号官方网站:https://github.com/二、登录三、 创建仓库我现在想使用github来托管自己的项目的代码,因此先要创建一个仓库,仓库分公开的和私有的,从前段时间...
转载
195阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-17_1任意两个整数的加法

/** * 定义一个函数,在该函数中可以实现任意两个整数的加法 * <p> * 对于这道题,由于没有限定输入的两个数的范围,所以要按照大数问题来进行处理 * 由于题目要求是要实现任意两个整数的加法,我们就要考虑如何实现大数的加法,此外,两个数字是任意的,所以要考虑负数 * 对于大数问题,常用的方法就是使用字符串来表示这个大数,我们可以首先将两个整数用字符串进行表示,然后分别将...
原创
207阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-17打印从1到最大的n位数

/** * 打印从1到最大的n位数 * <p> * 如输入2,打印1,2......98,99 * 注意:本题需要考虑大数问题,用字符串解决大数问题是最好的解决方案之一 * 用字符串表示数字的时候,最直观的方法就是字符串里每个字符都是‘0’到‘9’之间的某一个字符,用来表示数字中的一位。因为最大的是n位的, * 因此我们需要一个长度为n+1的字符串(字符串中最后一个是结束符...
原创
166阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-16数值的整数次方

/** * 数值的整数次方 * <p> * 实现函数double power(double base,int exponent),求base的exponent次方。不能使用库函数,不需要考虑大数问题。 * 可能我们的第一想法永远是利用循环进行求值,如果要考虑到0和整数,可以将指数先求绝对值,然后算出结果后取倒数。 * 既然要求倒数,我们很自然的想到,有没有可能对0取倒数 *...
原创
126阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-15_2二进制中1的个数

/** * 实现一个函数,输入一个int型整数,输出该数字在计算机中二进制表示形式的1的个数。 * 例如9->1001,输出2;-3->11111111111111111111111111111101,输出31。 * * @author VicterTian * @version V1.0 * @Date 2019/2/8 */public class P100_Num...
原创
103阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-15_1进制转换

/** * 在Excel中,用A表示第一列,B表示第二列...Z表示第26列,AA表示第27列,AB表示第28列...依次列推。 * 请写出一个函数,输入用字母表示的列号编码,输出它是第几列。 * <p> * 思路:这道题实际上考察的是把二十六进制表示成十进制数字,将输入的字符串先转换成字符数组,遍历数组中的每一个字符, * 用这个字符减去A再加1就是该位对应的十进制数,然后...
原创
96阅读
0评论
0点赞
发布博客于 2 年前

根据二叉树前序、中序遍历求出后续遍历

/** * TreeNode * * @author VicterTian * @version V1.0 * @Date 2019/2/8 */class TreeNode { int data; TreeNode left; TreeNode right; public TreeNode() { } TreeNode(int data) { this.data...
原创
514阅读
0评论
0点赞
发布博客于 2 年前

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

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

剑指offer第二版-13机器人的运动范围

/** * 题目:机器人的运动范围 * 地上有一个m行n列的方格,一个机器人从坐标(0,0)的各自开始移动,它每次可以向上下左右移动一格,但不能进入横纵坐标数位之和大于k的格子。 * 例如,当k等于18时,机器人能进入(35,37),因为3+5+3+7=18;但却不能进入(35,38),因为3+5+3+8=19>18。 * 请问该机器人能够到达多少个格子。 * <p>...
原创
81阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-12矩阵中的路径

/** * 题目:矩阵中的路径 * 设计一个函数,用来判断一个矩阵中是否存在一条包含某字符串的路径。 * (1)起点随意;(2)路径的移动只能是上下左右; * (3)访问过的位置不能再访问。以下图矩阵为例,包含“bfce”,但是不包含“abfb”。 * a b t g * c f c s * j d e ...
原创
125阅读
0评论
1点赞
发布博客于 2 年前

剑指offer第二版-11旋转数组的最小数字

/** * 旋转数组的最小数字 * <p> * 题目要求: * 把一个数组最开始的若干个元素搬到末尾成为数组的旋转,如1,2,3,4,5=>3,4,5,1,2;0,1,1,1,1=>1,1,1,0,1;0,1,1,1,1=>1,0,1,1,1。 * 求一个原本递增的数组旋转后的最小数字。 * * @author VicterTian * @versio...
原创
65阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-10_5员工年龄排序

/** * 对公司所有员工的年龄进行排序,公司总共有几万名员工,要求时间复杂度为O(n),可使用的空间复杂度为常量大小,不得超过O(n) * * @author VicterTian * @version V1.0 * @Date 2019/1/24 */public class P81_AgeSort { public static void main(String[] args...
原创
217阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-10_4矩形覆盖

/** * 矩形覆盖 * * 问题描述: * 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 * 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形, * 总共有多少种方法? * * 问题思路: * 当n=1的时候,只有一个2*1的矩形,所以只有一种方法,记为f(1)=1 * 当n=2的时候,是两个2*1的矩形,这时候具有两种方式去覆盖这个矩形了(这时候应该是一个正...
原创
143阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-10_3青蛙跳台阶扩展

/** * 青蛙跳台阶扩展 * <p> * 在青蛙跳台阶时问题中,如果把条件改成:一只青蛙可以跳1级台阶,也可以跳2、3、、、n级台阶,有多少种跳法 * 现在我们用数学归纳法来分析一下这个变种问题: * <p> * 首先,当n=1时,只有一种跳法 f(1)=1。 * <p> * 其次,当n=2时,有两种跳法,每次跳1阶,或者一次性跳2阶。f(2...
原创
306阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-10_2青蛙跳台阶

/** * 青蛙跳台阶问题 * <p> * 如果只有一级台阶,只有一种跳法,如果有两级台阶,那就有两种跳法。 * 将问题扩大化,如果有n级台阶,每一跳有两种可能 * 如果第一次只跳一级台阶,那么跳法数目等于后面(n-1)的跳法数目 * 如果第一次跳了两级台阶,那么跳法数目等于后面(n-2)的跳法数目 * 因此,n级台阶的不同跳法 总数就等于f(n) = f(n-1) + ...
原创
275阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-10_1斐波那契数列

/** * 斐波那契数列 * 作为最经典的递归题目,斐波那契大家都不会太陌生,但是如果只用递归,会造成很大的时间和空间消耗,所以递归并不是最好的办法,时间复杂度为o(n^2) * 我们要避免重复,可以把计算出来的值存储起来,就不用再进行重复计算的,这样的话时间复杂度为O(n)9 * 我们还可以用等比数列的公式进行计算,时间复杂度为O(nlogn) * 最简单的,还可以用通项公式进行计算,...
原创
196阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-7_3用单队列实现栈

/** * 利用一个队列实现栈 * <p> * 插入操作与之前一样,对于弹出操作,假设队列长度为n(假设存储内容为头2,5,1,3,4尾), * 对从队头poll出来的元素执行offer存入队尾,依次进行n-1次poll与offer(此时存储的内容为头4,2,5,1,3尾), * 然后再执行一次poll(此时为2,5,1,3),即完成了自实现栈的弹出。 * 这样将在时间不变...
原创
79阅读
1评论
0点赞
发布博客于 2 年前

剑指offer第二版-7_2用双队列实现栈

/** * 用两个队列实现栈 * <p> * (1)对于插入操作,栈与队列都是从队尾进行,因此很容易完成。但是一定要保证有一个队列是空的 *(2)对于弹出操作,队列从队头开始,而栈从队尾开始,要想取到队尾元素,需要第二个队列的协助: * 假设queue1不为空,queue2为空,将queue1的原书依次取出放到queue2中,同时判断,当queue1的长度为1时,不要将该元素...
原创
68阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-7_1用两个栈实现队列

/** * 用两个栈实现队列 * <p> * (1)对于插入操作,栈与队列都是从队尾进行,因此一行代码就可以完成push() * (2)对于弹出操作,队列先进先出从队头开始,而栈后进先出从队尾开始, * 要想取到队头元素,就得需要第二个栈stack2的协助:弹出时将stack1的元素依次取出放到stack2中 * 此时stack2进行弹出的顺序就是整个队列的弹出顺序。而如果...
原创
50阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-6从尾到头打印链表

题目:从尾到头打印链表思路:遍历的顺序是从过头到尾,输出顺序是从尾到头,这是一个典型的后进先出,我们可以用栈来实现相关操作。每经过一个节点时,把该结点放入一个栈中。当遍历完整个链表后,再从栈顶逐个输出节点的值。既然是个栈结构,我们自然也可以想到递归但是基于递归的代码看起来很简洁,但有个问题:当链表非常长的时候,就会导致函数调用的层级很深,从而有可能导致函数调用栈溢出所以显式用栈基于循环...
原创
57阅读
0评论
0点赞
发布博客于 2 年前

排序算法

本文将利用代码尽可能详细的解释各种排序算法(桶排和各种排序算法的比较还没有总结完,后面会继续更新)文章目录冒泡排序插入排序选择排序归并排序快速排序希尔排序冒泡排序/** * 冒泡排序 * <p> * 冒泡排序顾名思义就是整个过程像气泡一样上升,单向冒泡排序的基本思想是: * 对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交...
原创
49阅读
0评论
0点赞
发布博客于 2 年前

使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器

去年底阿里云发布了一款名为 Alibaba Cloud Toolkit 的插件,可以帮助开发者高效开发并部署适合在云端运行的应用,瞬间击中了我的小心脏,这个对于个人开发者来说超级棒啊,终于不需要再手动 scp/ftp 上传应用到服务器了,连启动的命令都可以自行编写。同时,这个插件不仅仅适用于阿里云 ECS,任何支持标准 SSH 协议的机器,都适用。今天在进行一个项目的重新部署时终于派上了用场。话...
原创
435阅读
0评论
1点赞
发布博客于 2 年前

利用两个栈模拟队列操作

要求:利用两个栈模拟队列操作说明:假设使用栈A和栈B模拟队列Q,A为押栈,B为弹栈,以实现队列Q假设AB都为空,可以认为A提供入队列功能,B提供出队列功能要入队列,入栈A即可,要出队列,则需要两种情况:若B不为空,直接弹出B的数据若B为空,则依次弹出栈A的数据,放入B中,再弹出B的数据代码:public class MyQueueOperation<E> { priv...
原创
291阅读
0评论
1点赞
发布博客于 2 年前

Java实现队列

队列(queue)是一种只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头class NodeForQueue<E>{ NodeForQueue<E> next = null; E data; public NodeForQ...
原创
90阅读
0评论
0点赞
发布博客于 2 年前

搭积木

小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9。搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。最后搭成4层的金字塔形,必须用完所有的积木。下面是两种合格的搭法:01 23 4 56 7 8 903 17 5 29 8 6 4思路:目前只想到暴力,优雅一点的说是全排列,时间复杂度已经达到O(2^n)指数级别,希望有更好...
原创
147阅读
0评论
0点赞
发布博客于 2 年前

用O(1)的时间复杂度求栈中最小元素

题目:用O(1)的时间复杂度求栈中最小元素思路:要找到栈里的最小元素,最简单的方法是对栈进行遍历,找出最小值,但是这样的方法的时间复杂度为O(n)。在算法设计中,我们可以采取用空间换时间的方法来提高算法的时间复杂度,也就是采用额外的存储空间来降低操作的时间复杂度。具体实现就是使用两个栈结构,一个栈用来存储数据,另一个栈用来存储栈的最小元素,如果当前入栈的元素比原来栈的最小值还小,则把这个栈压入最...
原创
513阅读
0评论
1点赞
发布博客于 2 年前

利用java链表实现栈

栈作为被广泛使用的数据结构,是在一个特定范围的存储单元中存储的数据,这些数据可以重新被取出使用,与线性表相比,它们的插入和删除受到更多的约束和限定,所以又称为限定性的线性表结构。不同的是,栈是一个FIFO结构,下面是采用java链表的方式时实现栈/** * 定义一个链表的节点 * * @author VicterTian * @version V1.0 * @Date 2019/1/...
原创
402阅读
0评论
0点赞
发布博客于 2 年前

利用java数组实现栈

栈作为被广泛使用的数据结构,是在一个特定范围的存储单元中存储的数据,这些数据可以重新被取出使用,与线性表相比,它们的插入和删除受到更多的约束和限定,所以又称为限定性的线性表结构。不同的是,栈是一个FIFO结构,下面是采用java数组的方式时实现栈/** * 利用java数组实现栈 * * @author VicterTian * @version V1.0 * @Date 2019/...
原创
187阅读
0评论
0点赞
发布博客于 2 年前

Java实现链表相关操作

链表作为最基本的数据结构,在程序设计中有着非常重要的作用,起存储特点如下,可以用任意一组存储单元来存储单链表中的数据元素,并且存储单元可以不连续,而且,除了存储每个元素的值以外,还可以存储指示其直接后继元素的信息。这两组信息组成的数据元素称为结点。N个结点链在一块称为链表,当结点只包含其后继结点的信息的链表就被称为单链表,存储方式如图所示:import java.util.Hashtable;...
原创
114阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-5_1有序数组插入

题目:有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2。请实现一个函数,把A2中的所有数字插入到A1中并且所有数字是排序的代码:/** * 有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2。请实现一个函数,把A2中的所有数字插入到A1中并且所有数字是排序的 * 归并排序的简单实现 * * @author VicterTian * @vers...
原创
73阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-5替换空格

题目:实现一个函数,把字符串中的每个空格替换成“%20”代码:/** * 实现一个函数,把字符串中的每个空格替换成“%20”。 * 通过按传统办法,假设字符的长度是n。对每个空格字符,需要移动后面O(n)个字符,因此对含有O(n)个空格字符串而言总的时间效率是O(n2) * 在前面的分析中,我们发现数组中的很多字符都移动了很多次,能不能减少移动的次数呢?我们换一种思路,把从前向后替换成从...
原创
85阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-4二维数组中的查找

题目:在一个二维数组中,每一行按照从左到右递增的顺序排列,每一列按照从上到下递增的顺序排列,输入一个二维数组和整数,判断数组中是否含有该整数思路:如果按常规想法,可以把二维数组画成矩形,然后从数组中选取一个数字,如果这个数字与要查找的数字相等,结束查找过程。如果选取的数字小于要查找的数字,那么要查找的数字就在这个数字的右边或者下边。同样地,如果要查找的数字大于这个数字,那么应该选取当前数字右...
原创
76阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-3数组中重复的数

题目:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字的重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如输入长度为七的数组{2,3,1,0,2,5,3},那么对应的输出重复数字为数字2或数字3代码:/** * 在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字的重复的,但不知道有几个数字重复了, *...
原创
73阅读
0评论
0点赞
发布博客于 2 年前

剑指offer第二版-2实现Singleton模式

话不多说,请看代码/** * 单利模式 * 设计模式在面向de程序中单例模式中起着举足轻重的地位,而单例模式是唯一一个能用几十行代码完全实现的模式,所以Singleton在面试中具有非常重要的地位 * 定义:实现了特殊模式的类,该类仅能被实例化一次,产生唯一的对象,并且提供了一个全局的访问点 * 应用场景:windows的任务管理器,回收站,web应用的配置对象,Spring中的bean...
原创
152阅读
0评论
2点赞
发布博客于 2 年前

剑指offer第二版-1字符串转数字

题目:把字符串转换成整数思路:本地难度不大,但是要考虑的特殊情况较多如果是空串或null,要特殊处理;如果头部有正负号,要特殊处理;如果数值超出int的范围,要特殊处理;比int的最大值还要大,已经上溢,这肯定不能通过数字的大小比较,所以需要在字符串的状态下判断是否上溢或下溢。遇到非数字的字符,则转换停止;/** * 把一个字符串转换为整数 * * @author Victe...
原创
209阅读
0评论
0点赞
发布博客于 2 年前

ELK问题集锦

一、Exception in thread “main” SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ElasticsearchParseException[malformed, expected settings to start with ‘object’, instead was [...
转载
509阅读
0评论
0点赞
发布博客于 2 年前