自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 服务网关 Spring Cloud GateWay 入门

[TOC]服务网关 Spring Cloud GateWay 入门。

2022-11-04 10:05:00 189 1

原创 JAVA并行流ForkJoin框架

Java并行流Parallel Streams是Java8和更高版本的一个特性,用于利用处理器的多个核心。通常,任何java代码都有一个处理流,在这里它是按顺序执行的。然而,通过使用并行流,我们可以将代码分成多个流,这些流在不同的内核上并行执行,最终的结果是各个结果的组合。然而,处理的顺序不在我们的控制之下。因此,建议在以下情况下使用并行流:无论执行顺序如何,结果不受影响,一个元素的状态不影响另一个元素,并且数据源也不受影响。

2022-10-26 09:52:13 307

原创 lambda表达式、链式编程、函数式接口、Stream流式计算、四大函数式接口

Lambda表达式是JAVA8中提供的一种新的特性,是一个匿名函数方法。可以把Lambda表达式理解为一段可以传递的代码,可以写出更简洁、更灵活的代码。函数式接口: 只有一个方法的接口一般有FunctionalInterface注解称之为函数式接口}Function函数式接口看源码可得出传入参数T,返回类型为R代码展示后面还有三种类型,道理和这个一致。

2022-10-25 16:35:13 501

原创 JAVA枚举类型和常量类的通俗解释

那么什么时候应该使用枚举呢?每当需要一组固定的常量的时候,如一周的天数、一年四季等。或者是在我们编译前就知道其包含的所有值的集合。Java 1.5的枚举能满足绝大部分程序员的要求的,它的简明,易用的特点是很突出的。

2022-10-25 10:03:36 918

转载 mybatis-plus中wrapper的用法

地址:https://blog.csdn.net/qq_39715000/article/details/120090033

2022-09-05 15:40:21 377

原创 Nacos实战教程(服务配置、注册与发现)

Nacos实战教程

2022-08-12 16:41:15 2652

原创 用户IP地址的实现

后端我们是基于Jsoup的html解析来实现,首先是新建一个普通的Springboot项目,然后加入下面的依赖:然后就可以写工具方法啦,简单的几行代码即可完成,大家可以直接 Copy我的,包导入我都帮你准备好了:通过运行这个方法,可以看到,控制台打印了IP和城市信息,也就是我们想要的IP属地信息啦!在你的项目里,你可以在登录的时候记录当前登录用户的IP和登录地点,也可以在用户发表文章和评论的时候显示出他的IP属地,非常实用哦~...

2022-06-21 15:12:51 245

原创 MyBatis执行批量操作

Mybatis常会出现批量操作,如批量查询,批量插入,批量修改(replace into)。批量操作要比循环执行效率提升很多,这里对mybatis的批量操作做一个总结讲解。foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach标签的属性主要有item,index,collection,open,separator,close。在使用foreach的时候最关键的也是最容易出错的就是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要

2022-06-21 14:13:08 6151

原创 SpringBoot内置工具类应有尽有

1、断言断言是一个逻辑判断,用于检查不应该发生的情况Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查// 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行// 参数 message 参数用于定制异常信息。void notNull(Object object, String message)// 要求参数必须空(Null),否则

2022-05-18 15:28:21 95

原创 Myeclipse 8.5注册破解方法

1、建立一个任意的java project。2、在该工程中建立一个名文MyEclipseGen的Java文件(MyEclipseGen.java)3、运行下面的代码,会在控制台出现" please input register name:",输入任意一个名字,回车后生成序列号(鄙人渣渣一个,因此代码时是复制的其他博主的……,写此博文是为获益更多的人……)import java.io.BufferedReader; import java.io.IOException; import java.

2022-05-07 14:18:35 575

原创 java面试题总结

Java基础1、java中的内存泄漏是怎么回事答:内存泄漏是指你向系统申请分配内存进行使用,然后系统在堆内存中给这个对象申请一块内存空间,但当我们使用完了却没有归系统,导致这个不使用的对象一直占据内存单元,造成系统将不能再把它分配给需要的程序。一次内存泄漏的危害可以忽略不记,但是内存泄漏堆积则后果很严重2、 BlockingQueue相比普通的Queue最大的区别是什么?答:1.阻塞队列获取元素时,如果队列为空,则会等待队列有元素,否则就阻塞队列(普通队列返回结果,无元素)2.阻塞队列放入元

2022-04-24 13:59:29 825

原创 Mybatis-plus实体类注解

mybatis-plus实体类注解:1、@TableName(value = …)当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名2、@TableId(type = …)指定实体类的属性为对应的主键,主要有以下几种:// 数据库ID自增IdType.AUTO// 该类型为未设置主键类型(默认)IdType.NONE /** * 用户输入ID * <p>该类型可以通过自己注册自动填充插件进行填充</p> */IdType.INPUT/* 以

2022-04-21 10:23:45 4003

原创 JDK内置工具

java 用来运行 class 字节码文件javah 生成 c /c++ 头文件javap 用来反编译字节码文件jconsole 带界面的 java 性能分析工具jhat 是 java 堆分析工具jinfo 用来查看 / 动态修改 jvm 参数的工具jmap 查看 jvm 的堆转储信息jps 查看 java 进程启动参数jstack 查看 java 进程的堆栈信息jstat 查看 java 进程的 gc 统计信息jvisualvm 比 jconsole 更强大的可视化 java 分析工.

2022-04-21 10:15:08 728

原创 Springboot与mybatis-plus的整合(增删改查+自定义Wrapper)

MyBatisPlus概述MyBatis、Spring、SpringMVC就可以学习这个了!为什么要学习它呢?MyBatisPlus可以节省我们大量工作时间,所有的CRUD代码它都可以自动化完成!简介是什么? MyBatis 本来就是简化 JDBC 操作的!官网:mybatis-plus官网 MyBatis Plus,简化 MyBatis !特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作, B

2022-04-21 09:35:15 1429

原创 职场法则-高效沟通

高效沟通在职场上,我们能遇到向上沟通,平行沟通,向下沟通,这其中的沟通就显得尤为重要,这是我学习过程中一个同事写的,我拿来做笔记记录下来,保持一个高效的沟通,才能在职场上走得更远。1、何为沟通?沟通就是无论用任何的方式交换(有传递、有反馈)信息的过程。著名的双50%理论在工作中有50%以上的时间都用在了沟通上。如开会、谈判、指示、评估。可是,工作中的50%以上的障碍都是在沟通中产生的。沟通的本质是价值的交换2、沟通的类别传递方式语言沟通语言沟通是指用语言符号进行的信息交流,包括

2022-04-19 11:58:45 861

原创 JAVA程序员工作常用英语

A. array数组accessible 可存取的  area面积audio 音频   addition  加法  action 行动  arithmetic 算法adjustment 调整  actual 真实的    argument 参量ascent 提升  already 已经  AWT(Abstract Window Toolkit)抽象窗口工具  API(Applic

2022-04-17 16:36:07 95

原创 Java学习小知识点学习

1、jconsloe详解:从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。来监控 Java 应用程序性能和跟踪 Java 中的代码。JVisualVM(JVM性能监测工具):Java版本在1.8及1.8版本以下,JDK已经自带这个工具,jvisualvm是JDK提供的一个JVM运行监控工具,可用于查看dump文件,CPU及内存的占用情况,GC垃圾回收情况等信息,插件需要翻墙2、基本数据类型和数据常量池:

2022-04-16 15:48:17 723

原创 Java小测验知识点总结

好久没有做知识总结了,以前也喜欢写博客 ,也该拾起来了,不断学习,终身学习,才能走的更远,加油1、volatile关键字的理解(理解记忆):被volatile修饰的共享变量,就具有了以下两点特性:1.保证了不同线程对该变量操作的内存可见性2.禁止指令重排序2、Java创建对象的几种方式(记忆):(1) 用new语句创建对象,这是最常见的创建对象的方法。(2) 运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstanc

2022-04-14 13:06:40 767

原创 微信小程序 POST 取不到值的原因及解决办法

真的是困扰了我很长时间,找来找去,一直取不到值,控制台报错,总结一下当你写成这样的时候wx.request({ method: 'post', url: app.globalData.serverIp + '/app/family/apply/familyManage', header: { 'content-type': 'application/x-www-form-urlencoded' },原来默认的 content-type

2021-12-01 17:40:45 1362

原创 Callable、辅助类(CountDownLatch、CyclicBarrier、Semaphore)(多线程进阶=>JUC并发编程六)

Callable ( 简单 ) 1、可以有返回值 2、可以抛出异常 3、方法不同,run()/ call() 代码测试/** * 1、探究原理 * 2、觉自己会用 */public class CallableTest { public static void main(String[] args) throws ExecutionException, InterruptedException { // new ...

2021-11-16 17:19:19 119

原创 集合类不安全现象(多线程进阶=>JUC并发编程五)

List 不安全(主要说CopyOnWriteArrayList)ArrayList在单线程的情况下是安全的,在多线程的时候就会出现异常并发修改异常!在这里,首先想到的就是Vector,可以解决问题,但是同步修饰效率太低,于是有了后面第二第三的方法// java.util.ConcurrentModificationException 并发修改异常!public class ListTest { public static void main(String[] args) {

2021-11-14 16:29:37 329

原创 8锁现象(多线程进阶=>JUC并发编程四)

如何判断锁的是谁!永远的知道什么锁,锁到底锁的是谁!深刻理解我们的锁/** * 8锁,就是关于锁的8个问题 * 1、标准情况下,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 * 1、sendSms延迟4秒,两个线程先打印 发短信还是 打电话? 1/发短信 2/打电话 */public class Test1 { public static void main(String[] args) { Phone phone = new Phone();

2021-11-12 17:31:14 634

原创 生产者和消费者问题(多线程进阶=>JUC并发编程三)

生产者和消费者问题 Synchronized 版/** * 线程之间的通信问题:生产者和消费者问题! 等待唤醒,通知唤醒 * 线程交替执行 A B 操作同一个变量 num = 0 * A num+1 * B num-1 */public class A { public static void main(String[] args) { Data data = new Data(); new Thread(()->{

2021-11-12 14:21:45 454

原创 Synchronized和Lock区别(多线程进阶=>JUC并发编程二)

传统 Synchronized/** * 真正的多线程开发,公司中的开发,降低耦合性 * 线程就是一个单独的资源类,没有任何附属的操作! * 1、 属性、方法 */public class SaleTicketDemo01 { public static void main(String[] args) { // 并发:多线程操作同一个资源类, 把资源类丢入线程 Ticket ticket = new Ticket(); // @Func

2021-11-11 17:46:49 555

原创 JAVA JUC初识(多线程进阶=>JUC并发编程一)

1、什么是JUC源码 + 官方文档 面试高频问!java.util 工具包、包、分类这里jdk1.8_API中文帮助文档放在这里了链接:jdk1.8_API中文帮助文档百度网盘地址提取码:om7h业务:普通的线程代码 ThreadRunnable 没有返回值、效率相比入 Callable 相对较低!2、线程和进程线程、进程,如果不能使用一句话说出来的技术,不扎实!进程:一个程序,QQ.exe Music.exe 程序的集合;一个进程往往可以包含多个线程,至少包含一个!Java默认有

2021-11-11 16:49:22 934

转载 JAVA设计模式之单例模式

本文介绍23种设计模式系列之单例模式。概念:  java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。  单例模式有以下特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算

2021-11-11 15:23:39 692

原创 volatile关键字简单理解

volatile 通常被比喻成"轻量级的 synchronized ",也是Java并发编程中比较重要的一个关键字。和 synchronized 不同, volatile 是一个变量修饰符,只能用来修饰变量。无法修饰方法及代码 块等。被volatile修饰的共享变量,就具有了以下两点特性:1.保证了不同线程对该变量操作的内存可见性2.禁止指令重排序可见性:可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到 修改的值。public ..

2021-10-28 10:06:21 2416

原创 Dubbo原理和面试问题

今天来说一说dubbo的原理,首先我们要知道dubbo到底是什么,都能提供些什么服务?一、dubbo是什么?dubbo是⼀个分布式服务框架,提供⾼性能和透明化的RPC远程服务调⽤⽅案,以及SOA服务治理方案。说白了其实dubbo就是一个远程调用的分布式框架。二、dubbo的核心服务是什么?1.远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。2.集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容

2021-10-28 09:18:13 2807

原创 kafka和RabbitMQ总结

现在常用的MQ组件有ActiveMQ、RabbitMQ、RocketMQ、ZeroMQ、MetaMQ,这里主要介绍RabbitMQ。一、MQ特点1、先进先出不能先进先出,都不能说是队列了。消息队列的顺序在入队的时候就基本已经确定了,一般是不需人工干预的。而且,最重要的是,数据是只有一条数据在使用中。 这也是MQ在诸多场景被使用的原因。2、发布订阅发布订阅是一种很高效的处理方式,如果不发生阻塞,基本可以当做是同步操作。这种处理方式能非常有效的提升服务器利用率,这样的应用场景非常广泛。3、持久化持

2021-10-27 09:54:16 3023

原创 synchronized和Lock的区别

区别:1、lock是一个接口,而synchronized是java的一个关键字。2、synchronized在发生异常时会自动释放占有的锁,因此不会出现死锁;而lock发生异常时,不会主动释放占有的锁,必须手动来释放锁,可能引起死锁的发生。在分布式开发中,锁是线程控制的重要途径。Java为此也提供了2种锁机制,synchronized和lock。synchronized和lock的区别区别如下:来源: lock是一个接口,而synchronized是java的一个关键字,synchronize

2021-10-25 16:37:01 3318

原创 分布式系统全局唯一ID的几种实现方式

说起这个全局唯一ID,你可能会第一时间想到“数据库的自增主键”、“UUID”、“雪花算法”等等,更有甚者,还能说出一些大厂开源的组件,比如滴滴的IDWorker、美团的Leaf等等,没错,这些确实是可以实现全局唯一ID的方案,你能想到这些点,那涉猎其实还是挺广的。话不多说,直接进入正题,先贴张思维导图吧,总结性地概括下目前网上比较流行的几种方式1、 数据库的自增主键简介:这一点相信写过代码的小伙伴都晓得,主要利用主键ID的auo_increment特性,每进来一条数据时数据库自动为其生成当前最大的I

2021-10-25 16:08:05 2600

原创 Encoded password does not look like BCrypt最新异常处理

报错信息:控制台报错信息原由:spirng boot 1.5.* 升级到spring boot 2.0.*,当再次访问授权服务器时出现Encoded password does not look like BCrypt异常分析:断点跟踪,发现是密码格式不匹配导致的。解决方案:原先new InMemoryUserDetailsManager(User.withUsername("admin").password("admin").authorities("mobile", "salary")

2021-10-22 17:27:13 3425

原创 Springboot集成Elasticsearch

1.首先创建项目,主要是在创建项目时勾选es选项2.在修改pom工程的时候,需要自己手动配置本机的es对应的版本信息(防止出现版本错误,这里我用的是7.6.1版本)3.编写es的配置文件@Configurationpublic class ElasticSearchClientConfig { @Bean public RestHighLevelClient restHighLevelClient(){ RestHighLevelClient cl..

2021-10-15 14:25:06 2829

原创 Fatal error: Port 9100 is already in use by another process. npm ERR! code ELIFECYCLE

使用 npm run start 的时候报错解决(端口被占用):1.进入Gruntfile.js2.修改默认端口号(默认为9100) connect: { server: { options: { port: 9120, base: '.', keepalive: true ...

2021-10-14 13:55:54 3658 2

原创 es跨域问题

修改ElasticSearch配置文件,config下:ElasticSearch.yml在最后面加两行代码http.cors.enabled: truehttp.cors.allow-origin: "*"此步骤可以允许ElasticSearch跨域,用于连接ElasticSearch-head跨域失败的问题,注意空格。...

2021-10-14 13:41:47 3206

空空如也

空空如也

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

TA关注的人

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