Java 基础知识
1. Java 语言有哪些特点
简单易学、有丰富的类库
面向对象(Java 最重要的特性,让程序耦合度更低,内聚性更高)
与平台无关性(JVM 是 Java 跨平台的根本)
可靠安全
支持多线程
2. 面向对象和面向过程的区别
面向过程:是分析解决问题的步骤,然后用按说把这些步骤一步一步的...[2023/5/22]
Javascript 常见的循环方式总结
本文地址: https: www.cnblogs.com/zichliang/p/17412968.html
在Javascript中有很多种循环方式。有多种循环方式可以用来遍历数组、对象、以及执行一些重复性任务
但是有很多方式甚至从未用过,所以简单来总结一下JS中的循环
for循环
fo...[2023/5/19]
Java程序设计复习提纲(上:入门语法)
目录
上:
基本语法与编译运行
数据类型和关键字
常用语法
数组与字符串
异常处理
中:
面向对象和类
下:
图形界面
基本语法与编译运行
java没有指针没有全局变量
Java源代码文件的后缀名是".java"。编译后会生成一个或多个字节码文...[2023/5/19]
Sentinel基本使用与源码分析
系列文章目录和关于我
一丶什么是Sentinel
Sentinel官网
Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
流量整形:限...[2023/5/19]
@GrpcServise 注解的作用和使用@GrpcServise 注解的作用和使用
转载请注明出处:
1. @GrpcServise 的作用和优势
在没有使用 @GrpcServise 注解编写服务端时,我们通常需要自定义 Server 以及端口,包括 start,stop ,注册service 方法等...[2023/5/19]
Springboot通过谷歌Kaptcha 组件,生成图形验证码Springboot通过谷歌Kaptcha 组件,生成图形验证码
图形验证码属于老生常谈了,具体细节这里就不说了。生成图形验证码的办法非常多,今天讲解一种通过Kaptcha组件快速生成图形验证码的方法。 Kaptcha是谷歌开源的一款简单实用的图形验证码组件。我个人推荐它的最大原因是容易上手,采用约定大于配置的方式,快速契合到项目中。 话不多说,我们看看该如何...[2023/5/17]
Java网络编程----通过实现简易聊天工具来聊聊BIO
IO模型即输入输出模型,我们今天主要来聊的是java网络编程中的IO模型---BIO模型。 BIO即阻塞式IO,Blocking IO blocking [?bl?k??] v. 堵塞; 阻塞; 堵住(某人的路等); 挡住(某人的视线等); 妨碍; 阻碍; 那究竟什么是阻塞呢? 这里的阻塞...[2023/5/17]
Spring源码:Bean生命周期(五)
前言
在上一篇文章中,我们深入探讨了 Spring 框架中 Bean 的实例化过程,该过程包括从 Bean 定义中加载当前类、寻找所有实现了 InstantiationAwareBeanPostProce or 接口的类并调用实例化前的方法、进行实例化、调用 applyMergedBeanDef...[2023/5/17]
聊一聊适配器模式
接口不能用?行,我帮你适配
一、概述
适配器模式(Adapter),是23种设计模式中的结构型模式之一;它就像我们电脑上接口不够时,需要用到的拓展坞,起到转接的作用。它可以将新的功能和原先的功能连接起来,使由于需求变动导致不能用的功能,重新利用起来。
上图的Mac上,只有两个type...[2023/5/17]
浅谈SpringBoot实现自动装配的方法原理浅谈SpringBoot实现自动装配的方法原理
目录1. 什么是自动装配2. 自动装配的原理3. 自动装配的步骤4. 自定义自动配置5.代码案例总结 1. 什么是自动装配
在传统的Spring框架中,我们需要手动配置和管理Bean的依赖关系,但在Spring Boot中,大量的配置可以自动完成。这是因为Spring Boot中引入了自动装配的...[2023/5/17]
常用设计模式之.Net示例代码合集
每一次初学者粉丝朋友,在后台向我咨询编程问题,我除了给他们指导学习路线,我都会建议他们学完基础知识后,一定要要注重编程规范,学习设计模式,修炼内功。
虽然说很多程序员,他们日常主要工作是CRUD,但是学习设计模式也是有助于学习公司的框架,另外设计模式是为了可重用代码、让代码更容易被他人理解、保...[2023/5/15]
Spring Boot 配置文件总结
前言
Spring Boot 中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个配置文件去修改 Spring Boot 自动配置的默认值。
Spring Boot 支持两种格式的配置文件:application.properties...[2023/5/15]
SpringBoot源码学习4——SpringBoot内嵌Tomcat启动流程源码分析
系列文章目录和关于我
零丶引入
我在初学spring的时候,很懵逼,因为整个项目中不存在main方法,让我有点摸不着头脑。那时候我知道有个东西叫tomcat是它监听了端口,解析了协议调到了我的servlet。
在我初学SpringBoot的时候,很懵逼,有main方法了,但是tomcat在哪...[2023/5/15]
"树形List"与"扁平List"互转(Java实现)"树形List"与"扁平List"互转(Java实现)
背景:在平时的开发中,我们时常会遇到下列场景
公司的组织架构的数据存储与展示
文件夹层级的数据存储与展示
评论系统中,父评论与诸多子评论的数据存储与展示
......
对于这种有层级的结构化数据,就像是一棵树一样。在关系型数据库中,通常将一个个的节点信息存储到表中,通过一个字段(例如,pi...[2023/5/12]
这个字段我明明传了呀,为什么收不到 - Spring 中首字母小写,第二个字母大写造成的参数问题
问题现象
vSwitchId、uShape、iPhone... 这类字段名,有什么特点?很容易看出来吧,首字母小写,第二个字母大写。它们看起来确实是符合 Java 中对字段所推崇的“小驼峰命名法”,即第一个单词小写,后面的单词首字母大写。但是,如果你在项目中给 POJO 类的字段以这种形式进行命...[2023/5/12]
Java的枚举类型
如果类的对象的数量只有有限个,并且可以确定对象的属性,那么考虑使用枚举类。例如:
性别:Man(男)、Woman(女)
订单状态:Nonpayment(未付款)、Paid(已付款)、Delivered(已发货)、Checked(已确认收货)
定义枚举类型
public enum UserT...[2023/5/12]
SpringBoot定义优雅全局统一Restful API 响应框架四SpringBoot定义优雅全局统一Restful API 响应框架四
如果没有看前面几篇文章请先看前面几篇
SpringBoot定义优雅全局统一Restful API 响应框架
SpringBoot定义优雅全局统一Restful API 响应框架二
SpringBoot定义优雅全局统一Restful API 响应框架三
目前我们好像似乎解决所有问题,达到了...[2023/5/10]
建造者模式(Builder Pattern)
模式动机
建造者模式(Builder Pattern)是最复杂的创建型模式,它用于创建一个包含多个组成部分的复杂对象,可以返回一个完整的产品对象给用户。它通过将客户端与包含多个组成部分的复杂对象的创建过程分离,使得客户端无需知道复杂对象的内部组成部分与装配方式,只需要知道建造者的类型即可。...[2023/5/10]
Java的抽象类 & 接口
抽象类
如果自下而上在类的继承层次结构中上移,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,人们只将它作为派生其他类的基类,而不作为想使用的特定的实例类。例如,考虑一下对 Employee 类层次的扩展。一名雇员是一个人,一名学生也是一个人。下面将 Person 类和...[2023/5/10]
优雅的操作文件:java.nio.file 库介绍
概述
在早期的 Java 版本中,文件 IO 操作功能一直相对较弱,主要存在以下问题:
缺乏对现代文件系统的支持:只提供的基础的文件操作,不支持很多现代的文件系统
API 不够直观:文件操作的 API 设计相对较为复杂和冗长,使用体验感很差
对于大文件处理和并发性能不够:简单的 I/O 模型...[2023/5/10]
关于如何正确地定义Java内部类方法详解
目录一. 内部类简介1. 概念2. 优点3. 分类4. 内部类的特点5. Java类的创建要求二. 成员内部类1. 概念2. 特点3. 语法4. 案例4.1 定义成员内部类4.2 定义测试类5. 访问方式小结6. 关于this的注意事项三. 局部内部类1. 概念2. 特点3. 语法4. 案例4.1 ...[2023/5/10]
JavaScript原生兼容大全-持续更新JavaScript原生兼容大全-持续更新
JavaScript兼容-持续更新
1.c 非行内样式操作
currentStyle用于IE低版本 getComputed用于主流浏览器
element 目标元素 attribute 目标属性
function getStyle(element, attribute) {
ret...[2023/5/8]
Java设计模式-原型模式
简介
原型模式是一种创建型设计模式,它允许在运行时通过复制现有对象来创建新对象,而不是通过构造函数创建。这个模式的核心思想是基于一个现有的对象克隆一个新的对象,这个过程对外部世界是透明的,就像对象从未被克隆过一样。
原型模式的一个关键优点是可以避免在创建对象时重复性地执行复杂的初始化操作,...[2023/5/8]
SpringBoot 自动扫描第三方包及spring.factories失效的问题
为什么会找不到
Spring 依赖注入 就是要让spring找到要注入的类 并且识别到了 @Component、@Service 等注解。
1. 当在开发的第三方包里写明了 @Component、@Service 等等
2. 引入了包,不论第三方库的引入,还是本地jar。总之是要引入到工程的...[2023/5/8]
JavaScript中的四种枚举方式
字符串和数字具有无数个值,而其他类型如布尔值则是有限的集合。
一周的日子(星期一,星期二,...,星期日),一年的季节(冬季,春季,夏季,秋季)和基本方向(北,东,南,西)都是具有有限值集合的例子。
当一个变量有一个来自有限的预定义常量的值时,使用枚举是很方便的。枚举使你不必使用魔法数字和字...[2023/5/8]
JavaScript统计数组中相同的数量的方法总结JavaScript统计数组中相同的数量的方法总结
目录实现方法使用方法测试方法结论 在JavaScript中,我们经常需要对数组中对象的属性进行统计。例如,我们可能有一个包含产品名称和数量的数组,我们需要统计每个产品名称出现的次数,并将其数量相加。在本文中,我们将介绍如何使用JavaScript来实现这一功能。
实现方法
我们可以使用red...[2023/5/8]
一种新的日期处理方式之JavaScript Temporal API
目录Temporal API 的特点1. 更好的精度2. 处理时区问题3. 更好的国际化支持Temporal API 中的类Temporal API 中的函数总结 Temporal API 的特点
1. 更好的精度
与JavaScript内置的Date对象相比,Temporal API提供了...[2023/5/8]
关于Javascript中值得学习的特性总结
目录可选链操作符(Optional Chaining Operator)空值合并运算符(Nullish Coalescing Operator)Promise.allSettled()BigInt类型 可选链操作符(Optional Chaining Operator)
可选链操作符允许我们在一...[2023/5/8]
Java代码读取properties配置文件
读取properties配置文件
package com.easycrud.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Ma...[2023/5/4]
Spring Boot 整合邮件服务Spring Boot 整合邮件服务
参考教程
首先参考了 Spring Boot整合邮件配置,这篇文章写的很好,按照上面的操作一步步走下去就行了。
遇到的问题
版本配置
然后因为反复配置版本很麻烦,所以参考了 如何统一引入 Spring Boot 版本?。
FreeMarker
在配置 FreeMarker 时,发现找不到 F...[2023/5/4]
Java SE 20 新增特性
Java SE 20 新增特性
作者:Grey
原文地址:
博客园:Java SE 20 新增特性
CSDN:Java SE 20 新增特性
源码
源仓库: Github:java_new_features
镜像仓库: GitCode:java_new_features
Switch类...[2023/5/4]
html,css,javascript鏄€庢牱鍙樻垚椤甸潰鐨刜蹇冨緱鎶€宸缃戦〉鍒朵綔
鐩綍鏋勫缓DOM鏍?/a>鏍峰紡璁$畻甯冨眬闃舵鍒嗗眰鍥惧眰缁樺埗鏍呮牸鍖栨搷浣?/a>鍚堟垚鍜屾樉绀?/a>鎬荤粨 娴忚鍣ㄦ槸澶氳繘绋嬬殑锛屾湁娴忚鍣ㄤ富杩涚▼锛岀綉缁滆繘绋嬶紝娓叉煋杩涚▼锛屾彃浠惰繘绋嬬瓑锛屽湪灏唄tml锛宑 锛宩avascript瑙f瀽鎴愪竴涓〉闈㈢殑鏃跺€欙紝灏遍...[2023/5/4]
Java设计模式-单例模式Java设计模式-单例模式
一、前言
单例模式是一种设计模式,它确保一个类只能创建一个实例,并提供一种全局访问这个实例的方式。在Java中,单例模式可以通过多种方式来实现,其中最常见的是使用私有构造函数和静态方法实现
二、基本语法
在Java中,实现单例模式的方式有多种,其中最常见的实现方式包括以下几种:
1、懒汉式...[2023/4/28]
springboot升级过程中踩坑定位分析记录 | 京东云技术团队
作者:京东零售 李文龙
1.背景
“ 俗话说:为了修复一个小bug而引入了一个更大bug ”
因所负责的系统使用的spring框架版本5.1.5.RELEASE在线上出过一个偶发的小事故,最后定位为spring-context中的一个bug导致的。
为了修复此bug进行了sp...[2023/4/28]
如何实现Spring中服务关闭时对象销毁执行代码
spring提供了两种方式用于实现对象销毁时去执行操作
1.实现DisposableBean接口的destroy
2.在bean类的方法上增加@PreDestroy方法,那么这个方法会在DisposableBean.destory方法前触发
3.实现SmartLifecycle接口的stop...[2023/4/28]
SpringBoot SpringSecurity 介绍(基于内存的验证)SpringBoot SpringSecurity 介绍(基于内存的验证)
SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘
SpringBoot已经为用户采用默认配置,只需要引入pom依赖就能快速启动Spring Security。
目的:验证请求用户的身份,提供安全访问
优势:基于Spring,配置方...[2023/4/28]
Amazon S3 对象存储Java API操作记录(Minio与S3 SDK两种实现)
缘起
今年(2023年) 2月的时候做了个适配Amazon S3对象存储接口的需求,由于4月份自学考试临近,一直在备考就拖着没总结记录下,开发联调过程中也出现过一些奇葩的问题,最近人刚从考试缓过来顺手记录一下。
S3对象存储的基本概念
S3是什么?
Amazon S3(Simple Stora...[2023/4/28]
IDEA实现导入module并成功运行
目录一、将module文件拷贝到工程目录下二、在IDEA中进入“open modul settings”添加模块总结 在写Java项目的时候我们通常需要导入module,需要注意的是导入过程需要以下两大步骤,否则会出现无法运行的情况!!!
以下我以导入“ser...[2023/4/28]
Java多线程同步工具类CyclicBarrier的使用
目录CyclicBarrier是什么CyclicBarrier的基本使用方法CyclicBarrier的源码实现(1)CyclicBarrier的初始化(2)CyclicBarrier的等待和唤醒CyclicBarrier的使用场景总结 CyclicBarrier是什么
CyclicBarrie...[2023/4/28]
Java并发包工具类CountDownLatch的应用详解
目录1.CountDownLatch的源码解读2.CountDownLatch的原理解析3.CountDownLatch的应用场景4.总结 CountDownLatch是Java并发包中非常实用的一个工具类,它可以帮助我们实现线程之间的同步和协作。CountDownLatch的核心思想是通过计数器来...[2023/4/28]
springboot-dubbo cannot be cast to问题及解决springboot-dubbo cannot be cast to问题及解决
目录springboot-dubbo cannot be cast todubbo报错总结1.dubbo consumer 调用provider报错(1)- No provider available2.dubbo consumer调用provider报错(2)3.dubbo consumer 调用...[2023/4/28]
基于Java开发的全文检索、知识图谱、工作流审批机制的知识库
一、项目介绍
一款全源码,可二开,可基于云部署、私有部署的企业级知识库云平台,应用在需要进行常用文档整理、分类、归集、检索的地方,适合知识密集型单位/历史文档丰富的单位,或者大型企业、集团。
为什么建立知识库平台?
二、项目所用技术
springboot+vue+tinyMce+...[2023/4/26]
Java的static修饰符Java的static修饰符
静态域
如果将域定义为 static,每个类中只有一个这样的域。而每一个对象对于所有的实例域却都有自己的一份拷贝。例如,假定需要给每一个雇员赋予唯一的标识码。这里给 Employee 类添加一个实例域 id 和一个静态域 nextld:
cla Employee {
private sta...[2023/4/26]
Java方法的返回值及注意事项
方法的返回值
为什么要有带返回值的方法呢?
调用处拿到方法的结果之后,才能根据结果进行下一步操作
带返回值方法的定义和调用:
如果在调用处,要根据方法的结果去编写另一段代码逻辑
为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法
1.带返回值方法定义的格式:
publi...[2023/4/26]
全网最硬核 JVM 内存解析 - 1.从 Native Memory Tracking 说起
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 i ue,谢谢支持~
另外,本文为了避免抄袭,会在不影响阅读的情况下,在文章的随机位置放入对于...[2023/4/26]
JavaScript中setTimeout()的具体用法
setTimeout( ) 是属于 window 的 方法, 但我们都是略去 window 这顶层容器名称, 这是用来设定一个时间, 时间到了, 就会执行一个指定的 method
请先看以下一个简单, 这是没有实际用途的例子, 只是用来示范 setTimeout( ) 的语法。
1、set...[2023/4/26]
Java中ResultSetMetaData 元数据的具体使用
目录1. 前言2. 常用方法介绍3. 代码演示4. 结果图(一部分)5. 源码 1. 前言
ResultSetMetaData 叫元数据,是数据库 列对象,以列为单位封装为对象。
元数据,指的是其包含列名,列值,列类型,列长度等等有用信息。
2. 常用方法介绍
ResultSetMe...[2023/4/26]
在 javascript 中如何快速获取数组指定位置的元素
目录前言数组的 at() 方法 前言
在 JavaScript 中如果我们需要获取一个数组指定位置的元素,通常情况下,我们一般采用以下方法:
1.通过下标直接获取指定元素:arr[index], index 为非负数。
let arr = [1, 4, 5, 8, 10]
获取数组...[2023/4/26]
容易忽视的细节:Log4j 配置导致的零点接口严重超时
作者:vivo 互联网服务器团队- Jiang Ye
本文详细的记录了一次0点接口严重超时的问题排查经历。本文以作者自身视角极具代入感的描绘了从问题定位到具体的问题排查过程,并通过根因分析并最终解决问题。整个过程需要清晰的问题排查思路和丰富的问题处理经验,也离不开公司强大的调用链、和全方位...[2023/4/24]
微服务的价值实现
?你的微服务项目真的支持集群部署吗?真的做到业务解耦了吗?我相信现在大一点的项目,基本都会选择微服务,但是,真的能体现微服务核心价值的项目不多。在我上篇文章《聊聊微服务架构思想》中,基于个人认知,讲述了软件架构的发展历程和微服务核心思想,主要阐述了微服务架构要解决的痛点和使用微服务带来的好处。凡...[2023/4/24]