自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixiaohuai的博客

任何质变都来自于量变的积累。

原创 手机端或PC端利用高德地图和腾讯地图获取用户当前位置信息

一、简介 最近在项目中,有需要使用到获取用户当前地理位置信息的功能,获取当前用户位置保存到数据库中的场景,并且需要支持多种地图定位方式,我这里采用系统参数配置的方式,暂时实现了高德地图和腾讯地图两种方式,下面我们就分别对两种地图的实现方式做一个总结。 二、高德地图 【a】注册高德地图开发者账...

2020-06-29 15:31:59 210 0

原创 XML解析成实体类统一工具类

一、简介 最近在项目中需要用到XML解析成实体类,并将值封装到实体类属性中,于是封装了一个工具类。下面是具体的代码: NHXmlParseUtils.java: package com.ly.cloud.common.webservice; import org.dom4j.Docume...

2020-06-28 16:27:33 57 0

原创 SpringBoot调用.asmx后缀的webservice接口

目录 一、简介 二、示例 一、简介 最近在项目中,在与其他公司做对接中需要回调一个对方的接口,根据对方提供的接口地址, 发现是webservice的接口,而且接口后缀名为.asmx,因为现在webservice接口基本上都是wsdl这种形式,所以使用wsdl调用方式不能用,得使用其他方法...

2020-06-28 09:36:38 90 0

原创 Oracle表连接方式总结

一、简介 Oracle中主要有下面四种表连接方式: SORT MERGE JOIN(排序-合并连接); NESTED LOOPS(嵌套循环); HASH JOIN(哈希连接); CARTESIAN PRODUCT(笛卡尔积); Oracle中,通过JOIN关键字进行表连接操作,一次只能连...

2020-06-20 17:08:48 61 0

原创 关于Oracle表访问方式的总结

一、简介 Oracle访问表中记录主要有下面三种方式: 全表扫描(TABLE ACCESS FULL); 通过ROWID访问表(TABLE ACCESS BY ROWID); 索引扫描(TABLE ACCESS BY INDEX SCAN); 下面结合示例分别对三种访问方式进行详解。 二...

2020-06-17 17:36:55 90 0

原创 并发修改异常ConcurrentModificationException详解

目录 一、简介 二、异常原因分析 三、异常原因追踪 五、如何避免并发修改异常? 六、总结 一、简介 在多线程编程中,相信很多小伙伴都遇到过并发修改异常ConcurrentModificationException,本篇文章我们就来讲解并发修改异常的现象以及分析一下它是如何产生的。 ...

2020-06-14 10:05:51 71 0

原创 Oracle常见索引扫描方式总结

目录 一、简介 二、索引唯一扫描 三、索引范围扫描 四、索引全扫描 五、索引快速全扫描 六、索引跳跃式扫描 七、总结 一、简介 Oracle提供了五种索引扫描类型,根据具体索引类型、数据分布、约束条件以及where限制的不同进行选择: 索引唯一扫描(index unique s...

2020-06-05 20:49:41 95 0

原创 Oracle中使用DBMS_XPLAN查看执行计划的方法

一、简介 DBMS_XPLAN是Oracle提供的一个用于查看SQL计划,包括执行计划和解释计划的包.DBMS_XPLAN包给出了更加简化的获取和显示计划的方式。 DBMS_XPLAN包不仅可以获取解释计划,还可以用来输出存储在AWR、SQL调试集、缓存的SQL游标,以及SQL基线中的语句计划。...

2020-06-03 09:33:00 99 0

原创 Oracle相同的一个SQL执行计划截然不同的解决方法

最近在项目中遇到了一个很奇怪的问题,有个结构稍微复杂点的SQL(left join了十几张表)在一个项目地A查询时两秒返回数据,但是相同的SQL部署在另外一个项目地B却花费90多秒,更奇怪的是项目地B的数据库服务器比A好很多,还有数据总行数也比项目地A的少一些,然而花费的时间却多了几十倍。这个时候...

2020-06-02 16:09:44 145 0

原创 开放接口API安全性之签名验证【url签名算法】

一、简介 首先谈谈什么是接口安全问题?接口安全,其实就是保证自己应用程序对外暴露接口的安全,即我这个接口只能某些第三方应用进行访问,不应该被别人随意访问。 服务端对外开放API接口,必须关注接口安全性的问题,要确保第三方应用程序与API接口之间的安全通信,防止数据被恶意篡改、伪造参数等攻击。 ...

2020-05-29 11:16:31 286 0

原创 Java集合相关面试题总结

一、简介 Java集合类是我们日常编程中使用较多的一个,常见的有:ArrayList、LinkedList、HashMap、HashSet、ConcurrentHashMap、LinkedBlockQueue等等,集合类同时也是面试时必问的一项技能,所以我们有必要了解一些常见的面试题,本文将总结...

2020-05-23 15:17:21 135 0

原创 SpringBoot常见面试题总结二

一、简介 前不久已经总结了一篇关于SpringBoot的面试题,文章地址:【https://blog.csdn.net/Weixiaohuai/article/details/105621247】,本文将继续总结一些常见的SpringBoot面试题。 二、面试题 【a】SpringBoot核...

2020-05-19 20:53:35 140 0

原创 SpringBoot自动配置原理分析

一、简介 本文将对SpringBoot的自动配置原理进行分析,我们都知道,启动SpringBoot应用其实就是运行其main()方法,那么它到底是怎么启动的,还有是怎么自动装配Spring所需要的的那些组件呢,通过本文就可以对SpringBoot的自动配置原理有一定的认识和理解。 二、自动配置...

2020-05-17 20:38:31 150 0

原创 SpringCloud常见面试题总结二

一、简介 最近在忙项目,差不多半个月没有写博客,今天正逢周末,整理一些常见的SpringCloud面试题。 二、面试题 【a】SpringCloud 和Dubbo区别? 区别 SpringCloud Dubbo 服务调用方式 Rest Api RPC 注册中...

2020-05-16 21:11:49 211 0

原创 Redis相关面试题总结

一、简介 本文总结一些常见的Redis相关的面试题,方便在后面有需要的时候查看和复习。 二、面试题 【1】redis和memcached有什么区别?为什么高并发下有时单线程的redis比多线程的memcached效率要高? memcached可以缓存图片和视频,redis支持除了k/v键值...

2020-04-23 21:06:40 203 0

原创 Mybatis相关面试题总结

一、简介 本文将总结一些关于持久化层框架Mybatis的面试题。 二、面试题 【1】什么是Mybatis? MyBatis是一个可以自定义SQL、动态SQL、存储过程和高级映射的持久层框架。 【2】请谈谈Mybatis的缓存? MyBatis的缓存分为一级缓存和二级缓存,一级缓存放在s...

2020-04-20 21:45:44 194 0

原创 SpringMVC相关面试题总结

一、简介 本文将总结一些现在非常流行的开源框架SpringMVC相关的面试题。 二、面试题 【1】什么是SpringMVC? SpringMvc是Spring的一个模块。基于MVC的一个框架,无需中间整合层来整合。 【2】Spring MVC的优点? 清晰的角色划分:控制器(contr...

2020-04-19 22:19:45 156 0

原创 Spring相关面试题总结

一、简介 本文将总结一些现在非常流行的开源框架Spring相关的面试题。 二、面试题 【1】什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个轻量级的Java开发框架,为应用开发提供平台。 包含模块: Spring AOP 面向切面编程 Spring O...

2020-04-19 22:13:18 237 0

原创 SpringBoot常见面试题总结一

一、简介 本文将总结一些现在非常流行的开箱即用框架SpringBoot相关的面试题。 二、面试题 【1】什么是SpringBoot? Spring Boot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启...

2020-04-19 21:49:59 315 0

原创 SpringCloud常见面试题总结一

一、简介 本文将总结一些常见的微服务架构SpringCloud相关的面试题。 二、面试题 【1】什么是SpringCloud? 使用SpringCloud有什么优势? SpringCloud是在SpringBoot基础上构建的,用于快速构建分布式系统的通用模式的工具集。 优势: 约定优...

2020-04-19 20:13:11 211 0

原创 React图片压缩上传统一处理

一、简介 最近项目需要对上传的图片文件进行压缩后才上传到服务器中,于是研究了一番,下面给出详细的压缩方法,笔者使用的是React Ant Design前端框架的Upload组件上传图片: 通过查看Ant Design官网文档,在上传文件前可以修改文件: transformFile 在...

2020-04-13 16:50:33 528 0

原创 面试题之并发相关专栏五

一、请谈谈volatile有什么特点,为什么它能保证变量对所有线程的可见性? 当一个变量被volatile修饰后,具备两个特性: 保证此变量对所有线程的可见性,当一条线程修改了这个变量的值,新值对于其他线程是可以立即得知的,而普通变量做不到这一点。 禁止指令重排序优化,普通变量仅仅能保证在方...

2020-04-05 20:08:22 96 0

原创 面试题之并发相关专栏四

一、Java中的线程池是如何实现的? 在Java中,所谓的线程池中的线程,其实是被抽象为了一个静态内部类Worker,基于AQS实现,存放在线程池的HashSet workers成员变量中; 需要执行的任务存放在成员变量workQueue中,workQueue是一个阻塞队列; 线程池的基本思...

2020-04-05 20:01:24 86 0

原创 面试题之并发相关专栏三

一、ReentrantLock是如何实现可重入的? ReentrantLock内部自定义了同步器Sync,其实就是加锁的时候通过CAS算法,将线程对象放到一个双向链表中,每次获取锁的时候,看下当前维护的那个线程ID和当前请求的线程ID是否一样,一样就可重入。 二、请说说CyclicBarrie...

2020-04-05 19:53:10 88 0

原创 面试题之并发相关专栏二

一、什么是锁消除和锁粗化? 锁消除:指虚拟机即时编译器在运行时,对一些代码上要求同步,但被检测到不可能存在共享数据竞争的锁进行消除。 锁粗化:原则上,同步块的作用范围应该尽可能的小,也就是说锁的粒度要尽可能小一点。但是如果一系列的连续操作都对同一个对象反复加锁和解锁,甚至加锁操作在循环体内,频...

2020-04-05 19:44:42 76 0

原创 面试题之并发相关专栏一

一、Synchronized用过么?其原理是什么? Synchronized是由JVM虚拟机实现的一种实现互斥同步的方式,被Synchronized修饰后的程序块编译后的字节码文件中,在编译前后被编译器生成了monitorenter和monitorexit两个字节码指令。 在虚拟机执行到mon...

2020-04-05 19:31:03 99 0

原创 面试题之GC是什么?为什么要有GC?

一、GC是什么?为什么要有GC? 参考回答:GC是垃圾收集的意思,内存处理是开发人员容易出现问题的地方,忘记或者错误地内存回收会导致程序或者系统的不稳定甚至崩溃,Java提供的垃圾回收机制可以自动检测对象是否超过作用域从而达到自动回收的目的。 二、简述Java垃圾回收机制 参考回答:在Jav...

2020-04-04 19:33:51 284 0

原创 面试题之请描述一下Java类加载过程

一、简介 Java类加载过程是面试中常问的问题之一,今天我们将对类加载的各个过程进行简单的分析和总结,这样在面试的时候对这个问题就有信心回答好了。 二、类加载过程 Java类加载过程包含下面5个步骤: 【a】加载 通过一个类的全限定名获取该类的二进制流; 将该二进制流的静态存储结构转化...

2020-04-04 19:22:03 282 0

原创 Docker部署SpringCloud项目

一、简介 本篇文章将总结如何使用Docker部署SpingCloud项目,这里的内容也是之前学习Docker时候自己花了不少时间一点一点摸索出来的,小伙伴们可以参考着自己操作一遍,期间肯定会踩坑,然后一个一个解决就学会了。 主要涉及到的服务有: Eureka服务注册和发现; Config配...

2020-03-31 20:25:48 156 0

原创 Docker备份镜像和重新载入镜像

一、简介 实际项目中,有时候可能会遇到需要批量备份已经存在的镜像,又或者说项目地服务器暂时无法拉取镜像等等原因,这时候我们就可以将公司镜像仓库中的镜像在本地打成tar压缩包,然后通过xftp传输到项目地服务器中,然后再项目地中重新加载这些镜像即可。本文将总结如何批量打包Docker镜像并且重新载...

2020-03-31 14:51:38 381 0

原创 Docker批量拉取和推送的Linux Shell脚本

一、简介 今天给小伙伴们分享一个Docker批量拉取和推送到项目地镜像仓库的shell脚本,可以批量进行拉取和推送,比一个一个手动拉取和推送方便不少,话不多说,直接入正题: 【a】创建脚本文件auto-pull-and-push-images.sh vim auto-pull-and-pu...

2020-03-31 13:56:54 373 0

原创 Docker手动构建镜像

一、简介 在实际项目中,我们通常采用Jenkins自动化构建来构建Docker镜像,但是公司有时候Jenkins会挂掉或者Jenkins空间不足会导致无法构建镜像,这个时候如果项目地需要升级镜像版本就只能干等,构建镜像除了使用Jenkins来构建,也可以自己手动构建,然后自己线下打包镜像压缩文件...

2020-03-31 10:37:27 89 0

原创 面试题之Servlet工作原理

一、简介 要了解Servlet的原理,首先需要了解其类图: Servlet是一个接口,有三个重要的方法: //Servlet初始化容器执行的方法 void init(ServletConfig var1) throws ServletException; //执行具体的逻辑 vo...

2020-03-30 17:24:53 122 0

原创 面试题之说几个Object类常用方法以及作用

一、简介 面试中经常会被问到Object类有哪些常用的方法和各自的作用,我们都知道Object类是所有类的基类,所以我们也有必要去了解它常见API,下面我们通过一张表来总结Object类有哪些常用方法以及作用: 方法返回值类型 方法名称以及描述 ...

2020-03-29 20:03:43 189 0

原创 面试题之synchronized与Lock的区别

一、简介 今天我们总结一下关于JUC方面的面试题: synchronized与Lock的区别? 如果面试遇到这个问题,小伙伴们可以参考从以下几个方面进行回答: 区别 synchronized Lock 是否关键字 ...

2020-03-16 20:01:01 199 0

原创 面试题之GC垃圾回收算法

一、简介 我们都知道,JVM中堆可分为: 【a】新生代: Eden区域 From(s0)区域 To(s1)区域 【b】老年代 如下图: JVM垃圾回收的主要区域之一就是我们的堆。JVM在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是指新生代。 GC按照...

2020-03-16 19:51:11 181 0

原创 JUC学习之AQS抽象队列同步器

一、简介 AQS是AbstractQueuedSynchronizer的简写,翻译过来就是:抽象队列同步器。AbstractQueuedSynchronizer在java.util.concurrent.locks包中,声明如下: public abstract class Abstract...

2020-03-14 08:28:25 86 0

原创 JUC学习之ForkJoinPool分支合并

一、简介 JDK7引入了一种新的并发框架 - Fork/Join Framework分支合并框架,同时引入了一种新的线程池ForkJoinPool @sun.misc.Contended public class ForkJoinPool extends AbstractExecutorSe...

2020-03-13 20:15:50 93 0

原创 JUC学习之线程池工作原理

一、简介 上一篇文章介绍了各种线程池的使用、优势等,本篇我们将去了解线程池底层一点的相关知识。 二、线程池底层原理 Executor为我们提供了功能各异的线程池,其实其内部很多都是由ThreadPoolExecutor实现的,我们详细了解下ThreadPoolExecutor实现原理不但对我...

2020-03-12 19:31:15 89 0

原创 JUC学习之线程池

一、简介 首先,我们先了解一下为什么要用线程池? 很多年以前,单核CPU的时候,多线程其实是假的,只是线程之间高速切换造成的“多线程”假象。现如今,基本上都是多核CPU电脑,多个线程各自跑在独立的CPU上,不用切换,效率比较高。 线程池的主要特点: 线程可复用; 控制最大并发数; 管理...

2020-03-11 19:46:15 93 0

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