Java
文章平均质量分 84
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
鱼找水需要时间
千里之行,积于跬步;万里之船,成于罗盘
展开
-
程序员的36大Dubbo面试问题及答案
Dubbo是基于Java的高性能轻量级的RPC分布式服务框架,现已成为 Apache 基金会孵化项目。原创 2023-12-30 07:15:00 · 903 阅读 · 0 评论 -
数据库开发中比较少用的功能
数据库是结构化信息或数据的有序集合,一般以电子形式存储在计算机系统中。 通常由 数据库管理系统 (DBMS) 来控制。 在现实中,数据、DBMS 及关联应用一起被称为数据库系统,通常简称为数据库。原创 2023-12-30 07:30:00 · 820 阅读 · 16 评论 -
java开发人员最常犯的10种错误
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。本文介绍了开发人员常犯的十种错误原创 2023-12-30 07:00:00 · 773 阅读 · 0 评论 -
如何衡量程序运行的效率
计算机通过一个个程序去执行计算任务,也就是对输入数据进行加工处理,并最终得到结果的过程。每个程序都是由代码构成的。可见,编写代码的核心就是要完成计算。但对于同一个计算任务,不同计算方法得到结果的过程复杂程度是不一样的,这对你实际的任务处理效率就有了非常大的影响。原创 2023-12-29 07:45:00 · 2017 阅读 · 3 评论 -
深入分析 Java、Kotlin、Go 的线程和协程
协程(Coroutines)不是进程或线程,其执行过程更类似于子例程,或者说不带返回值的函数调用。原创 2023-12-28 07:15:00 · 1495 阅读 · 4 评论 -
程序员的50大Spring面试问题及答案
Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。 该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。 Spring 由 Rod Johnson 创立,2004 年发布了 Spring 框架的第一版,其目的是用于简化企业级应用程序开发的难度和周期。 Spring 是分层的 Java SE/EE 一站式轻量级开源框架,以 IoC(Inverse of Control,控制反转)和 AOP(Aspect Oriented Programming,面向切面编程)为内核原创 2023-12-26 07:15:00 · 1084 阅读 · 10 评论 -
程序员的20大Servlet面试问题及答案
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。原创 2023-12-25 23:15:00 · 1092 阅读 · 2 评论 -
程序员的21大Netty面试问题及答案
Netty是一个异步事件驱动的网络应用框架,用于快速开发可维护的高性能服务器和客户端。原创 2023-12-24 07:45:00 · 1910 阅读 · 0 评论 -
程序员的30大Mybatis面试问题及答案
MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了 几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索 。 MyBatis 可以使用 XML 或注解进 行配置和映射, MyBatis 通过将参数映射到配置的 SQL 形成最终执行的 SQL 语句 ,最后将执行 SQL 的结果映射成 Java对象返回。原创 2023-12-23 09:45:00 · 840 阅读 · 1 评论 -
程序员的50大JVM面试问题及答案
JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机。 JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候JVM的作用就体现出来了,它负责把我们的程序翻译给系统“听”,告诉它我们的程序需要做什么操作。原创 2023-12-21 22:30:00 · 1169 阅读 · 1 评论 -
程序员的20大JSP面试问题及答案
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运原创 2023-12-22 07:15:00 · 1066 阅读 · 0 评论 -
Java异常&反射常见面试题及答案
Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1] 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3] 。原创 2023-12-22 07:45:00 · 839 阅读 · 0 评论 -
程序员的20大Java集合面试问题及答案
Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1] 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3] 。原创 2023-12-22 07:45:00 · 1183 阅读 · 6 评论 -
程序员的25大Java基础面试问题及答案
Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1] 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3] 。原创 2023-12-22 07:15:00 · 1769 阅读 · 0 评论 -
程序员的56大Java基础面试问题及答案
Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1] 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3] 。原创 2023-12-22 07:00:00 · 958 阅读 · 3 评论 -
程序员的100大Java多线程面试问题及答案
线程是进程内部比进程更小的执行单元(执行流|程序片段),每个线程完成一个任务,每个进程内部包含了多个线程每个线程做自己的事情,在进程中的所有线程共享该进程的资源;原创 2023-12-22 07:00:00 · 1106 阅读 · 0 评论 -
七大主流的HttpClient程序比较
HttpClient,是一款强大的支持HTTP协议的客户端编程工具包。主要功能在于提供一种有效、最新且功能丰富的方式来执行HTTP请求和响应。HttpClient与浏览器有着本质的区别,它并不会缓存内容,也不会处理嵌入在HTML页面中的代码或是错误输入,更不会对不符合HTTP标准的行为进行处理。原创 2023-12-18 22:36:29 · 1137 阅读 · 22 评论 -
由Long类型引发的生产事故
本次问题主要是后端返回的订单编号是Long类型,在特定数值下会造成和前端拿到的orderId不一致,通过orderId再去更新时导致页面上显示的数据没有发生变化,有可能拿着不对的orderId更新到了其他不相关的数据。修改后采用"String"类型传递 orderId可以避免这个问题。实际开发中操作订单状态应该是通过来操作订单表,可以是自增id 雪花id uuid等分布式唯一id,orderId是单独的一列 非主键存储,尽量避免通过orderId操作订单数据。原创 2023-10-04 12:24:56 · 249 阅读 · 4 评论 -
documents4j 文档转换
documents4j 是一个 Java 库,可以将文档转换为另一种文档格式。原创 2023-08-23 20:15:00 · 455 阅读 · 14 评论 -
SpringBoot + MyBatis-Plus构建树形结构的几种方式
树形结构,是指:数据元素之间的关系像一颗树的数据结构。由树根延伸出多个树杈原创 2023-08-20 21:53:52 · 1705 阅读 · 7 评论 -
Spring中循环依赖解决方案
循环依赖是Spring框架中常见的问题之一,当两个或多个类相互引用对方时,就会出现循环依赖的情况。这种情况下,Spring框架无法确定哪个类应该先实例化和初始化,从而导致异常。常见的解决方法有:构造函数注入、setter方法注入、静态工厂方法注入以及使用第三方库等。原创 2023-08-16 21:34:48 · 422 阅读 · 14 评论 -
SpringBoot3 响应式网络请求客户端
WebClient 是Spring WebFlux 模块提供的一个非阻塞的基于响应式编程的进行 Http 请求的客户端工具。完全非阻塞,支持流式处理。原创 2023-07-29 22:22:21 · 1021 阅读 · 6 评论 -
Spring6 AOT 提前编译
AOT 编译能直接将源代码转化为机器码,内存占用低,启动速度快,可以无需 runtime 运行,直接将 runtime 静态链接至最终的程序中,但是无运行时性能加成,不能根据程序运行情况做进一步的优化,AOT 缺点就是在程序运行前编译会使程序安装的时间增加。原创 2023-06-24 15:18:43 · 616 阅读 · 32 评论 -
Spring6 数据校验 Validation
spring validation允许通过注解的方式来定义对象校验规则,把校验和业务逻辑分离开,让代码编写更加方便。Spring Validation其实就是对Hibernate Validator进一步的封装,方便在Spring中使用。原创 2023-06-22 13:11:31 · 1929 阅读 · 19 评论 -
Spring6 i18n国际化
国际化也称作 i18n ,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国际化是通过配置文件来实现的,假设要支撑两种语言,那么就需要两个版本的配置文件。原创 2023-06-20 21:31:18 · 958 阅读 · 16 评论 -
Spring6 JdbcTemplate和事务
数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。原创 2023-06-17 10:54:38 · 3774 阅读 · 48 评论 -
Spring Resources资源操作
Spring 的 Resource 接口位于 org.springframework.core.io 中。 旨在成为一个更强大的接口,用于抽象对低级资源的访问。原创 2023-06-15 21:26:00 · 3127 阅读 · 36 评论 -
Spring6 面向切面(AOP)
AOP(Aspect Oriented Programming)是一种设计思想,是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善,以通过预编译方式和运行期动态代理方式实现,在不修改源代码的情况下,给程序动态统一添加额外功能的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2023-06-14 21:07:42 · 670 阅读 · 33 评论 -
Spring6-IoC(Inversion of Control)控制反转和DI(Dependency Injection)依赖注入,手动实现IOC
在 Spring 中,IoC(Inversion of Control)控制反转是一种新的 Java 编程模式,它将对象的创建和使用分离开来,由容器负责创建和管理对象,而不再由程序员直接创建和管理对象。DI(Dependency Injection)依赖注入是 IoC 的一种实现方式,它允许将对象之间的依赖关系从代码中解耦出来,使得代码更加灵活、可测试、可维护。原创 2023-06-11 22:11:01 · 3414 阅读 · 57 评论 -
Spring IOC基于XML和注解管理Bean(二)
IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。原创 2023-06-11 15:45:14 · 1659 阅读 · 22 评论 -
Spring IOC基于XML和注解管理Bean(一)
IoC 是 Inversion of Control 的简写,译为“ 控制反转 ”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序。原创 2023-06-11 15:32:15 · 1750 阅读 · 29 评论 -
Spring6入门 + Log4j2
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Apache Log4j2是一个开源的日志记录组件,使用非常的广泛。在工程中以易用方便代替了 System.out 等打印语句,它是JAVA下最流行的日志输入工具。原创 2023-05-30 20:18:55 · 1168 阅读 · 25 评论 -
Java Spring概述
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架除了自己提供功能外,还提供整合其他技术和框架的能力。原创 2023-05-29 20:19:35 · 3463 阅读 · 22 评论 -
JDK8-JDK17中的新特性(var类型推断、模式匹配、Record、密封类)
JDK8-JDK17新的语法结构,勾勒出了 Java 语法进化的一个趋势,将开发者从复杂、繁琐的低层次抽象中逐渐解放出来,以更高层次、更优雅的抽象,既降低代码量,又避免意外编程错误的出现,进而提高代码质量和开发效率。原创 2023-05-25 22:36:54 · 2930 阅读 · 33 评论 -
数据结构(顺序结构、链式结构、索引结构、散列结构)
数据结构,就是一种程序设计优化的方法论,研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,目的是加快程序的执行速度、减少内存占用的空间。原创 2023-04-24 21:33:04 · 1749 阅读 · 21 评论 -
JDK8中的新特性(Lambda、函数式接口、方法引用、Stream)
Java 8 (又称为 JDK 8或JDK1.8) 是 Java 语言开发的一个主要版本。 Java 8 是oracle公司于2014年3月发布,可以看成是自Java 5 以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。原创 2023-05-16 22:12:14 · 1883 阅读 · 33 评论 -
如何对第三方相同请求进行筛选过滤
对时间窗口内的用户行为进行合并处理,过滤重复请求、相同操作被执行多次原创 2023-05-10 23:55:26 · 1054 阅读 · 24 评论 -
JDK的版本迭代特性(JDK9 - JDK20)
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。原创 2023-05-09 23:11:04 · 5462 阅读 · 55 评论 -
Java中的反射(通过反射获取类的结构、invoke方法、获取注解)
Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息原创 2023-05-07 22:38:48 · 2445 阅读 · 33 评论 -
JVM(类的加载与ClassLoader、双亲委派机制)
类在内存中完整的生命周期:加载-->使用-->卸载。其中加载过程又分为:装载、链接、初始化三个阶段。原创 2023-05-06 20:55:09 · 1041 阅读 · 24 评论