
Java
文章平均质量分 76
Add小兵
先生愿教吾不愿学也,时也,命也
展开
-
【金三银四系列】Spring面试题-下(2023版)
Controller,@Service,@Repository 这些日常开发中常用的注解没啥挑战,@Import注解会让面试官眼前一亮。@Import注解本身的由来是在Spring3.0的时候由xml文件的方式向注解编程的发展,替换以前在配置文件中的/标签,也就是可以导入其他的配置类,然后@Import注解还扩展了对应的功能静态注入:可以直接把对应的类型注入到容器中:@Import(User.class)原创 2023-02-24 13:10:01 · 650 阅读 · 2 评论 -
【金三银四系列】Spring面试题-上(2023版)
Controller @Service @RestController @RequestBody,@Index @Import等@Index提升 @ComponentScan的效率@Import注解是import标签的替换,在SpringBoot的自动装配中非常重要,也是EnableXXX的前置基础。看下图上图是循环依赖的三种情况,虽然方式有点不一样,但是循环依赖的本质是一样的,就你的完整创建要依赖与我,我的完整创建也依赖于你。相互依赖从而没法完整创建造成失败。原创 2023-02-10 12:45:00 · 544 阅读 · 0 评论 -
【金三银四系列】之设计模式专题-下(2023版)
1.首先谈设计模式的作用:经验的传承,提高了软件复用的水平,最终达到提高软件开发效率2.设计模式的分类3.创建型模式:都是用来帮助我们创建对象的!4.结构性模式:关注对象和类的组织5.行为型模式:关注系统中对象之间的相互交换,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11中模式。原创 2023-02-08 14:05:08 · 489 阅读 · 0 评论 -
【金三银四系列】之设计模式专题-上(2023版)
1.首先谈设计模式的作用:经验的传承,提高了软件复用的水平,最终达到提高软件开发效率2.设计模式的分类3.创建型模式:都是用来帮助我们创建对象的!4.结构性模式:关注对象和类的组织5.行为型模式:关注系统中对象之间的相互交换,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11中模式。原创 2023-02-07 10:39:01 · 475 阅读 · 0 评论 -
【金三银四系列】之HR面试问题(2023版)
4:我觉得你的目标薪资太高,不符合岗位的预期,你考虑过降低薪资标准吗?7:这个岗位需要(1-3)3-6个月的出差周期,你怎么考虑?2:你觉得你哪方面能够让我们选择你?13: 你为什么会选择我们公司?18:你还有什么想问的?9:你为什么从上一家公司离职?12:你觉得让你选择这份工作最重要的原因是什么?5:你是哪里人,你住哪里?你觉得你不太稳定吗?1:你了解过我们公司吗?3:如果让你进入其他开发岗位,你考虑吗?10:你想要和什么样的领导共事?16:你计划在公司工作多久?8:聊聊你的职业发展规划?原创 2023-02-01 13:56:41 · 423 阅读 · 0 评论 -
【金三银四系列】之MySql面试突击(2023版)
缓存表数据与索引数据,把磁盘上的数据加载到缓冲池,避免每次访问都进行磁盘IO,起到加速访问的作用。原创 2023-01-31 10:17:20 · 548 阅读 · 0 评论 -
【金三银四系列】之Java基础面试(2023版)
1: 简单说说Java中对象如何拷贝?2: 伪代码快速实现一下深拷贝3: Java是什么类型的语言?GraalVM 即时编译 graal aot jit c1 c24: 什么是Object,有哪些常用的方法,怎么创建对象?5: 多态,面向接口编程?聊聊你的认知6: 什么是内部类,说说你对他的理解以及实战场景7: 说说 static 和 final 在Java中的意义8: Java中的基本数据类型占多少字节,不同的操作系统一样吗?以及String常用的方法。原创 2023-01-30 13:35:59 · 541 阅读 · 0 评论 -
Lambda表达式从入门到玩嗨儿~
注意:请暂时忘记对传统IO流的固有印象!**整体来看,流式思想类似于工厂车间的“**生产流水线”。当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步骤 方案,然后再按照方案去执行它。这是一种集合元素的处理方案,而方案就是一种“函数模型”。这里的都是在对函数模型进行操作,集合元素并没有真正被处理。只有当终结方法 count执行的时候,整个模型才会按照指定策略执行操作。而这得益于Lambda的延迟执行特性。原创 2022-11-04 16:27:43 · 438 阅读 · 0 评论 -
Go语言与Java语言对比
宏观看Go与Java的差异 接着,我们来看一下Go语言与Java的差异之处:``` *.无虚拟机,不跨平台(这里的平台指操作系统)(可以运行多个平台,每个平台打不同的二进制程序包),需要打包编译成对应服务器操作系统版本(windows/linux)的可执行程序(比如windows是exe)。(注:说go跨平台的是指32位和64位相同操作系统之间的跨平台) *.因为Go程序直接打包成操作系统可执行的文件,没有虚拟机在中间转换的一层,所以理论上执行效率会更高(理论上更高,实际情况需具原创 2022-10-21 15:25:18 · 6417 阅读 · 3 评论 -
ThreadLocal内存泄漏是什么,怎么解决
实线代表强引用,虚线代表弱引用每一个Thread维护一个ThreadLocalMap, key为使用弱引用的ThreadLocal实例,value为线程变量的副本。强引用,使用最普遍的引用,一个对象具有强引用,不会被垃圾回收器回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。如果想取消强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样可以使JVM在合适的时间就会回收该对象。弱引用,JVM进行垃圾回收时,无论内存是否充足,都会回收原创 2022-06-23 13:43:43 · 124 阅读 · 0 评论 -
分布式任务调度与计算框架:PowerJob 报警配置(邮件、WebHook、钉钉、自定义)06
报警配置(邮件、WebHook、钉钉、自定义)邮件报警STEP1: 初始化在 powerjob-server 中初始化邮件配置,具体教程可以搜索 SpringBoot 邮件配置。STEP2: 配置报警信息在控制台登陆界面(点击右上角 Setting - 退出 即可前往控制台登陆界面)点击 报警用户录入录入报警用户信息在任务中配置报警接收人。WebHookSTEP1: 创建特殊角色 SYSTEM_WEBHOOKSTEP2: 开发接收 webhook 的服务端powerjob-s原创 2022-04-25 10:48:03 · 2250 阅读 · 3 评论 -
分布式任务调度与计算框架:PowerJob 工作流 05
PowerJob 工作流什么是工作流?工作流描述了任务与任务之间的依赖关系,比如我现在有 A、B、C、D 四个任务,我希望 A 任务运行完毕后才开始运行 B、C 任务,最后再运行 D 任务。这就形成了一个依赖关系,可以通过有向无环图(DAG)来描述这个关系,如下图所示。主界面直观地展示当前系统所管理的所有工作流信息,并提供相应的运维方法。新增工作流[详细视频教程] PowerJob工作流原创 2022-04-21 17:42:01 · 2973 阅读 · 0 评论 -
分布式任务调度与计算框架:PowerJob 高级特性-OpenAPI 04
OpenAPI**OpenAPI 允许开发者通过接口来完成手工的操作,让系统整体变得更加灵活。开发者可以基于 API 便捷地扩展PowerJob 原有的功能,比如,**全面定制自己的任务调度策略。换句话说,通过 OpenAPI,可以让接入方自己实现 PowerJob 的整个任务管理与调度模块。依赖最新依赖版本请参考 Maven 中央仓库:推荐地址<dependency> <groupId>tech.powerjob</groupId> <artif原创 2022-04-20 17:14:06 · 2218 阅读 · 0 评论 -
分布式任务调度与计算框架:PowerJob 高级特性-容器 03
容器什么是容器介绍PowerJob 的容器技术允许开发者开发独立于 Worker 项目之外 Java 处理器,简单来说,就是以 Maven 工程项目的维度去组织一堆 Java 文件(开发者开发的众多脚本处理器),进而兼具开发效率和可维护性。该容器为 JVM 级容器,而不是操作系统级容器(Docker)。用途介绍比如,突然出现了某个数据库数据清理任务,与主业务无关,写进原本的项目工程中不太优雅,这时候就可以单独创建一个用于数据操作的容器,在里面完成处理器的开发,通过 PowerJob 的容器部署原创 2022-04-19 17:30:57 · 2214 阅读 · 0 评论 -
分布式任务调度与计算框架:PowerJob 快速开始(本地IDE版) 02
快速开始(本地IDE版)上一篇文章:分布式任务调度与计算框架:PowerJob 简介 01PowerJob 的设计目标为企业级的分布式任务调度平台,即成为公司内部的调度中间件。整个公司统一部署调度中心 powerjob-server,旗下所有业务线应用只需要依赖 powerjob-worker 即可接入获取任务调度与分布式计算能力,通过不同的 appName 相互隔离。因此,PowerJob 由调度服务器(powerjob-server)和执行器(powerjob-worker)两部分组成,power原创 2022-04-18 14:27:15 · 1983 阅读 · 0 评论 -
分布式任务调度与计算框架:PowerJob 简介 01
PowerJob简介产品特性PowerJob是全新一代分布式任务调度与计算框架,其主要功能如下:使用简单:提供前端Web界面,允许开发者可视化地完成调度任务的管理(增、删、改、查)、任务运行状态监控和运行日志查看等功能。定时策略完善:支持 CRON 表达式、固定频率、固定延迟和API四种定时调度策略。执行模式丰富:支持单机、广播、Map、MapReduce 四种执行模式,其中 Map/MapReduce 处理器能使开发者寥寥数行代码便获得集群分布式计算的能力。工作流支持:支持在线配置任务依赖关原创 2022-04-14 16:07:30 · 2158 阅读 · 0 评论 -
Nacos集群配置
Nacos集群配置更改Nacos启动命令配置原理 我们现在知道,想要启动Naocs只需要启动startup.sh命令即可,但是如果启动3个Nacos那?所以如果我们需要启动多个Nacos,就需要自行修改startup命令。具体配置Linux服务器上MySql数据库配置在Linux系统上执行SQL脚本,具体位置在nacos目录下的conf中,这里的操作和之前是一样的,我们可以直接打开这个文件然后拷贝到数据库中执行,当然也是要创建数据库使用数据库然后在复制脚本内容,执行即可create da原创 2022-03-29 10:41:42 · 4264 阅读 · 0 评论 -
Nacos持久化切换配置
Nacos持久化切换配置Nacos持久化配置 Nacos默认自带嵌入式数据库derby,所以我们每次创建一个Nacos实例就会有一个derby,当有多个Nacos节点的时候,就会出现一致性问题,所以Nacos支持了外部数据库统一数据管理MySql。Nacos默认derby切换MySql具体配置方式可以参考官网:https://nacos.io/zh-cn/docs/deployment.html我们需要找到Nacos安装目录下的conf目录中的Sql脚本,然后在数据库中进行执行注意:需要原创 2022-03-15 22:49:18 · 125 阅读 · 0 评论 -
Nacos之Linux版本安装
Linux版Nacos+MySql生产环境配置 在之前的博客中已经说明Nacos生产环境下需要搭建集群配置,那么这里我们预计需要:1个Nginx+3个Nacos注册中心+1个MySql具体配置:在官网上下载NacosLinux版本:https://github.com/alibaba/nacos/releases在Linux系统中解压此文件,并且把其中nacos目录拷贝到nacos目录中tar -zxvf nacos-server-2.0.3.tar.gz打开nacos目录下的原创 2022-02-17 14:03:45 · 2577 阅读 · 0 评论 -
Nacos持久化切换配置
Nacos持久化配置 Nacos默认自带嵌入式数据库derby,所以我们每次创建一个Nacos实例就会有一个derby,当有多个Nacos节点的时候,就会出现一致性问题,所以Nacos支持了外部数据库统一数据管理MySql。Nacos默认derby切换MySql具体配置方式可以参考官网:https://nacos.io/zh-cn/docs/deployment.html我们需要找到Nacos安装目录下的conf目录中的Sql脚本,然后在数据库中进行执行注意:需要我们先创建好数据库并且使用原创 2022-02-07 17:50:31 · 1203 阅读 · 0 评论 -
Nacos集群架构
Nacos集群架构说明 到目前为止,我们已经对Nacos的一些基本使用和配置已经掌握,但是这些还不够,我们还需要了解一个非常重要的点,就是Nacos的集群相关的操作,那我们就先从Nacos集群配置的概念说起Nacos支持三种部署模式单机模式 - 用于测试和单机试用集群模式 - 用于生产环境,确保高可用多集群模式 - 用于多数据中心场景集群部署说明参考网站:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html架构图:部署生产使原创 2022-01-27 17:26:36 · 1431 阅读 · 0 评论 -
Nacos命名空间分组和DataID三者关系
Nacos命名空间分组和DataID三者关系名词解释命名空间(Namespace) 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。配置分组(Group) Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在原创 2022-01-26 11:50:22 · 1764 阅读 · 0 评论 -
Nacos之服务配置中心
Nacos之服务配置中心基础配置Nacos不仅仅可以作为注册中心来使用,同时它支持作为配置中心首先我们还是新建Model:cloudalibaba-config-3377pom文件 这里我们主要要引入的是此依赖,这个依赖依据在官网上可以找到:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_an_example_of_using_nacos_discove原创 2022-01-24 15:08:09 · 526 阅读 · 0 评论 -
Nacos服务注册中心对比提升
Nacos服务注册中心对比提升各种服务注册中心对比服务注册与发现框架CAP模型控制台管理社区活跃度EurekaAP支持低(2.x版本闭源)ZookeeperCP不支持中ConsulCP支持高NacosAP/CP支持高CAP模型 计算机专家 埃里克·布鲁尔(Eric Brewer)于 2000 年在 ACM 分布式计算机原理专题讨论会(简称:PODC)中提出的分布式系统设计要考虑的三个核心要素: 一致性(Consistenc原创 2022-01-23 13:38:10 · 1810 阅读 · 0 评论 -
Nacos服务消费者注册和负载均衡
Nacos服务消费者注册和负载均衡服务消费者 上节课我们成功配置了Nacos服务提供者的注册,那么这节课我们将配置服务消费者,同时来验证Nacos自带负载均衡。具体配置新建Modulepom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2022-01-21 17:52:37 · 944 阅读 · 0 评论 -
Nacos服务提供者注册
Nacos服务提供者注册Nacos代替Eureka Nacos可以直接提供注册中心(Eureka)+配置中心(Config),所以它的好处显而易见,我们在上节课成功安装和启动了Nacos以后就可以发现Nacos本身就是一个小平台,它要比之前的Eureka更加方便,不需要我们在自己做配置。Nacos服务注册中心 服务发现是微服务架构中的关键组件之一。在这样的架构中,手动为每个客户端配置服务列表可能是一项艰巨的任务,并且使得动态扩展极其困难。Nacos Discovery 帮助您自动将您的服务注册到原创 2022-01-20 17:45:18 · 598 阅读 · 0 评论 -
Spring Cloud Alibaba Nacos下载和安装
Spring Cloud Alibaba Nacos下载和安装Nacos介绍 Nacos(Naming Configuration Service) 是一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生应用程序 服务发现是微服务架构中的关键组件之一。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服原创 2022-01-18 09:16:46 · 560 阅读 · 0 评论 -
用大写的字段接受最终首字母却变小写
项目场景:在前后端分离的时候,我们写了一个查询接口,用Mybatis进行查询,并将数据用我们的实体类接受,然后转换成JSON格式返回给前端,我们期望的是字段全部大写返回,但一些字段出现了首字母小写的问题问题描述:我们用Mybatis查询数据,然后拿一个实体类/respond类接受,并且字段全部为大写,但是最终打印出来的JSON字符串,大写的字段首字母会变成小写,{ "nAME":"张三", "aGE":"18"}但我们期望的数据是:{ "NAME":"张三",原创 2022-01-11 15:06:12 · 1395 阅读 · 1 评论 -
再见了Postman,有一说一:Apifox才是YYDS
作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的非常出色。但是在整个软件开发过程中,API 调试只是其中的一部分,还有很多事情 Postman 无法完成,或者无法高效完成,比如:API 文档定义、API Mock、API 自动化测试等等。Apifox 就是为了解决这个问题而生的。一、 接口现状:使用 Swagger 管理 API 文档使用 Postman 调试 API使用 RAP 等工具 Mock API 数据使用 JMeter 做 API 自动化测试.原创 2022-01-11 09:22:49 · 395 阅读 · 0 评论 -
送给所有程序员的新年祝福&新年愿望
凛冬散尽,星河长明,新的一年,万事顺遂。new Thread() { int money = 2; @Override @SneakyThrows public void run() { while (true) { sleep(1000);.原创 2022-01-06 10:03:08 · 1257 阅读 · 1 评论 -
ParseException Unparseable date 时间转换异常
问题描述:时间格式转换时候,正常的时间格式应该是" 2021-01-01 “这样子,但是我们现在的数据格式是这样” Sat Jun 10 00:00:00 CST 2000 "报错信息:所以会报出这种错误:解决办法:第一种: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); df.format(new Date(指定转换的字段));//注意:是String类型第二种:我们在这个字段上设置好格式: @JSONFi原创 2022-01-05 10:01:52 · 5541 阅读 · 2 评论 -
Java18都要来了,你不会还在用Java8吧?
JDK公告页 : https://openjdk.java.net/projects/jdk/18/ Java 开发工具包 (JDK) 18 将于 2022 年 3 月 22 日发布。新版本的标准 Java 将有九个新特性,该特性集已于 12 月 9 日冻结,进入 Rampdown 第一阶段。不过值得注意的是:JDK 17 是一个长期支持 (LTS) 版本,将获得 Oracle 至少八年的支持,但 JDK 18 将是一个短期功能版本,只支持六个月。可以在 java.net(http原创 2021-12-29 16:38:28 · 334 阅读 · 2 评论 -
Windows安装搭建JDK12
JDK12的安装搭建一、JDK下载 1、JDK官网下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html 2、选择:“Accept License Agreement”3、下载的文件:jdk-12.0.1_windows-x64_bin.exe[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iP1oaoZd-16400512514原创 2021-12-21 09:52:12 · 277 阅读 · 0 评论 -
Java接口和类
接口接口不可以被实例化实现类必须实现接口的所有方法实现类可以实现多个接口接口中的变量都是静态变量类只能继承一个父类,但是可以实现多个接口定义接口的语法public interface 接口名{}子接口也能继承父接口,接口的继承可以使多继承public interface 接口 extends 父接口1,父接口2,.....{}接口和类比较优点有可以被多继承设计和实现完全分离更自然的使用多态更容易搭建程序框架更容易更换实现...原创 2021-12-10 16:56:02 · 390 阅读 · 0 评论 -
线程在实际项目中的应用
线程在项目中的应用1. 发短信发短信的场景有很多,比如手机号+验证码登录注册,电影票买完之后会发送取票码,发货之后会有物流信息,支付之后银行发的付款信息,电力系统的电费预警信息等等。在这些业务场景中,有一个特征,主业务和短信业务可以割裂。比如手机号+验证码登录,当我们点击获取验证码的时候,会连接短信业务平台发短信,但是发短信这个业务受短信平台的影响,可能会有一定的延时,我们不一定非要等短信平台返回之后,在给用户返回。我们可以先返回获取验证码成功,将发短信的业务放入另一个线程中执行,用户晚一会收到短原创 2021-11-29 08:56:15 · 1062 阅读 · 0 评论 -
程序员必会的计算机知识
计算机知识前言计算机知识是编程入门的必备知识,只有了解了计算机相关的知识,才会明白程序背后的原理,才能更深刻的理解编程目录说明冯·诺伊曼体系冯·诺伊曼,计算机之父,现今所有的计算机都是建立在冯诺伊曼体系之上CPU计算机的大脑,也是实际的工作者,计算机所有的行为都需要依靠CPU来运行以及控制内存管理内存很快,磁盘访问很慢,计算机运行速度快和内存脱不了关系,内存往往作为CPU和其他设备之间交互的中转站进程管理当运行一个程序,进程启动了文件管理将数据存储到磁盘上,永久原创 2021-11-26 17:36:10 · 2455 阅读 · 2 评论 -
使用Java实现定时任务
一、定时任务是什么?定时任务在实际的开发中是特别常见的,每天的凌晨公司会进行数据备份和汇总,这些步骤总不能让我们运维每天凌晨去手动备份吧,所以就写一个定时任务让机器每天定时去执行二、实现方式(一):使用JDK自带的Timer来实现定时任务代码如下(示例):import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * JDK自带的定时任务 */public class MyTimerTask原创 2021-10-14 14:59:21 · 1452 阅读 · 0 评论 -
深入了解Alibaba Nacos
Nacos**提示:蓝色字体均为超链接**微服务环境搭建点击–>微服务环境搭建微服务介绍博客点击–>微服务介绍Spring Cloud快速入门博客点击–>Spring Cloud快速入门服务治理# 2. Nacos简介https://nacos.io/zh-cn/Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务原创 2021-10-08 11:30:10 · 1023 阅读 · 0 评论 -
Spring Cloud快速了解并入门
学习SpringCloud前提要景:1.JavaSE ->掌握2. 数据库 ->掌握3. 前端 ->熟练4. Servlet ->掌握5. Http ->了解6. MyBatis *(重点)7. Spring8. SpringMVC9. SpringBoot ->熟练使用springboot进行开发10. 分布式基础,Dubbo,Zookeeper ->了解即可11. Maven,Git ->掌握12. Ajax,Json原创 2021-09-16 20:00:26 · 322 阅读 · 0 评论