自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【无标题】

*两个list集合的交集、并集、差集1:removeAll的源码2:contains的源码:当对象o不为空时,迭代判断⽤到了Object的equals⽅法,⽽Object的equals⽅法指的是两个对象的引⽤是否相等,如果我们要判断两个对象的内容相等,这⾥就需要重写equals⽅法。JDK1.8 lambda表达式取交集、并集、差集(String类型,已重写了equals下⾯这个是遇到的⼀个问题...

2022-06-21 17:33:34 106

原创 Leamda表达式的使用

List集合中对对象中的某个属性进行分组、过滤或去重操作1、根据courseList对象中的userId属性进行分组查询 Map<String, List<Course>> collect = courseList.stream().collect(Collectors.groupingBy(Course::getUserId));2、根据courseList对象中的userId属性进行分组查询并对score属性进行汇总Map<String, Double> c

2022-05-17 16:54:36 172

原创 【无标题】

实现 Java 本地缓存,该从这几点开始缓存,我相信大家对它一定不陌生,在项目中,缓存肯定是必不可少的。市面上有非常多的缓存工具,比如 Redis、Guava Cache 或者 EHcache。对于这些工具,我想大家肯定都非常熟悉,所以今天我们不聊它们,我们来聊一聊如何实现本地缓存。参考上面几种工具,要实现一个较好的本地缓存,平头哥认为要从以下三个方面开始。1、存储集合的选择实现本地缓存,存储容器肯定是 key/value 形式的数据结构,在 Java 中,也就是我们常用的 Map 集合。Map 中有

2022-04-12 17:57:59 99

原创 java为什么要面向接口编程

洞悉编程思想是我们学习语言过程中的必由之路,但注意对于编程思想的理解一定要建立在大量的代码实现经验上,不然只是在口头空谈编程思想而不去编程,根本无法深入理解思想的核心。面向对象思想的核心之一,就是模拟真实世界,把真实世界中的事物抽象成类,整个程序靠各个类的实例互相通信、互相协作完成系统功能,这非常符合真实世界的运行状况,也是面向对象思想的精髓。例如:接口是一组规则的集合,它规定了实现本接口的类或接口必须拥有的一组规则。在自然界的体现就是“如果你是……则必须能……”的理念。面向接口编程高内聚低耦合设

2021-10-29 17:08:37 812

原创 Spring启动过程+三级缓存+循环依赖详解

Spring的三级缓存Springboot版本:2.3.2寻找bean加载位置下面我们找一下bean加载的位置注意找到的不是所有bean加载的位置,有一些bean在这一步之前就加载好了,比如系统、Spring需要先加载的bean,我们找的是其他大部分bean的加载位置(@Controller、@Service等注解的bean)从启动类出发,中间会跳过一些方法或接口,见到方法点进去就完事儿了走到doGetBean方法,下面就有很多逻辑都可以看,下面这个表格不是递进的顺序,是doGetBean方

2021-09-09 20:16:14 817 1

原创 anyMatch和allMatch以及noneMatch的区别

boolean anyMatch(Predicate<? super T> predicate)只要有一个条件满足即返回trueboolean allMatch(Predicate<? super T> predicate)必须全部都满足才会返回trueboolean noneMatch(Predicate<? super T> predicate)全都不满足才会返回true二.demo演示:目的: 过滤集合中的元素,过滤条件是一个集合中的多个元素1.创建

2021-09-09 17:16:22 306

原创 Windows上Kafka运行环境安装

安装JDK1.1 安装文件:http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK1.2 安装完成后需要添加以下的环境变量(右键点击“我的电脑” -> “高级系统设置” -> “环境变量” ):JAVA_HOME: C:\Program Files\Java\jdk1.8.0_171 (jdk的安装路径)Path: 在现有的值后面添加"; %JAVA_HOME%\bin"1.3 打开cmd.

2021-09-08 20:28:23 84

原创 常见的异常捕捉,可以定位异常类型,做出对应的补偿机制

1. throw 和 throws 的区别?throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。而throw则是指抛出的一个具体的异常类型。2. final、finally、finalize 有什么区别?final可以修饰类、变量、方法,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定

2021-09-03 19:56:03 129

原创 ArrayList<>和String[]之间的转换

数组转换集合//数组转list String[] str=new String[] {"hello","world"}; //方式一:使用for循环把数组元素加进list List<String> list=new ArrayList<String>(); for (String string : str) { list.add(string); } System.out.println(list); //方式二: List<String> li

2021-08-30 20:00:24 1570

原创 实体对象当中注解之间的相互关系

@EqualsAndHashCode原文中提到的大致有以下几点:1. 此注解会生成equals(Object other) 和 hashCode()方法。2. 它默认使用非静态,非瞬态的属性3. 可通过参数exclude排除一些属性4. 可通过参数of指定仅使用哪些属性5. 它默认仅使用该类中定义的属性且不调用父类的方法6. 可通过callSuper=true解决上一点问题。让其生成的方法中调用父类的方法。另:@Data相当于@Getter @Setter @RequiredAr

2021-08-27 11:27:10 149

原创 git命令:全局设置用户名邮箱配置

1、查看git配置信息git config --list2、查看git用户名git config user.name3、查看邮箱配置git config user.email4、全局配置用户名git config --global user.name “nameVal”5、全局配置邮箱git config --global user.email “eamil@qq.com”总结需要注意的的是1: ./ssh文件下面的 config配置文件当中的 user2:gitConfig

2021-08-26 19:07:09 578

原创 GitLab配置ssh key

简介: 一、背景   当前很多公司都选择git作为代码版本控制工具,然后自己公司搭建私有的gitlab来管理代码,我们在clone代码的时候可以选择http协议,当然我们亦可以选择ssh协议来拉取代码。但是网上很少找到如何用git客户端生成ssh key,然后配置在gitlab,我当时在做的时候苦于摸索,后来终于找到了解决方案,那么本文,我们就来聊一聊如何本地git客户端生成ssh key,然后配置在gitlab里,而后使用ssh协议进行提交和拉取git远程仓库的代码。一、背景当前很多公司都选择git作

2021-08-26 17:19:52 82

原创 关于java中的本地缓存-相关实现方式

java中的本地缓存,工作后陆续用到,一直想写,一直无从下手,最近又涉及到这方面的问题了,梳理了一下。自己构造单例、guava、ehcache基本上涵盖了目前的大多数行为了。为什么要有本地缓存?在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。为什么是本地缓存,而不是分布式的集群缓存

2021-08-24 21:25:07 325

原创 RPC框架面试总结-RPC原理及实现

一、什么是RPCRPC是远程调用过程的简写,是一个协议,处于网络通信协议的第五层:会话层,其下就是TCP/IP协议,在建立在其基础上的通信会话协议。RPC定义了交互的模式,而应用程序使用这些模式,来访问其他服务器的方法,并不需要关系具体的网络上的细节。 RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务,

2021-08-24 16:43:09 2221

原创 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”

一、TCP connection客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,http请求是在这个连接的基础上发送的;在一个TCP连接上是可以发送多个http请求的,不同的版本这个模式不一样。在HTTP/1.0中这个TCP连接是在http请求创建的时候同步创建的,http请求发送到服务

2021-07-30 23:56:01 146

原创 公众号开发入门:查询用户是否已经关注公众号?

背景最近,小明在参与app改版时,有一个业务场景是:用户完成指定的任务,判断当前登录用户是否已经关注指定的官方微信公众号,如果关注会获得相应的奖励,为了弥补语言的匮乏,小明偷偷给大家上张图:众所周知,我们程序员第一次接收到之前没做过的需求时,第一步肯定离不开搜查资料(我觉得国内的产品,百度就够用),小明也不例外,花了大概五分钟,一切就了然于胸,由此可见,程序员的搜商很重要 ????。ok,废话少说,翠花,上菜!。必备条件微信公众平台-开发-基本配置-成为开发者,得到 appId 和 appSecr

2021-04-17 17:08:36 1845

原创 H5页面怎么跳转到公众号主页?看过来

前言:做公众号开发的小伙伴,可能会遇到这种需求:在一个H5页面点击一个关注公众号按钮跳转到公众号主页。听到这个需求的一瞬间,疑惑了!这不可能!摸了摸高亮的额头!没办法,做还是要做的开始上解决方案:方案一:自己做一个关注公众号的引导页面,让UI稍微设计一张图片(最好长一点,也不要过大)图片里面要包含公众号的二维码名片。最好要包含以下文字引导:长按扫码关注我们公众号名片二维码的获取方式如下:登录微信公众号后台,找到“设置”>“公众号设置”>“账号详情” 里面有个下载二维码功能,

2021-04-15 10:59:52 3030 2

原创 高效编程之HashMap的entryset和keyset比较

最近看了一点spring的源码,甚是苦涩;对spring稍微有了点整体的认识,但对很多细节的地方还是懵逼啊。。。太多不懂了的,只能慢慢去读,先把简单的不懂的解决;比如beanfactory通过扫描器拿到了注解标记的那些类,都是放到一个hashmap中,然后文件名就是key,文件就是value;首先都会有一个 “map”.entryset的操作;再往下面走的,这个entryset方法我不太明白是啥意思,看了1.6的API,告诉我返回一个set视图,这样的翻译感觉略水…直接告诉我返回set集合不就好了么…废

2021-01-13 11:11:52 224

原创 Lambda表达式详解

Lambda简介#Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。对接口的要求#虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用 Lambda 表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法jdk 8

2020-12-16 18:06:37 155

原创 GraphQL 最佳入门实战

GraphQL 最佳入门实战高性能服务器开发 5天前前言痛点:网上找的资料,文章, GraphQL的官网,一看就是很‘自我’的大神写的(太烂了)完全管读者能不能看懂,举例子只讲用法!不告诉代码怎么实现的(但是当你学完这一篇你就可以看懂了), 并且从来不晒出整体代码,导致根本不知道他们怎么玩的,有被冒犯到!!可以说那些资料都不适合入门。定位:GraphQL并不是必须用的技术, 但它是必须会的技术,之所以说它必会是因为可以靠它为‘前端’这一行业占领更大的‘领地’, 同时它的思想是值得琢磨与体会的。是啥

2020-12-16 18:03:37 412 1

原创 JACKSON报错:java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.exc.InvalidDefinitionExce

一、问题描述错误信息:十二月 31, 2017 1:22:44 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin信息: Initializing Spring FrameworkServlet 'spring-mvc'2017-12-31 13:23:06,382 WARN [springframework.web.context.support.XmlWebApplicationContext] - Exception enco

2020-12-14 21:14:02 290

原创 IDEA : Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA解决办法

我的问题是开着idea,死机了,关机重启。重启之后,重新打开idea无论改什么都会提示Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA而且改完还保存的老慢,而且还会多出个___jb_tmp___后缀的文件,这个后缀的文件消失的时候才能保存修改的数据。最后查idea 日志提示报错java.lang.AssertionError:upexpected content storage modifica

2020-12-14 11:25:50 3659

原创 mapstruct使用详解

我们都知道,随着一个工程的越来越成熟,模块划分会越来越细,其中实体类一般存于 domain 之中,但 domain 工程最好不要被其他工程依赖,所以其他工程想获取实体类数据时就需要在各自工程写 model,自定义 model 可以根据自身业务需要映射相应的实体属性。这样一来,这个映射工程貌似并不简单了。阿森差点就犯难了……回到顶部序所以阿淼今天就要给大家安利一款叫 mapstruct 的插件,它就是专门用来处理 domin 实体类与 model 类的属性映射的,我们只需定义 mapper 接口,map

2020-12-08 21:12:08 457

原创 @Autowired用法详解

@Autowired用法详解@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。在使用@Autowired之前,我们对一个bean配置起属性时,是这用用的<property name="属性名" value=" 属性值"/> 通过这种方式来,配置比较繁琐,而且代码比较多。在Spring 2.5 引入了 @Autowired 注释 下面用案例来具体说明UserRepos

2020-12-08 10:17:11 548

原创 接口回调方式

接口回调方式首先理解回调的含bai义,du回调就是当主程zhi序需要的时候(或dao者到预定义状态值)调用zhuan的接口实现shu类。接口实际上不能被直接调用的,我们凡是能调用的一定不是接口或者抽象类。接口回调的很多应用场景是出现在以接口类型为参数的情况下,以匿名内部类的方式传入而达到。例如,假设有一个Java的API方法叫作:(其中的ClickEvent就是一个接口)public void addEventListener(ClickEvent evt);那么,你在调用的时候就可以这样:ad

2020-12-03 17:21:08 339

空空如也

空空如也

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

TA关注的人

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