自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悦来阅美好_IT

悦来阅美好....

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

原创 【性能优化】之 ConcurrentHashMap实现本地缓存服务

很多场景下,有些请求的数据,是不会经常改变的,这种时候,为了减少数据库的查询压力,可以将这一部分数据放入缓存中,直接从缓存中读取。除了一些像Redis等缓存外,还可以通过本地内存,作为缓存...

2022-07-03 11:12:23 947 1

原创 开发必备——if-else优化的几种方案

日常开发,常会遇到if-else语句,特总结几种常用的优化方案,让你的代码摆脱low…> # 方法1:表驱动法在表中查找信息,而不必用很多的逻辑语句(if或case)来把它们找出来的方法—— 把map抽象成表,在map中查找信息,而省去不必要的逻辑语句。//优化前 public void handleAlarm0(int cpeType, Integer alarmCode) { if (cpeType == 1) { handleCloud(al

2021-11-21 19:11:04 504

原创 Quartz任务框架demo

上面三个部分就是Quartz的基本组成部分:调度器:Scheduler任务:JobDetail触发器:Trigger,包括SimpleTrigger和CronTrigger

2021-09-22 23:58:11 204

原创 java必备——java8新特性:Lambda表达式和方法引用

一、简介Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中),

2021-06-14 23:44:00 229

原创 【JVM】:java new一个对象背后发生了什么?

目录前言一、类加载(第1次使用该类)二、创建对象前言java在new一个对象时,先检查对象所属的类有没有被加载到内存:类没有加载到内存:通过【类到全限定名】加载,加载并初始化后,创建对象。 类已经加载到内存:创建对象。假设该类第一次使用——new对象分为2个过程:加载并初始化类、创建对象一、类加载(第1次使用该类)java使用双亲委派模型进行类加载,故先了解下“双亲委派模型”双亲委派模型构造过程:如果一个类加载器ClassLoader收到类加载请求,它不会首先加

2021-06-14 17:59:26 329

原创 【设计模式】之观察者模式——简单的“微信公众号推送消息给相关用户”

一、简单介绍定义对象间“一对多”的依赖关系。“一”为被观察者,“多”为观察者;当被观察者(某个微信公众号)状态变化时,观察者(订阅此公众号多诸多用户)得到通知而被自动更新。二、观察者模式涉及的4个角色抽象主题Subject具体主题ConcreteSubject 抽象观察者Observer 具体观察者ConcreteObserver三、观察者模式demo:简单的“微信公众号推送消息给相关用户”...

2021-06-13 18:02:50 728

原创 【设计模式】之单例模式——懒汉模式、饿汉模式、双重校验锁DDL

目录一、何为单例模式/何种场景?二、单例模式实现思路(如何确保创建的对象唯一)三、demo:懒汉模式、饿汉模式、双重校验锁DDL一、何为单例模式/何种场景?须确保某个类只有1个对象 or 创建一个对象需要消费过多资源。二、单例模式实现思路(如何确保创建的对象唯一)类中定义一个该类的静态私有(private static)对象 构造函数私有化(private)——其他程序无法通过new创建对象 类中定义一个静态公共(public static)方法——创建/获取本类的静态私有对

2021-06-13 16:59:02 376

转载 Intellij IDEA日常使用

1、IDEA 开启 services窗口 管理微服务https://blog.csdn.net/haohaosun1997/article/details/114936319?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-1&spm=1001.2101.3001.4242

2021-06-12 18:39:15 73

转载 Spring学习笔记(面试参考,超详细版)

IOC(控制翻转)本质没有IoC的程序中,面向对象的编程,对象的创建和对象之间的依赖关系硬编码到程序中,有程序本身控制;引入DI,对象的创建和对象之间的依赖关系交由第三方——Spring容器来控制。IoC的本质是获取依赖对象的方式翻转了。IoC、DI、Spring 容器区别:IoC:控制翻转,一种设计思想——把对象的实例化工作交由Spring容器来完成。一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式 DI:依赖注入。实现IoC的方式,可以理解为IoC的另一种表示方式

2021-05-05 15:45:28 168

原创 【多线程】之JUC编发编程:线程池ThreadPool工作流程及源码分析

线程池——3大方法、7大参数、4种拒绝策略池化技术程序的运行,本质:占用系统资源!优化资源使用——池化技术例:线程池、JDBC连接池、对象池......池化技术:实现准备好一些资源(默认大小,最大值),有人用,就来拿,用完归还。线程池好处:减低资源消耗 提高响应速度(创建和销毁十分消耗资源) 方便管理线程线程复用、可控制最大并发数、管理线程线程池工作流程当一个任务通过submit或者execute方法提交到线程池的时候,如果当前池中线程数(包括闲置线程)小于

2021-04-03 20:45:22 116

转载 Java必备——Java 链式编程 和 lombok 实现链式编程

目录一、什么是链式编程1、链式编程定义2、jdk 中 StringBuffer 源码:3、按照上面的方法写一个例子:二、lombok链式编程2.1、依赖2.2、lombok实现静态的链式编程三、静态的链式编程3.1、lombok实现静态的链式编程四、builder模式的链式Bean4.1、自定义 builder模式的链式Bean一、什么是链式编程1、链式编程定义链式编程的原理就是返回一个this对象,就是返回本身,达到链式效果。我们经常...

2021-03-24 23:31:17 627

原创 java必备——四大函数式接口(必须掌握)

新时代程序员:lambda表达式、链式编程、函数式接口、Stream流式计算。(也:泛型、枚举、反射、注解)目录一、什么是函数式接口二、四大函数式接口--(位置:java.util.function)一、什么是函数式接口只有一个抽象方法的接口注:简化编程模型,在新版本的框架底层大量使用!例:foreach(消费者类型的函数式接口),Runnable接口(只有1个run方法)。二、四大函数式接口--(位置:java.util.function)Function——函数型

2021-03-24 23:12:28 1404

原创 java必备——Stream流式计算

什么是Stream流式计算大数据时代:存储+计算存储——集合、数据库 计算——交给“流”来操作/** * @author javaClimber * @date 2021/3/21 20:00 * * 题目: * 一分钟内完成此题,只用一行代码实现! * 现有10个用户,筛选出: * --id是偶数 * --年龄大于27 * --用户名转为大写字母 * --用户名字母倒着排序 * --只输出1个用户 * */public class StreamDemo {

2021-03-21 20:30:34 512

原创 【多线程】之JUC编发编程:辅助工具类CountDownLatch和CyclicBarrier

倒计数器CountDownLatchpublic static void main(String[] args) throws InterruptedException { //总数是5、必须执行任务时,再使用! CountDownLatch countDownLatch = new CountDownLatch(5); for(int i=0;i<5;i++){ new Thread(()->{

2021-03-17 01:02:10 67

原创 【多线程】之JUC编发编程:信号量Semaphore理论+实战demo+与线程池ThreadPool对比

原理:semaphore.require():获得,假如已经满了,等待,等待被释放为止semaphore.release():释放,释放当前信号量,然后唤醒等待的线程作用:多个共享资源互斥的使用!并发限流!控制最大的线程数!...

2021-03-17 00:32:39 118

转载 【leetcode-字符串】:构造上升下降字符串(桶方法)

题目给你一个字符串s,请你根据下面的算法重新构造字符串:从 s中选出 最小的字符,将它 接在结果字符串的后面。从 s剩余字符中选出最小的字符,且该字符比上一个添加的字符大,将它 接在结果字符串后面。重复步骤 2 ,直到你没法从 s中选择字符。从 s中选出 最大的字符,将它 接在结果字符串的后面。从 s剩余字符中选出最大的字符,且该字符比上一个添加的字符小,将它 接在结果字符串后面。重复步骤 5,直到你没法从 s中选择字符。重复步骤 1 到 6 ,直到 s...

2021-03-14 23:32:08 138

转载 【leetcode-字符串】:重复的子字符串(是否由它的一个子串重复多次构成)

题目给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)分析如果您的字符

2021-03-14 22:48:53 1111

原创 Intellij IDEA如何设置头注解?自定义author和data

参照下图操作:参考如下模板:/*** @Author: javaClimber* @Date: ${DATE} ${TIME}*/

2021-03-13 23:22:22 615

原创 【leetcode-字符串】: 左旋转字符串

题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"解答://方法一:字符串分片(substring)与拼接//评价:字符串为不可变对...

2021-03-10 22:54:16 88

原创 【leetcode-字符串】:罗马数字转整数

题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常情况下,罗马数字中小的数字在大的数字的右边...

2021-03-09 23:02:08 71

原创 【微服务扫盲篇】之微服务框架常见问题和解决思路

目录微服务框架常见问题微服务框架常见概念1、服务治理2、服务调用3、服务网关4、服务容错5、链路追踪微服务架构, 简单的说就是将单体应用进一步拆分,拆分成一个个小的服务,每个服务都是一个可以独 立运行的项目。微服务框架常见问题这么的小服务,如何管理它们?(注册中心) 这么的小服务,它们之间如何通信?(restful API 或 rpc) 这么的小服务,客户端如何访问它们?(网关) 这么的小服务,一旦出现问题,如何自行处理?(容错) 这么的小服务..

2021-03-06 21:55:48 417 1

原创 【Docker系列】之常用命令

目录帮助命令镜像命令容器命令1、帮助命令Docker version #版本Docker Info #系统信息,包括镜像、容器数量Docker 命令 --help #万能命令 eg:Docker images --help帮助文档地址:docker doc-reference 2、镜像命令docker images #查看本地主机镜像 -a 列出所有镜像;-q 只显示镜像iddocker search #搜索镜...

2021-03-05 23:58:29 75

原创 【Docker系列】之Linux安装Docker,亲测有效

说明:本文Linux为Centos 7版本,并参考Docker官网。1、卸载旧版本Uninstall old versions输入以下命令:yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \...

2021-02-18 23:04:19 73

空空如也

空空如也

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

TA关注的人

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