自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

转载 SpringCloud面试题整理

什么是SpringBoot?1、用来简化spring初始搭建和开发过程使用特定的方式进行配置(properties或者yml文件)2、创建独立的spring引用程序main方法运行3、嵌入Tomcat无需部署war包,直接打成jar包nohup java -jar – & 启动就好4、简化了maven的配置4、自动配置spring添加对应的starter自动化配置SpringBoot常用的starter:1、spring-boot-starter-web(嵌入Tomcat和web开发需要

2021-04-09 14:04:55 189

原创 防止sql注入工具类

public static String filtration(String str){ if(StringUtils.isNotEmpty(str)) { String inj_str = "|select|and|or|like|regxp|from|where|update|exec|order|by|having|drop|delete|count|chr|mid|master|truncate|chardeclare|;||( )|[ ]|< >|,|.|;|.

2021-01-26 13:53:18 561

原创 SPI如何破坏双亲委派模型

SPI如何破坏双亲委派模型# 双亲委派# SPI类加载器(classloader)先从类加载器说起,凡事先问是什么,首先什么是类加载器?我们知道,一个 *.java 的代码源文件要执行起来之前,必须通过 javac 构建抽象语法树并编译成字节码,字节码仍然是不能被机器所识别,那么一个 .class 文件要被机器识别并执行的前提就是将字节码转化成机器码加载到内存里,这一转化过程就是类加载的执行过程。当然,这整个过程细节并非这个问题的讨论重点。类加载器便是在在这个过程里的加载阶段..

2021-01-22 10:14:35 734

原创 Kettle使用说明

1.Kettle说明Kettle是一款国外开源的ETL工具,纯java编写,可以在不同系统平台上运行,绿色无需安装,数据抽取高效稳定,操作简单快捷。Kettle这个ETL工具集,它允许管理来自不同类型的数据库的数据及其他类型的文本数据, 通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。 Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。提供了丰富的组件来满足不同类型的数据间的转换等。但

2021-01-06 09:19:10 1174

原创 代码是讲道理的

我认为靠烧香来保佑代码不出问题时,保平安往往也是暂时的。优秀的代码,就是在小流量、单线程没有问题,在高流量、高并发时还是没有问题,你的限流,你的容灾,你的降级各种导弹防御系统一样自动打开并正确地发挥价值。很多人的思维觉得,代码只要在场景和逻辑上没有问题就行,那是因为夜路走得不够多,还没有碰到鬼。代码是讲道理的,就像有一个同学说>=比>更加慢,那只是我们的潜意识猜测,经过深达编译层的分析,发现两个指令几乎是完全一样。其实凭我们的想象,那也是一个位运算级别的操作,从左向右比,如果一处有 1 ,另一个

2020-12-02 14:42:58 222

原创 JAVA中的装箱拆箱问题

JAVA中的装箱拆箱问题# 装箱拆箱引言做为 Java 程序员,在日常的开发过程中我们经常需要对基本的数据类型进行包装装箱进行使用,比如把 int 基本类型变成 Integer 包装类,很多时候会让我们觉得这样的操作有些繁琐,写代码的时候不够顺滑,那么 Java 为什么要这么做呢?分析这是 Java(或者很多 OO 语言)面临的共同设计问题。OO 语言都希望能“万物皆对象”,并以此为基础来设计整个语言。比如会提供基类 Object,以及基于这个基类的类型系统; 有了 Obje.

2020-12-02 14:36:38 150

转载 康威定律——微服务的理论基础

康威定律——微服务的理论基础微服务# 系统架构前言微服务现在大行其道,大家都在追,也都觉得很对,很多公司就算是用户量不大也都要上微服务,赶一波潮流但是似乎没有很充足的理论基础说明这是正确的,给人的感觉是 不明觉厉 。前段时间看了 Mike Amundsen 《远距离条件下的康威定律——分布式世界中实现团队构建》(是 Design RESTful API 的作者)一个分享,觉得很有帮助,结合自己的一些思考,整理了该演讲的内容。可能出乎很多人意料之外的一个事实是,微服务很多核心理念其...

2020-12-02 10:12:48 305

原创 Spring的整体架构

Spring的整体架构Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示这些模块被总结为以下几个部分:Core ContainerCore Container(核心容器)包含有Core、Beans、Context和Expression Language模块Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真..

2020-11-30 17:57:17 1482

转载 Netty简单介绍

Netty简单介绍# Netty为什么要学习Netty作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,会点SSH,写几个MVC,访问数据库和缓存,这些只是初等Java程序员干的事。如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,MySQL的Prox..

2020-11-30 17:37:32 254

原创 spring个人理解

Spring的事务管理机制实现的原理:通过这样一个动态代理对所有需要事务管理的Bean进行加载,并根据配置在invoke方法中对当前调用的 方法名进行判定,并在method.invoke方法前后为其加上合适的事务管理代码,这样就实现了Spring式的事务管理。Spring中的AOP实 现更为复杂和灵活,不过基本原理是一致的。...

2020-11-30 17:35:38 64

原创 JDK中令人惊讶的BUG

JDK中令人惊讶的BUG# JKD# BUG今天分享一个JDK中令人惊讶的BUG,这个BUG的神奇之处在于,复现它的用例太简单了,人肉眼就能回答的问题,JDK中却存在了十几年。经过测试,发现从JDK8到14都存在这个问题。大家可以在自己试试这段代码:publicclassHello{publicvoidtest(){inti = 8;while((i -= 3) > 0);System...

2020-11-30 17:28:23 125

原创 JAVA中的装箱拆箱问题

JAVA中的装箱拆箱问题# 装箱拆箱引言做为 Java 程序员,在日常的开发过程中我们经常需要对基本的数据类型进行包装装箱进行使用,比如把 int 基本类型变成 Integer 包装类,很多时候会让我们觉得这样的操作有些繁琐,写代码的时候不够顺滑,那么 Java 为什么要这么做呢?分析这是 Java(或者很多 OO 语言)面临的共同设计问题。OO 语言都希望能“万物皆对象”,并以此为基础来设计整个语言。比如会提供基类 Object,以及基于这个基类的类型系统; 有了 O..

2020-11-30 17:27:06 289

原创 Java Timer 定时调度器实现原理

Java Timer 定时调度器实现原理# 定时调度器使用 Java 来调度定时任务时,我们经常会使用 Timer 类搞定。Timer 简单易用,其源码阅读起来也非常清晰,本文中我们来仔细分析一下 Timer 类,来看看 JDK 源码的编写者是如何实现一个稳定可靠的简单调度器。Timer 使用Timer 调度任务有一次性调度和循环调度,循环调度有分为固定速率调度(fixRate)和固定时延调度(fixDelay)。固定速率就好比你今天加班到很晚,但是到了第二天还必须准点到公司上班,如果你一.

2020-11-30 17:26:08 397

原创 AQS——并发数据结构的基石

AQS——并发数据结构的基石# AQS# 高并发每一个 Java 的程序员在体验过多线程程序开发之后,都需要问自己一个问题,Java 内置的锁是如何实现的?最常用的最简单的锁要数 ReentrantLock,使用它加锁时如果没有立即加成功,就会阻塞当前的线程等待其它线程释放锁之后再重新尝试加锁,那线程是如何实现阻塞自己的?其它线程释放锁之后又是如果唤醒当前线程的?当前线程是如何得出自己没有加锁成功这一结论的?本篇内容需要一定的java基础,不推荐初学者进行阅读。线程阻塞原语...

2020-11-30 17:14:59 107

redis-trib.rb redis集群搭建使用

redis-trib.rb redis集群搭建使用 ,亲测可用

2020-11-30

空空如也

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

TA关注的人

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