java
文章平均质量分 78
阿萨沙
成功并非遥不可及,只要勇往直前,你便能触及。别停下脚步,勇攀高峰,你的努力终将得到回报。
在追逐梦想的路上,风雨兼程,只因心中有光,脚下有路。
路漫漫其修远兮,吾将上下而求索。不断探索,不断学习,用知识的力量武装自己。
输不失志,赢不失态,输赢皆是人生常态,如果把输赢看得太重就会很累,要学会轻装上阵,跌倒了必须勇敢地站起来,微笑面对,从头再来。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常见的加解密算法
常见的加解密算法有:DES,3DES,AES,PBE,RSA,DSA,ECC,MD5,SHA,HMAC。原创 2024-08-29 13:59:30 · 579 阅读 · 0 评论 -
数据库中日期与服务器上日期不对应
1.冬令时、夏令时问题 1988年之前 都会有这样的问题;2.将字段类型由datetime改为date类型;原创 2024-08-29 09:23:42 · 259 阅读 · 0 评论 -
Spring动态替换Properties配置变量
Spring动态替换Properties配置变量知名的分布式配置管理工具Apollo就是通过反射来实现配置参数的动态修改的,Apollo实现了BeanPostProcessor接口,这样它就可以把所有的Bean和@Value的key的关系保存起来,类似于Map,当配置中心的配置被改动的时候,就发一个通知给对应的服务,然后由服务自己去拉取配置参数,重新赋值。原创 2024-08-27 10:48:20 · 855 阅读 · 0 评论 -
MySQL索引优化
联合索引定义时,尽量将范围查询字段放在最后(放在最后联合索引使用最充分,放在中间联合索引使用不充分)。使用联合索引时范围列(当前范围列索引生效)后面的索引列无法生效,同时索引最多用于一个范围列,如果查询条件中有多个范围列,也只能用到一个范围列索引。只是使用到了主键索引PRIMARY(emp_no),联合索引未生效idx_empno_birthdate_gender(emp_no,birth_date,gender)原创 2024-08-26 12:11:39 · 1980 阅读 · 0 评论 -
MySQL与ES数据实时同步,双写一致
在项目的开发与运维过程中,MySQL 是业务数据库的核心角色,以其强大的事务处理能力和数据完整性保障,支撑着系统的稳定运行。随着数据量的急剧增长和查询复杂度的不断提升,单一依赖 MySQL 进行高效的数据检索显得日益吃力,尤其是在面对海量数据的复杂查询场景时,性能显而易见的降低。为了有效缓解这一问题,通常采用读写分离的策略,将 Elasticsearch(简称 ES)引入作为专门的查询数据库。ES 以其卓越的搜索性能、灵活的数据模式以及强大的可扩展性,成为处理复杂查询需求的理想选择。原创 2024-08-26 10:01:32 · 2014 阅读 · 0 评论 -
JavaEE,EL表达式与jstl标签库
JSTL标签库是第三方发明的自定义的标签,每个标签都有自己特定的含义表示一个具体的java逻辑。我们要在JSP中使用JSTL必须使用taglib标签引入第三方的标签库资源。 items表示要遍历的集合 var为集合中的每个元素。4. 注意:${}不仅可获取域对象中的数据,而且会将该数据打印到浏览器中。2. 底层使用的是反射,在使用的时候可以通过键名即可获取对应的值。,获取域对象中存储的list集合或者数组中指定角标的数据。原创 2023-11-01 11:08:56 · 1021 阅读 · 1 评论 -
创建javaEE项目(无maven),JSP(九大内置对象)、Servlet(生命周期)了解
编写完之后,再有一个工具,将这个特殊的文件转换成Servlet,在转换好的Servlet中,之前写的Java代码还在,而HTML、css、js代码都使用writer的方式给写好。这个 .java文件其实就是一个Servlet,在这个Servlet中已经将写在JSP中的HTML代码以writer.print()的方式编写好了,然后将数据响应给浏览器的。JSP本质上就是一个Servlet,JSP中的HTML代码就相当于我们之前在Servlet中写的writer.write()代码。原创 2023-11-01 11:05:28 · 2284 阅读 · 0 评论 -
MySQL存储引擎
起主要用途就是大家有些时候可能会需要通过数据库中的数据导出成一份报表文件,而CSV文件是很多软件都支持的一种较为标准的格式,所以我们可以通过先在数据库中建立一张CSV表,然后将生成的报表信息插入到该表,即可得到一份CSV报表文件了。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。原创 2023-10-31 11:10:32 · 677 阅读 · 0 评论 -
JDBC-Java程序连接关系型数据库的技术,ORM编程思想
1.通过命令行的方式操作mysql服务,cmd通过命令操作2.通过图形化界面操作mysql服务,例如navicat软件3.通过java程序连接操作mysql数据库,使用jdbc技术。原创 2023-10-31 11:07:59 · 461 阅读 · 0 评论 -
数据库深入浅出,数据库介绍,SQL介绍,DDL、DML、DQL、TCL介绍
SQL92本身是分级的,包括入门级、过度级、中间级和完全级。MySQL提供了一张虚拟表,该表名为“dual”,是MySQL为了满足用“SELECT ••• from•••”的习惯而增设的一张虚拟表。DDL主要用针对是数据库对象(数据库、表、索引、视图、存储过程)进行创建, 修改和删除操作。将复杂的数据,以二维表(存储关系:行、列)来展示,由二维表之间的联系组成数据组。数据(Data):文本信息(字母、数字、符号等)、音频、视频、图片等;主要用于对数据库对象(库、表、索引、视图),进行创建、修改、删除。原创 2023-10-31 11:03:59 · 677 阅读 · 0 评论 -
JavaEE入门介绍,HTTP协议介绍,常用状态码及含义,服务器介绍(软件服务器、云服务器)
超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。原创 2023-10-30 10:52:17 · 766 阅读 · 0 评论 -
正则表达式ReqExp
6. 匹配Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* $\w :匹配一个单词(字母、数字、下划线)[a-zA-Z0-9_] 或[A-z0-9_]1. 匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7}$5. 匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$7. 匹配中文字符的正则表达式: ^[\u4e00-\u9fa5] $2. 匹配腾讯QQ号:^[1-9][0-9]{4,} $检索字符串中指定的值。原创 2023-10-26 14:23:39 · 793 阅读 · 0 评论 -
java中Map常见的面试问题,扩容问题,转红黑树的前提,解决Hash哈希冲突的方法
在源码上可以看出,在理想状态下,受随机分布的 hashCode 影响,链表中的节点遵循泊松分布,而且根据统计,链表中节点数是 8 的概率已经接近千分之一,而且此时链表的性能已经很差了,所以在这种比较罕见和极端的情况下,才会把链表转变为红黑树。(数组长度-1) & hash(hash%数组长度)计算的结果得出具体的下标,如果在索引位置只有一个节点直接返回,非一个节点继续在链表或红黑树中查找。答:元素个数为8的红黑树中,高度为:4.最多查找4次就能找到需要的的值,长度为8的链表,最多找7次。原创 2023-10-25 09:33:51 · 338 阅读 · 0 评论 -
数据结构,及分类(存储分类、逻辑分类)介绍
计算机存储数据、操作数据的方式。将这些数据按照特定结构组成一个集合。数据结构是一种宏观概念,其中包含很多具体的数据结构。原创 2023-10-25 09:28:10 · 1676 阅读 · 0 评论 -
java基础,运算符及运算符优先级,进制转换,源码、反码、补码,数据类型,流程控制语句,数组定义、特点
进制:满几归零进一,称为进制数;十进制:生活中常用的,满十归零进一;取值范围:0~9 写法例如:1234 默认十进制二进制:计算机中底层使用的是二进制,满二归零进一;取值范围:0~1 写法例如:0b0001 或 0B0001八进制:满八归零进一取值范围:0~8 写法例如:01234十六进制:满十六归零进一取值范围:0~15 写法例如:0x11AB 或 0X22EF10~15之间的写法:A(10)、B(11)、C(12)、D(13)、E(14)、F(15)原创 2023-10-24 10:45:53 · 262 阅读 · 0 评论 -
JUC并发编程,线程池(介绍、使用、参数),原子类(Atomic-线程安全),锁机制(Lock),信号量工具类(Tools),并发集合类
内容的一块空间。这块空间中存放了一些实例化好的线程对象。当代码中需要使用线程时直接从线程池获取。当代码中线程执行结束或需要销毁时,把线程重新放入回到线程池,而不是让线程处于死亡状态。原创 2023-10-23 13:43:24 · 594 阅读 · 0 评论 -
面向对象设计原则,详细介绍及分析
面向对象设计原则是面向对象设计的基石,是面向对象设计的质量、保障、思想。一共有七个设计原则,设计模式就是面向对象设计原则的经典应用单一职责原则* 强调:高内聚低耦合,每一种类型的业务区分开闭原则* 强调:面向接口编程,对扩展开放,对修改关闭;提高复用性、维护性里氏替换原则 强调:是符合开闭的重要保证依赖倒置原则* 强调:多态,面向接口编程接口分离原则 强调:细化接口,提高代码可维护性、灵活性;迪米特原则 强调:原创 2023-10-20 13:33:51 · 215 阅读 · 0 评论 -
UML(Unified Modeling Language)统一建模语言,及工具介绍、使用
在UML 2.5 中共包含14种图形:类图、用例图、活动图、对象图、时序图、交互概述图、包图、配置文件图、部署图、组件图、组合结构图、状态机图、通信图、序列图。原创 2023-10-20 13:23:37 · 766 阅读 · 0 评论 -
排序算法,冒泡排序算法及优化,选择排序SelectionSort,快速排序(递归-分区)
选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。快速排序的名字起的是简单粗暴,因为一听到这个名字你就知道它存在的意义,就是快,而且效率高!原创 2023-10-19 14:27:54 · 671 阅读 · 0 评论 -
计算机网络,网络(OSI)七层模型,三次握手四次挥手,get与post请求区别,网络IO(BIO\NIO\AIO),TCP与UDP区别
NIO指同步非阻塞IO模型(jdk1.4之后),服务端一个线程处理多个客户端请求,需要把服务端和客户端管道注册到selector(多路复用器)上,添加了多路复用器监听所有管道的状态。UDP是无连接的,发送数据不需要建立连接,效率比TCP高,适用于高速传输和信息广播,支持一对一、一对多、多对多连交互通信,面向报文首部开销小。BIO指同步阻塞IO模型(jdk1.4之前),服务端一个线程只能同时处理一个客户端的请求,每连接一个客户端,服务端都要创建一个线程。服务器响应完数据,向客户端响应断开连接请求。原创 2023-10-19 14:18:41 · 902 阅读 · 0 评论 -
java中的容器(集合),HashMap底层原理,ArrayList、LinkedList、Vector区别,hashMap加载因子0.75原因
集合主要分为Collection和Map两大接口;Collection集合的子接口有List、Set;List集合的实现类有ArrayList底层是数组、LinkedList底层是双向非循环列表、Vector;Set集合的实现类有HashSet、TreeSet;Map集合的实现类有HashMap、TreeMap、HashTable;(补充:HashTable与HashMap类似,线程安全,子接口有Properties接口,线程安全)1.HashMap底层原理?原创 2023-10-18 09:58:42 · 757 阅读 · 1 评论 -
SpringBoot整合RabbitMQ,自动创建交换器和队列代码实现
【代码】SpringBoot整合RabbitMQ,自动创建交换器和队列代码实现。原创 2023-09-23 16:45:58 · 1380 阅读 · 1 评论 -
@Autowired与@Resources注解区别,@Autowired为什么会有警告线呢?
事实上,这两个的基本功能都是通过注解实现依赖注入,只不过@Autowired是Spring定义的,而@Resource是JSR-250定义的。在使用IDEA开发的时候有没有注意到过一个提示,在字段上使用Spring的依赖注入注解@Autowired后会出现黄色的警告。Field注入(属性):大多数情况下尽量少使用字段注入,一定要使用的话, @Resource相对@Autowired对IoC容器的耦合更低。会导致组件与IoC容器紧耦合(这是最重要的原因,离开了IoC容器去使用组件,在注入依赖时就会十分困难)原创 2023-09-19 14:57:35 · 290 阅读 · 0 评论 -
接口请求合并学习,了解,分析
请求合并,批量的办法能大幅节省被调用系统的连接资源,本例是以数据库为例,其他RPC调用也是类似的道理。缺点就是请求的时间在执行实际的逻辑之前增加了等待时间,不适合低并发的场景。原创 2023-09-19 09:38:05 · 359 阅读 · 0 评论 -
sql优化
在应用开发的早期,数据量少,开发人员开发功能时更重视功能上的实现,随着生产数据的增长,很多SQL语句开始暴露出性能问题,对生产的影响也越来越大,有时可能这些有问题的SQL就是整个系统性能的瓶颈。原创 2023-09-15 17:08:27 · 102 阅读 · 0 评论 -
MySQL limit 用法分析,分页性能提升
第一种:SELECT * FROM table LIMIT offset, rows # 常用形式-- 从0开始,截取5条记录,即检索行为1到5-- 注意: 关键字limit后面的两个参与用逗号分割第二种:SELECT * FROM table LIMIT rows OFFSET offset-- 从0开始,截取5条记录,即检索行为1到5-- 注意: 使用limit和offset两个关键字,并且各带一个参数,中间没有逗号分割。原创 2023-09-15 16:43:13 · 1039 阅读 · 1 评论 -
VSCode工具进行Java开发
vscode官网:支持WindowsLinuxMac任何一个程序员都有自己喜爱的编辑器、工具、开发利器,有这样一群人,对于vim这种上古神器难以驾驭、IDE太笨重,这时候多了一个选择 vscode。vscode 重新定义了编辑器,它开源、免费、Runs everywhere,是一款介于 IDE 和编辑器之间的产物,我们不能用 IDE 的所有特性都往它身上压,如果都可以的话不就是 IDE 吗?原创 2023-09-14 17:48:43 · 1222 阅读 · 0 评论 -
设计模式-责任链设计模式
责任链模式是一种行为设计模式(Chain of Responsibility Pattern), 允许你将请求沿着处理者链进行发送。收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了。1、降低耦合度。它将请求的发送者和接收者解耦。2、简化了对象。使得对象不需要知道链的结构。3、增强给对象指派职责的灵活性。原创 2023-09-13 10:15:27 · 148 阅读 · 1 评论 -
SpringSecurity、RBAC角色权限控制
RBAC 全称为用户角色权限控制,通过角色关联用户,角色关联权限,这种方式,间阶的赋予用户的权限。对于通常的系统而言,存在多个用户具有相同的权限,在分配的时候,要为指定的用户分配相关的权限,修改的时候也要依次的对这几个用户的权限进行修改,有了角色这个权限,在修改权限的时候,只需要对角色进行修改,就可以实现相关的权限的修改。这样做增加了效率,减少了权限漏洞的发生。权限是资源的集合,这里的资源指的是软件中的所有的内容,即,对页面的操作权限,对页面的访问权限,对数据的增删查改的权限。原创 2023-09-12 17:53:44 · 1597 阅读 · 2 评论 -
代码生成工具:根据数据库生成代码,MybatisPlus-代码生成器
代码生成工具:根据数据库生成代码,MybatisPlus-代码生成器,3.5.3.1版本 MybatisPlus 代码生成器、使用Freemarker引擎模板。原创 2023-09-12 11:04:08 · 1121 阅读 · 1 评论 -
FastDFS实现本地文件服务器
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。原创 2023-09-10 13:00:22 · 351 阅读 · 1 评论 -
MyBatis批量插入,10秒内十万条数据插入,及性能测试
本文介绍了 MyBatis 批量插入的 3 种方法,其中循环单次插入的性能最低,也是最不可取的;使用 MyBatis 拼接原生 SQL 一次性插入的方法性能最高,但此方法可能会导致程序执行报错(触发了数据库最大执行 SQL 大小的限制),所以综合以上情况,可以考虑使用 Mybatis-Plus 的批量插入功能。原创 2023-09-05 09:49:07 · 2967 阅读 · 0 评论 -
java中的IO模型,磁盘IO、网络IO
在日常的工作当中, IO主要涉及两个方面: 文件IO(磁盘IO) 和网络IO. 本文主要是剖析一下Java中文件IO的实现方式.原创 2023-09-04 16:52:47 · 284 阅读 · 1 评论 -
Spring中bean的生命周期、bean标签scope属性的可取值
在Spring框架中,Bean(对象)的生命周期经历以下阶段:实例化:在这个阶段,Spring容器根据配置或注解创建Bean的实例。这可以通过构造函数实例化、静态工厂方法或实例工厂方法实现。属性赋值:在实例化后,Spring容器会为Bean的属性注入值,可以通过构造函数注入、属性的setter方法注入或注解方式进行属性赋值。初始化:在所有属性被赋值后,Spring容器会调用Bean的初始化方法。可以使用注解标记初始化方法,也可以配置初始化方法的名称。使用:在初始化完成后,Bean可以被应用程序使用。原创 2023-09-01 14:53:11 · 116 阅读 · 1 评论 -
RabbitMQ学习,详解,解决消息丢失问题,交换器类型,消息确认机制
RabbitMQ 收到拒绝消息后,可以根据配置的策略将消息重新放回队列,或者将消息发送到备份交换器(备份交换器是一种配置在主交换器之后的交换器,用于处理被拒绝的消息)。当消费者从队列中接收到消息时,它可以向 RabbitMQ 发送确认消息(ACK),表示消息已经成功处理。主题交换器(Topic Exchange):主题交换器根据消息的路由键进行模式匹配,并将消息发送到符合匹配规则的队列中。需要手动发送确认消息:在消费者代码中,需要显式地发送确认消息(ACK)或拒绝消息(NACK)给 RabbitMQ。原创 2023-08-31 11:22:02 · 207 阅读 · 0 评论 -
java编译执行、环境配置
编译执行、环境变量、环境搭建原创 2022-07-15 15:42:16 · 352 阅读 · 0 评论 -
java历史背景、语言特性
语法结构、面向对象核心、常用的工具类原创 2022-07-15 15:38:03 · 405 阅读 · 1 评论 -
java数据类型、常量与变量、内部存储
java数据类型、常量与变量原创 2022-07-15 15:49:38 · 223 阅读 · 0 评论
分享