- 博客(60)
- 收藏
- 关注
原创 约束+数据库技术+事务
在SQL(Structured Query Language,结构化查询语言)中,多表查询可以通过多种方式实现,包括JOIN(连接)、UNION(合并结果集)、子查询等。如果两个表中的行在指定的连接键上有相同的值,这些行就会被组合在一起返回。隐式外连接虽然在某些情况下仍然可以使用,但它们的使用应该尽量避免,特别是在复杂的查询中。子查询也可以是相关子查询(correlated subquery),即子查询中的条件依赖于外部查询的行。:左连接,返回左表(表A)的所有行,即使在右表(表B)中没有匹配的行。
2024-03-08 19:33:26 1515
原创 精通Java内存管理:提升应用性能的秘诀
在Java开发中,内存管理是一个至关重要的环节。本文将深入探讨Java内存模型、垃圾回收机制以及如何通过代码优化来提升应用性能。我们将分享一些实用的技巧和最佳实践,帮助你的Java应用运行得更加高效。
2024-07-14 10:33:46 30
原创 RabbitMQ整理
RabbitMQ是一个开源的消息代理和队列服务器,广泛用于应用程序之间的异步消息传递。它基于高级消息队列协议(AMQP)并支持多种消息协议。
2024-07-14 10:32:45 550
原创 Sentinel和hystric的运用详解
Sentinel 是由阿里巴巴开源的用于微服务架构的高可用流量控制组件,它通过提供流量控制、熔断降级、系统自适应保护等功能,帮助保障微服务的稳定性。
2024-07-13 08:13:31 775
原创 ES(Elasticsearch)的使用
Elasticsearch(简称ES)是一个基于Lucene的搜索引擎,提供全文搜索功能,并且具有HTTP web接口和无模式的JSON文档。
2024-07-13 08:12:48 617
原创 MySQL与Redis优化
请注意,这些示例代码仅用于说明如何对MySQL和Redis进行优化,实际应用时需要根据具体的业务场景和需求进行调整。同时,优化措施的实施应谨慎进行,并在测试环境中充分测试以确保不会对现有系统造成负面影响。在进行优化时,需要根据实际业务场景和数据特点进行综合考虑,避免一刀切的优化策略。同时,优化过程中要持续监控性能指标,确保优化措施的有效性。好的,让我们通过一些示例代码来展示如何对MySQL和Redis进行优化。
2024-07-12 14:57:45 1224
原创 Feign的远程调用
Feign 是一个声明式的 Web 服务客户端,使得编写 Web 服务客户端变得更加简单。Feign 旨在简化 HTTP 客户端的编写,它整合了 Ribbon(提供客户端负载均衡)和 Hystrix(提供熔断机制),并且与 Spring Cloud 紧密集成,是 Spring Cloud 体系中的核心组件之一。
2024-07-12 14:52:36 284
原创 深入理解序列化与反序列化:概念、区别及应用场景
本文将探讨序列化与反序列化的概念、它们之间的区别,以及在不同应用场景下的实际应用。反序列化则是序列化的逆过程,即将序列化后的数据转换回原始的数据结构或对象。序列化与反序列化是数据交换的基础,选择合适的序列化格式对于系统的性能、安全性和兼容性至关重要。:在分布式系统中,序列化用于将对象转换为字节流,通过网络发送,然后在接收端进行反序列化。:应用程序状态或配置信息的持久化,通过序列化存储到磁盘,启动时反序列化以恢复状态。:RESTful API或SOAP服务处理请求和响应时,数据的序列化与反序列化。
2024-07-10 11:47:24 248
原创 Void和返回值使用情况说明
在 Java 中,方法的返回类型定义了该方法执行完成后返回的数据类型。是一个特殊的返回类型,表示该方法不返回任何值。
2024-06-22 09:43:13 307
原创 项目分支命名
这些只是一些建议,实际的分支命名应该根据项目的具体需求和团队的约定来确定。在Java项目中,分支命名通常遵循一定的模式,以帮助团队成员理解每个分支的作用。,如果团队成员需要从主分支中创建自己的分支进行独立开发,可以使用。,如果项目中前端和后端代码分开管理,这个分支可以用于前端开发。,如果项目涉及多个团队或模块的集成,这个分支可以用于集成开发。,用于最终的发布前准备,可能包含最后的测试和调整。,用于修复bug或问题。,用于在特定时间点冻结代码,以便进行测试或发布。,这是项目的主线分支,包含了最新的稳定代码。
2024-05-24 11:19:01 548
原创 面试试题一
封装是面向对象编程的核心概念之一,它允许将对象的实现细节隐藏起来,只暴露出一个操作该对象的接口。它用于建立一个公共的层次结构,使得子类可以重用父类的代码,并且可以扩展或修改父类的行为。:客户端应当与它不需要的接口隔离,避免过多功能的聚合接口导致的耦合。SOLID是五个面向对象设计的基本原则的缩写,由Robert C. Martin提出,它们帮助开发者设计出松耦合、高内聚的系统。:一个类应该只负责一个功能领域中的相应职责,或者可以定义为“一个类只负责一个变化的原因”。这有助于降低类的复杂度,提高可维护性。
2024-05-12 17:54:00 1052
原创 Spring框架理解
在Spring框架中,DAO层是MVC(模型-视图-控制器)架构中的模型部分,它与Service层和Controller层协同工作,共同构建了一个分层的、模块化的应用程序。:通过使用ORM(对象关系映射)工具如Hibernate或JPA,DAO层可以实现对不同数据库技术的抽象,使得上层业务逻辑不必关心底层数据库的具体实现。:DAO层可以处理事务管理,确保数据的一致性和完整性。:通过将数据访问逻辑放在DAO层,可以使得业务逻辑(通常在Service层实现)与数据访问逻辑分离,提高代码的可维护性和可重用性。
2024-05-12 09:44:20 135
原创 JavaEE规范
这些规范定义了一组可重用的组件和API,以及一种用于构建和部署企业应用程序的体系结构。这些规范和标准使得开发人员能够构建出更加稳定、安全和可维护的企业应用程序,提高应用程序的性能和可靠性。同时,使用支持JavaEE规范的工具和平台,可以大大提高开发效率和质量,减少开发时间和成本。: 提供了一种管理事务的方法,确保事务的ACID属性(原子性、一致性、隔离性、持久性)。: 是一种设计模式,用于将应用程序分为模型层、视图层和控制层,以便于管理和开发。: 包含了微服务和云功能等特性,是对Java EE 7的扩展。
2024-05-08 09:03:25 408
原创 12 Junit单元测试、反射、注解
Junit单元测试是做什么的?就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。Junit单元测试框架可以用来对方法进行测试,它是由Junit公司开源出来的Junit单元测试的优点是什么?可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各自独立。不需要程序员去分析测试的结果,会自动生成测试报告出来。JUnit可以选择执行哪些测试方法,可以一键执行全部测试方法的测试。JUnit可以生测试报告,如果测试良好则是绿色;如果测试失败,则是红色。
2024-04-29 18:24:11 1280
原创 11 网络编程(通信)
什么是网络通信?可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)比如:微信聊天、LOL游戏、京东、淘宝网站的访问基本的通信架构基本的通信架构有2种形式:CS架构( Client客户端/Server服务端 ) 、 BS架构(Browser浏览器/Server服务端)无论是CS架构,还是BS架构的软件都必须依赖网络通信!1、IP地址是做什么的,具体有几种定位网络上的设备的,有IPv4 , IPv62、公网ip和内网ip的区别是什么?
2024-04-27 08:00:00 721
原创 10 多线程(安全 同步 线程池)
同步代码块同步方法lock语法synchronized 方法(){ }加锁方式自动加锁、释放锁自动加锁、释放锁手动加锁、释放锁锁粒度代码行方法代码行Executors工具类底层是基于什么方式实现的线程池对象?线程池ExecutorService的实现类:ThreadPoolExecutorExecutors是否适合做大型互联网场景的线程池方案?不合适。建议使用ThreadPoolExecutor来指定线程池参数,这样可以明确线程池的运行规则,规避资源耗尽的风险。
2024-04-26 09:01:41 941 1
原创 09 配置文件&日志&多线程
就是限制XML文件只能按照某种格式进行书写。约束文档分为: DTD Schema文档什么是日志?用来记录程序运行过程中的信息,并可以进行永久存储。输出语句的弊端日志会展示在控制台不能更方便的将日志记录到其他的位置(文件,数据库)想取消日志,需要修改源代码才可以完成日志级别指的是日志信息的类型,日志都会分级别,常见的日志级别如下(优先级依次升高日志级别说明trace追踪,指明程序运行轨迹debug调试,实际应用中一般将其作为最低级别,而 trace 则很少使用info。
2024-04-25 09:40:15 687
原创 网络编程三要素
IP地址和端口号共同确定了网络通信的目的地,即数据应该发送到哪个设备上的哪个服务。协议则规定了数据的传输方式,确保数据能够正确、高效地在网络中流动。在Java网络编程中,这些要素通常通过套接字(Socket)来实现。套接字是网络通信的端点,它将IP地址和端口号结合起来,并根据所使用的协议(TCP或UDP)提供不同的编程接口。通过套接字,Java程序可以与网络中的其他程序进行通信,实现数据的发送和接收。
2024-04-25 09:36:02 944
原创 08 IO-字符流&其它流
字节缓冲流有几种?字节缓冲输入流:BufferedInputStream字节缓冲输出流:BufferedOutputStream字节缓冲流为什么提高了字节流读写数据的性能?字节缓冲流自带8KB缓冲区可以提高原始字节流、字符流读写数据的性能功能上并无很大变化,性能提升了。字符缓冲流有几种,好处是什么?字符缓冲流自带8K缓冲区,可以提高原始字符流读写数据的性能两种字符缓冲流新增了哪些方法?BufferedReader,多了readLine()按照行读取的功能。
2024-04-23 09:23:29 971
原创 ConcurrentHashMap
是 Java 中的一个线程安全的哈希表,它允许多个线程同时读写而不需要额外的同步开销。它通过使用分段锁(segment locks)来实现对哈希表的并发访问,从而提高了并发性能。
2024-04-22 17:51:19 375
原创 认识线程池
在Java中,线程池是一种执行器(Executor),用于在一个后台线程中执行任务。线程池的主要目的是减少在创建和销毁线程时所产生的性能开销。通过重用已经创建的线程来执行新的任务,线程池提高了程序的响应速度,并且提供了更好的系统资源管理。
2024-04-22 11:19:31 416
原创 07 文件-IO流&字节流
美国信息交换标准代码,包括了英文、符号等。标准ASCII使用1个字节存储一个字符,首尾是0,总共可表示128个字符,对美国佬来说完全够用。常见字符集有哪些?各自存储数据的特点是什么?ASCII字符集:只有英文、数字、符号等,占1个字节。GBK字符集:汉字占2个字节,英文、数字占1个字节。UTF-8字符集:汉字占3个字节,英文、数字占1个字节。字节输入流以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到内存中去的流字节输出流。
2024-04-22 10:22:32 758
原创 synchronized和lock的区别
和Lock都可以用于线程同步,但它们在用法和功能上有所不同。是一种内置锁,使用简单,但功能有限。Lock是一个显示锁,提供了更多的控制和灵活性,适用于需要高级同步功能的场景。在实际编程中,根据具体需求选择合适的同步机制是非常重要的。
2024-04-21 11:26:59 659 2
原创 06 Map&Stream&递归
Map集合称为双列集合,一次需要存一对数据做为一个元素, 格式:{key1=value1 , key2=value2 , key3=value3 , …}Map集合的每个元素分为两部分:key和value,key称为键,value称为值,整体叫键值对,因此Map也叫“键值对集合”Map集合的所有键是不允许重复的,但值可以重复,键和值是一一对应的,每一个键只能找到自己对应的值Map集合是什么, 使用场景?Map集合是键值对集合Map集合非常适合做类购物车这样的业务场景。特点。
2024-04-21 09:13:34 926
原创 final finally finalize的区别
在 Java 中,finalfinally和finalize这三个关键字虽然名称相似,但它们的作用和用途是完全不同的。
2024-04-18 16:17:49 178
原创 05集合-Collection&List&Set
如果希望元素可以重复,又有索引,索引查询要快?用ArrayList集合, 基于数组的。(用的最多)如果希望元素可以重复,又有索引,增删首尾操作快?用LinkedList集合, 基于链表的。如果希望增删改查都快,但是元素不重复、无序、无索引。用HashSet集合,于哈希表的。如果希望增删改查都快,但是元素不重复、有序、无索引。用LinkedHashSet集合, 于哈希表和双链表。如果要对对象进行排序。用TreeSet集合, 基于红黑树。后续也可以用List集合实现排序。数组的特点。
2024-04-18 15:19:39 998
原创 04异常&Lambda&算法&正则
运行时异常自定义异常定义一个异常类继承RuntimeException定义一个异常类继承Exception重写构造器重写构造器通过throw new 异常类(xxx)来创建异常对象并抛出通过throw new 异常类(xxx)来创建异常对象并抛出编译阶段不报错,提醒不强烈,运行时才可能出现!!编译阶段就报错,提醒更加强烈!!运行时异常的特点编译时异常的特点运行时异常:继承自RuntimeException的异常或者其子类编译时异常:继承自Exception的异常或者其子类。
2024-04-13 22:39:33 1309
原创 03 常用API&时间&Arrays
设置Comparator接口对应的比较器对象,来定制比较规则左边对象大于右边对象,返回正整数;左边对象小于右边对象,返回负整数;两边对象相等,返回0 这样就可以得到升序。
2024-04-12 08:05:17 882
原创 02 内部类、泛型、常用API
匿名内部类的作用?方便创建子类对象,最终目的为了简化代码编写。匿名内部类的格式?a. run();匿名内部类的特点?匿名内部类是一个没有名字的内部类,同时也代表一个对象。匿名内部类的对象类型,相当于是当前new的那个类型的子类类型。StringBuilder是一个可变的字符串的操作类,我们可以把它看成是一个对象容器。使用StringBuilder的核心作用:操作字符串的性能比String要更高(如拼接、修改等)。
2024-04-10 20:50:51 1111
原创 01 static 代码块 继承 权限修饰符 多态 抽象类 接口 枚举
static修饰变量修饰方法修饰代码块隶属类(静态变量)类(静态方法)类(静态代码块)推荐访问方式类名.变量名类名点.方法名()类加载时自动执行经典使用场景多对象共享变量工具类方法为类变量初始化赋值什么是继承?继承的好处是啥?继承就是java允许我们用extends关键字,让一个类和另一个类建立起一种父子关系。提高代码复用性,减少代码冗余,增强类的功能扩展性。继承的格式子类 extends 父类继承后子类的特点?
2024-04-09 12:27:45 1086
原创 两数之和与回文数
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。但是,数组中同一个元素在答案里不能重复出现。
2024-03-24 17:22:53 271
原创 Collection集合体系
Java集合框架通过提供一套统一的接口和实现类,使得开发者能够轻松地实现和操作集合对象。这些接口和类的设计遵循了面向对象的原则,使得集合操作更加灵活和高效。无论是简单的数据存储还是复杂的数据处理任务,Java集合框架都能提供合适的工具来完成任务。此外,这个框架的设计还考虑了线程安全和性能,使得集合对象可以在多线程环境中安全地使用,并且具有高效的性能表现。
2024-03-16 21:02:25 536
原创 软件测试的全面指南:概念、目的、类型、方法、工具及应用(附上基础智能小代码)
软件测试是软件开发生命周期中不可或缺的一部分,它确保软件产品能够按照预期工作,满足用户的需求和期望。本文将为您提供软件测试的全面指南,包括测试的概念、目的、类型、方法、工具,以及如何有效地使用它们。
2024-03-15 21:52:38 4480
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人