自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(276)
  • 资源 (1)
  • 收藏
  • 关注

原创 前后端联调和回归测试

前后端联调和回归测试是软件开发过程中不可或缺的环节,通过有效的测试和验证可以降低系统上线后出现问题的风险,提高系统的质量和稳定性。建议在开发过程中充分利用自动化测试工具和详细的测试计划来进行有效的测试和验证。

2024-07-16 15:54:26 343

原创 Git 的基本方式和常用操作

Git 是一个版本控制工具,用于管理代码的变更历史,协作开发和版本管理。

2024-07-16 15:53:14 366

原创 使用 Postman 进行 API 测试

使用 Postman 进行 API 测试可以帮助你验证 API 的功能和性能。

2024-07-16 15:50:53 330

原创 Java开发规范

使用自定义异常类来描述特定的异常情况。遵循Java开发规范,可以提高代码的可读性、可维护性和一致性。通过良好的代码风格、注释、代码组织、异常处理、测试、代码审查、安全性和文档等实践,可以确保项目的高质量和稳定性。

2024-07-16 15:49:03 800

原创 RESTful API 时的一些规范和最佳实践

设计 RESTful API 时,应遵循资源导向、HTTP 方法、状态码、路径命名、过滤排序分页、数据格式、错误处理、安全性、文档和版本控制等规范和最佳实践。通过这些规范,可以提高 API 的一致性、可维护性和可用性。

2024-07-16 15:46:19 394

原创 减少数据库查询次数

通过批量查询、连接查询、子查询、数据缓存和批量更新等技术,可以有效减少数据库访问次数,从而提高应用性能。

2024-07-16 15:40:07 237

原创 Stream API简化复杂的集合操作和分组逻辑

如果你有更复杂的需求,可以使用自定义收集器来完成。假设你需要根据SN进行分组,然后统计每个分组的订单数量。通过使用 Java 的 Stream API,可以简化复杂的集合操作和分组逻辑,使代码更加简洁和易于维护。

2024-07-16 15:36:11 314

原创 优化查询性能

通过合理的数据库设计、查询优化、应用层优化和数据分库分表等技术手段,可以显著提高大数据量分页查询的性能。根据具体场景选择合适的优化方法,结合监控和调优,确保系统能够在高并发和大数据量下高效运行。

2024-07-16 15:32:56 276

原创 分页查询VS查询后分页

分页查询适用于数据量大且需要高效查询和传输的场景,而查询后分页适用于数据量较小且实现逻辑简单的场景。根据具体需求和数据量选择合适的方法,可以在性能和实现复杂度之间找到平衡。如果你需要在大数据量的场景中进行高效的分页查询,建议采用分页查询的方式。

2024-07-16 15:27:53 390

原创 面试——Redis 数据结构

这些数据结构使得 Redis 能够广泛应用于缓存、队列、计数器、排行榜等各种场景,并且具有高效、灵活和易于使用的特点。Redis 是一种基于内存的数据存储系统,支持多种数据结构。

2024-03-21 11:03:00 325

原创 面试——`epoll`原理

的原理在于利用了 Linux 内核提供的高效的事件通知机制,并通过事件驱动模型来实现高并发的 I/O 操作,从而提高了服务器程序的性能和扩展性。是 Linux 提供的一种高性能的 I/O 事件通知机制,常用于实现高并发的网络服务器。

2024-03-21 11:02:13 334

原创 面试——HTTP 和 Thrift

HTTP 和 Thrift 都是用于网络通信的协议,它们各有优劣,适用于不同的场景。

2024-03-21 11:01:31 814

原创 面试——fork一个进程后

函数创建一个新进程后,操作系统会复制父进程的内存空间和上下文,并为子进程设置合适的返回值,然后父子进程将并发执行,各自独立地执行自己的逻辑。函数来创建一个新进程时,操作系统会进行一系列的操作来完成进程的复制。

2024-03-21 11:00:14 368

原创 面试——死锁和避免死锁

死锁是指两个或多个进程(或线程)在互相请求对方持有的资源时,由于资源的互斥性和占有且等待条件,导致它们无法继续执行,进而导致系统无法进行下去的一种状态。以上是几种避免死锁的常见策略,不同的场景可能采用不同的组合来尽量减少死锁的发生。

2024-03-21 10:59:27 338

原创 面试——当在浏览器中输入 URL 后

当在浏览器中输入 URL 后,会触发一系列的网络请求和处理过程,以下是大致的步骤:DNS 解析:建立 TCP 连接:发起 HTTP 请求:服务器处理请求:服务器发送响应:浏览器接收响应:解析页面并渲染:关闭连接:

2024-03-21 10:58:28 243

原创 Java面试——单例模式和工厂模式

当谈到编程设计模式时,饿汉式和懒汉式是指在创建对象实例时的不同策略。而单例模式和工厂模式是常见的两种设计模式,用于创建和管理对象的方式。单例模式(Singleton Pattern):单例模式用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它常用于需要共享资源或需要全局状态的情况。单例模式的实现可以使用饿汉式或懒汉式。在实现时,需要注意线程安全性、延迟加载和对象创建的方式。

2024-03-21 10:57:22 353

原创 Java面试——Spring AOP(Aspect-Oriented Programming)

Spring AOP(Aspect-Oriented Programming)是 Spring 框架提供的一种编程范式,用于通过在运行时将横切关注点(cross-cutting concerns)与核心业务逻辑分离开来。Spring AOP基于代理模式,在不修改源代码的情况下,通过动态代理的方式将横切逻辑织入到目标对象的方法中。通过将横切关注点从核心业务逻辑中分离出来,Spring AOP 提供了一种更加模块化、可维护和可重用的代码组织方式。

2024-03-21 10:54:31 374

原创 Java面试——Java的垃圾回收(Garbage Collection,GC)

Java的垃圾回收(Garbage Collection,GC)是Java虚拟机(JVM)的核心功能之一,负责管理堆内存中的对象。总之,Java的垃圾回收通过可达性分析算法来确定对象的可达性,然后使用不同的垃圾回收算法和回收器来释放不再使用的对象,并且在运行时动态管理堆内存。

2024-03-21 10:53:10 280

原创 JAVA面试——volatile和synchronized,指令重排序

关键字提供了互斥性,同时它们都可以防止指令重排序的影响。在实际的并发编程中,需要根据具体情况选择合适的同步机制来保证程序的正确性和性能。在面试中,这是一个很好的问题,涉及到并发编程和Java中的内存模型。关键字确保了可见性,

2024-03-21 10:51:49 409

原创 MySQL面试——多表查询语句

当涉及到多个表的查询时,常常需要使用连接查询(JOIN)来检索数据。返回左右表中所有记录,如果左表或右表中没有匹配的记录,则将 NULL 值填充。返回左表中的所有记录以及右表中符合连接条件的记录。返回右表中的所有记录以及左表中符合连接条件的记录。在同一表中连接两次以比较不同的行。返回两个表中符合连接条件的记录。返回两个表的笛卡尔积。

2024-03-20 12:00:29 311

原创 MySQL面试——复杂语句

当涉及到复杂的数据库操作时,可能需要使用一些复杂的SQL语句来满足特定的需求。在SELECT、INSERT、UPDATE或DELETE语句中嵌套使用SELECT语句。这些复杂的SQL语句可以帮助在处理更加复杂的数据库操作时实现特定的需求。从多个表中检索数据,并基于这些表之间的关联进行查询。将多个SELECT语句的结果合并成一个结果集。在查询结果的窗口内执行计算,如排名、累积和等。检索大量数据时,将结果分页显示。使用条件语句动态构建SQL查询。在子查询中使用外部查询的列。根据条件返回不同的结果。

2024-03-20 11:59:35 265

原创 MySQL面试——基本语句

MySQL中的数据存储在数据库中,每个数据库可以包含多个表。表是数据的结构化存储单元,由多个列(字段)组成。当学习MySQL时,首先需要了解一些基础知识和常用的SQL语句。以上是一些MySQL的基础知识和常用的SQL语句。语句选择要操作的数据库。子句指定查询的过滤条件。子句对查询结果进行排序。语句向表中插入数据。语句从表中检索数据。语句更新表中的数据。语句从表中删除数据。子句对数据进行分组。

2024-03-20 11:57:41 197

原创 MySQL面试——基础

MySQL支持多种存储引擎,如InnoDB、MyISAM等,每种存储引擎都具有不同的特点和优势,用户可以根据自己的需求选择合适的存储引擎。总的来说,MySQL是一种功能强大、性能优越、稳定可靠的数据库管理系统,被广泛应用于各种Web应用、企业应用和云计算环境中。MySQL具有丰富的功能和工具,包括存储过程、触发器、视图、索引、事务处理等,可以满足各种复杂的数据库需求。MySQL提供了丰富的安全特性,包括用户认证、权限管理、数据加密等功能,可以保护用户的数据安全。

2024-03-20 11:56:05 107

原创 Java面试——浅克隆(Shallow Clone)和深克隆(Deep Clone)

浅克隆相对来说比较简单和高效,但是如果对象内部有引用类型字段指向可变对象,并且希望克隆后的对象与原始对象完全独立,那么深克隆就更适合。在实现深克隆时,需要考虑如何正确地递归复制对象内部的引用类型字段,以确保克隆后的对象完全独立于原始对象。浅克隆(Shallow Clone)和深克隆(Deep Clone)是对象克隆的两种不同方式,它们在克隆对象时处理对象内部引用的方式不同。

2024-03-20 10:19:14 227

原创 Java面试——JDK

JDK(Java Development Kit)是 Java 开发工具包的缩写,是 Java 开发人员用来编写、编译、调试和运行 Java 程序的软件开发工具包。JDK 是 Java 开发的基础,提供了丰富的开发工具和库,使得 Java 开发人员能够高效地编写、调试和运行 Java 应用程序。这些是 Java 开发人员常用的 JDK 版本,具有不同的功能和改进,根据项目的需求和兼容性要求选择合适的版本。

2024-03-20 10:02:44 273

原创 Java面试——反射的底层实现原理

在底层实现中,JVM 使用一些数据结构来表示类的信息,如符号引用、运行时常量池、方法区等。通过这些数据结构,JVM 能够在运行时动态地获取类的信息,并实现反射机制的各种功能。反射机制的底层实现基于这些数据结构和字节码执行过程,在运行时动态地加载和执行类,实现动态性和灵活性。这个示例演示了如何使用反射动态地创建类实例、调用方法和操作字段,展示了反射的强大功能。反射的底层实现原理涉及到 Java 虚拟机(JVM)的类加载机制和字节码执行过程。

2024-03-20 09:43:22 534

原创 Java面试——什么是反射及反射使用场景和优缺点

反射(Reflection)是指在运行时动态地获取类的信息(例如类的方法、字段、构造函数等),并能够在运行时操作类的属性和方法,而不需要在编译时确定。虽然反射具有一些缺点,但在某些情况下,如框架和库的开发、动态代理、序列化和反序列化等方面,反射仍然是一种强大而有用的技术,可以带来很多便利和功能。反射可以与框架和库集成,使得框架和库可以在运行时动态地加载和执行类,从而实现更加灵活和强大的功能。反射允许在运行时动态地加载和执行类,可以在编译时未知类的情况下进行操作,提供了更高的灵活性。

2024-03-20 09:40:06 368

原创 Java面试——JVM

总的来说,JVM 是 Java 程序的核心执行引擎,它负责解释和执行 Java 字节码,管理内存和垃圾回收,提供跨平台性和安全性保障,并提供了丰富的性能监控和调优工具。JVM 的设计和实现对于 Java 语言的发展和推广起到了至关重要的作用。JVM(Java Virtual Machine,Java 虚拟机)是 Java 程序的运行环境,它负责将 Java 代码解释或编译成特定平台上的机器码,以便在各种操作系统上运行。

2024-03-20 09:29:46 227

原创 Java面试——Java内存模型

总的来说,Java 内存模型是 Java 多线程编程的重要基础,了解其原理和特点对于编写高效、正确、线程安全的多线程程序至关重要。通过合理地使用 volatile、synchronized、锁机制和原子性操作等手段,可以有效地解决多线程程序中的内存可见性、原子性和线程安全性问题。Java 内存模型(Java Memory Model,JMM)定义了 Java 程序中多线程之间的内存访问行为规范,保证了多线程程序在不同平台上的可移植性和执行结果的一致性。

2024-03-20 09:28:19 396

原创 Java面试——抽象类和普通类区别

类中,我们可以声明抽象类的引用变量,但不能直接实例化抽象类对象。相反,我们可以实例化子类对象,并通过子类对象调用继承的普通方法和实现的抽象方法。是一个抽象类,其中包含一个抽象方法。

2024-03-20 09:03:54 690

原创 Java面试——HashMap 和 HashSet区别

这些示例代码演示了如何创建、添加元素、获取元素、删除元素以及判断元素是否存在于 HashMap 和 HashSet 中。

2024-03-20 08:59:19 303

原创 Java面试——HashMap 和 Hashtable区别

综上所述,如果不需要多线程并发操作,推荐使用 HashMap,因为其性能略高并且空间利用更灵活;如果需要多线程安全操作,可以使用 Hashtable,但需要考虑性能损耗。同时,现代 Java 中,更推荐使用基于并发包(Concurrent Package)中的集合类,例如 ConcurrentHashMap,它在并发性能上优于 Hashtable。这段代码创建了一个 HashMap 和一个 Hashtable,分别存储了键值对,并通过迭代器遍历输出了各自的键值对。

2024-03-20 08:54:49 504

原创 Java面试——ArrayList 和 Vector区别

综上所述,如果不需要多线程并发操作,推荐使用 ArrayList,因为其性能略高;如果需要多线程安全操作,可以使用 Vector,但需要考虑性能损耗。同时,现代 Java 中,更推荐使用基于并发包(Concurrent Package)中的集合类,例如 CopyOnWriteArrayList 或 ConcurrentHashMap,它们在并发性能上优于 Vector。ArrayList 和 Vector 是 Java 中的两个集合类,它们在实现上有些许差异,但功能上基本相似。

2024-03-20 08:49:47 224

原创 Java面试-ArrayList 和 LinkedList有什么区别

如果需要频繁随机访问和遍历元素,使用ArrayList更合适。如果需要频繁插入和删除操作,使用LinkedList更合适。在选择时,还需要考虑数据规模、操作类型、性能需求等因素。

2024-03-20 08:43:51 296

原创 面试——微服务及微服务的优缺点

相较于传统的单体应用架构,微服务架构将应用程序拆分为更小、更独立的服务单元,每个服务单元都可以独立地进行开发、部署和扩展,同时通过轻量级的通信机制来实现服务之间的协作。综上所述,微服务架构通过将应用程序拆分为多个小型、松耦合的服务,提高了系统的灵活性、可伸缩性和可维护性,使得团队可以更快地开发和部署软件,并更好地响应业务需求和市场变化。每个微服务都是相对独立的,具有自己的数据库、业务逻辑和用户界面,使得团队可以独立地进行开发、测试、部署和扩展,降低了服务之间的依赖性,提高了系统的灵活性和可维护性。

2024-03-19 09:10:41 362

原创 面试-负载均衡

负载均衡是一种将网络或计算负载分布到多个资源上以提高系统性能、增加可靠性和可扩展性的技术。负载均衡器可以将流量分发到多个服务器或资源上,即使其中一个服务器发生故障,负载均衡器也可以将流量重新路由到其他正常运行的服务器上,提高了系统的可用性。通过将负载分布到多个服务器上,负载均衡可以支持系统的水平扩展,即向系统中添加更多的服务器以处理更多的请求,而无需对现有系统进行修改或升级。负载均衡器可以根据服务器的负载情况动态地将请求分配到最空闲的服务器上,以避免某些服务器过载而导致性能下降,从而优化了系统的性能。

2024-03-19 09:08:32 362

原创 面试-传输层协议(TCPvsUDP)

这些传输层协议提供了不同的特性和功能,可以根据具体的应用需求选择合适的协议。TCP 提供了可靠的数据传输服务,适用于对数据传输可靠性要求较高的场景;而 UDP 则提供了简单高效的数据传输服务,适用于对实时性要求较高的场景。传输层协议是在计算机网络中运行在传输层的协议,主要负责为应用程序提供端到端的数据传输服务。

2024-03-19 08:52:53 363

原创 面试-网络分层

网络分层是指将网络通信过程分解成多个层次,每个层次负责特定的功能,从而实现了网络通信的模块化和分工。通常,网络分层采用 OSI 模型或 TCP/IP 模型,它们都将网络通信分为若干层次,每个层次都有其特定的功能和责任。这些层次之间通过协议进行通信和协作,每个层次的功能都相对独立,这样就可以在不同的层次上进行独立的开发和改进,从而提高了网络通信的灵活性和可维护性。

2024-03-19 08:48:51 344

原创 面试——MySQL的隔离级别

事务只能看见已提交事务的结果,可以避免脏读问题。但是在同一个事务中,不同查询可能看到不一致的数据,可能会导致不可重复读(Non-Repeatable Read)问题。:最高的隔离级别,通过对事务进行严格的串行化来避免幻读(Phantom Read)问题。即在一个事务执行期间,其他事务不能对相同的数据集进行读或写操作。:保证了同一事务在多次执行同一查询时,结果集始终一致。:最低的隔离级别,事务中的修改会立即对其他事务可见,即使这些修改还没有提交。在选择隔离级别时,需要根据应用的需求和性能要求进行权衡。

2024-03-19 08:47:33 339

原创 面试——MySQL的特点

通过事务管理机制,MySQL 能够保证在并发访问的情况下,对数据库的操作能够满足 ACID 的要求,从而提高了数据的可靠性和稳定性。如果事务中的任何一步操作失败,那么整个事务都会被回滚到事务开始前的状态,保证了数据库的完整性。:MySQL 支持多种存储引擎,如 InnoDB、MyISAM 等,每种存储引擎都有不同的特点和适用场景,可以根据实际需求选择合适的存储引擎。:MySQL 支持多种存储引擎,包括 InnoDB、MyISAM、Memory 等,可以根据应用的特点选择合适的存储引擎,满足不同的需求。

2024-03-19 08:46:34 497

Result.txt

倒排记录结果展示,通过用代码实现倒排索引,就可以得到相关的结构,然后把结果导出到这个文件中,方便我们查看,也就是,可以再对,这个文件进行检索

2020-05-31

空空如也

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

TA关注的人

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