
java基础
文章平均质量分 70
不如打代码KK
人生做好三件事:锻炼,沟通,学习。
展开
-
Java注解基础
Java 注解是代码中的元数据标签,通过 @interface 关键字定义,用于为程序元素(类、方法、字段等)添加描述性信息原创 2025-03-21 07:30:00 · 448 阅读 · 0 评论 -
Java 反射机制
Java 反射机制允许程序在运行时获取类的信息并操作类或对象的属性、方法和构造器。通过反射,我们可以在运行时动态地创建对象、调用方法、修改属性等,而不需要在编译时知道类的具体信息。Java 反射机制提供了强大的动态操作能力,但同时也带来了性能和安全性的问题。在实际开发中,应根据具体需求谨慎使用反射,避免滥用。原创 2025-03-20 20:45:00 · 269 阅读 · 0 评论 -
jvm中每个类的Class对象是唯一的吗
唯一性条件:同一类 + 同一类加载器 → 唯一Class对象。设计意图:确保类型系统在 JVM 层面的安全性和一致性。原创 2025-03-19 18:15:00 · 747 阅读 · 0 评论 -
Java IO流体系教程
Java IO流体系是Java中处理输入输出操作的核心机制。它涵盖了从文件读写到网络通信等多种场景,为程序与外部数据源之间的数据传输提供了统一的抽象方式。Java IO流主要分为输入流和输出流,用于数据的读取和写入。此外,根据处理数据单位的不同,IO流还可分为字节流和字符流,前者以字节为单位,适用于二进制文件,后者以字符为单位,适用于文本文件。Java IO流体系通过丰富的类和方法,实现了对不同类型的输入和输出操作的支持,是Java编程中不可或缺的一部分。原创 2025-03-17 16:40:26 · 447 阅读 · 0 评论 -
JAVA中的多态性以及它在实际编程中的作用
在Java中,多态性是指一个对象可以具有多种形态。它主要体现在两个方面:编译时多态和运行时多态。原创 2025-03-14 23:39:10 · 434 阅读 · 0 评论 -
idea拉取代码报错,remote: HTTP Basic: Access denied. The provided password or token is incorrect
idea换了个版本后,重新打开项目,发现拉取不下来代码了,报错信息如下但是我打开命令行窗口,直接输入命令git pull却是可以拉取下来的。原创 2025-03-12 20:15:00 · 451 阅读 · 0 评论 -
Java Stream中map与flatMap对比教程
操作输入元素输出元素数量最终结果结构map单个元素1个新元素保持原流结构flatMap单个元素0-N个新元素合并为单一流结构选择原则需要简单转换单个元素 → 使用map()需要展开嵌套结构/生成多个元素 → 使用flatMap()以上代码均可直接复制到Java 8+环境中运行,建议在IDE中实际测试观察输出结果,以加深理解。原创 2025-03-11 19:00:00 · 495 阅读 · 0 评论 -
Java Stream流使用教程
Stream API通过链式调用和Lambda表达式,使集合操作更加简洁高效。优先使用Stream处理集合数据根据场景选择合适操作(中间/终结)复杂操作可拆分为多个步骤注意线程安全问题(并行流时)掌握Stream流将显著提升Java集合处理能力,是现代化Java开发的必备技能!原创 2025-03-11 20:00:00 · 395 阅读 · 0 评论 -
Java设计模式——装饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许用户通过在一个对象上动态地添加职责或行为来增强其功能。这种类型的设计模式属于对象结构型模式,在不需要改变一个对象的内部结构的条件下,给对象动态地增加一些额外的职责。装饰者模式相比生成子类更为灵活。原创 2024-05-15 22:28:15 · 639 阅读 · 0 评论 -
刷题记录——DNA序列
刷题记录——DNA序列关键字:字符串、滑动窗口1.题目描述描述一个 DNA 序列由 A/C/G/T 四个字母的排列组合组成。 G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。在基因工程中,这个比例非常重要。因为高的 GC-Ratio 可能是基因的起始点。给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。DN原创 2022-04-26 23:58:36 · 362 阅读 · 0 评论 -
MyBatis的一级缓存、二级缓存及使用自定义缓存总结
MyBatis的一级缓存、二级缓存及自定义缓存MyBatis是什么我就不多介绍了,在原创 2022-04-21 22:35:03 · 388 阅读 · 0 评论 -
查看Tomcat默认使用堆内存大小
查看Tomcat默认使用堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小2.查看Tomcat堆内存大小查看Tomcat默认使用堆内存大小1.Tomcat默认堆内存大小如果没有配置JAVA_OPTS变量,JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。2.查看Tomcat堆内存大小通过jps找到tomcat的进程id[原创 2022-04-18 23:00:00 · 6447 阅读 · 0 评论 -
mysql开启慢查询日志
mysql开启慢查询日志1、MySQL慢查询日志是什么MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中查询时间超过(大于)设置阈值(long_query_time)的语句,记录到慢查询日志中。long_query_time的默认值是10。2、如何开启MySQL慢查询日志查看slow_query_log变量,默认是关闭的。Last login: Fri Apr 15 16:21:56 2022 from 113.246.155.177[root@VM-8-原创 2022-04-18 11:39:02 · 1934 阅读 · 0 评论 -
Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优
Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优1.在apache-tomcat/bin目录下新建setenv.sh文件2.编辑setenv.sh文件,添加环境变量Tomcat8 设置JAVA_OPTS启动参数,Tomcat服务器调优环境:Centos7,Server version: Apache Tomcat/8.5.5,JDK1.81.在apache-tomcat/bin目录下新建setenv.sh文原创 2022-04-13 22:00:00 · 3853 阅读 · 0 评论 -
java开发中的各种中间件技术
java开发中的各种中间件技术java开发中的各种中间件技术1.什么是中间件2.中间件分类3.在项目中什么时候使用中间件技术4.开发中常用的中间件java开发中的各种中间件技术1.什么是中间件我们平时在应用开发中经常会遇到各种中间件的使用,现在我们经常听到的一句话是“面向消息队列编程”,其中消息队列就是一类中间件。对于初学者而言可能对“中间件”这个专有名词还不太了解。我这里先讲一下中间件出现的背景:一个大型企业同时运行着多个不同的业务系统,这些系统可能基于不同的操作系统、不同的数据库、异构的网络环境原创 2022-04-05 22:04:33 · 9378 阅读 · 0 评论 -
ruoyi cloud框架使用自定义@Xss注解来做Xss校验
使用自定义@Xss注解来做Xss校验使用自定义@Xss注解来做Xss校验1.什么是XSS攻击2.自定义Xss校验注解3.编写自定义校验器4.使用自定义Xss注解4.1 实体类属性上加注解4.2 Controller请求类调用4.3 处理异常使用自定义@Xss注解来做Xss校验1.什么是XSS攻击XSS全称是:跨站脚本攻击(cross site script)。按照国际惯例,命名应该以 CSS 命名,但是CSS与大家熟知的 层叠样式表(Cascading Style Sheets)重名了,因此取名为XS原创 2022-04-02 22:00:00 · 3102 阅读 · 1 评论 -
junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing1.环境信息jdk :jdk1.8junit版本:4.12jar包引用情况:没有使用maven、gradle等,只单独引用了junit-4.12.jar文件报错信息:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing2.解决方法官网说明:JUnit now uses the lat原创 2022-03-29 19:30:00 · 2880 阅读 · 0 评论 -
Spring事务的隔离级别有哪些?
Spring事务的隔离级别有哪些?一、事务读取问题二、事务的隔离级别这是一个在面试过程中经常被问到的问题,要结合数据库来进行回答。先来看一下spring中的源码:public enum Isolation { /** * Use the default isolation level of the underlying datastore. * All other levels correspond to the JDBC isolation levels. * @se原创 2022-02-28 16:23:39 · 562 阅读 · 0 评论 -
java多线程——Future和Callable接口
java多线程——Future和Callable接口作者:微信公众号“不如打代码”Future接口定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。1.Callable接口Callable接口中定义了需要有返回的任务需要实现的方法,接口定义如下:@FunctionalInterfacepublic interface Callable<V> { /** * Computes a result,原创 2022-01-15 22:09:44 · 234 阅读 · 0 评论 -
Mybatis #{}和${}的区别
#{}和${}的区别#{}是占位符,预编译处理;${}是拼接符,字符串替换,没有预编译处理。Mybatis在处理#{}时,#{}传入参数是以字符串传入,会将SQL中的#{}替换为?号,调用PreparedStatement的set方法来赋值。#{} 可以有效的防止SQL注入,提高系统安全性;${} 不能防止SQL注入#{} 的变量替换是在DBMS 中;${} 的变量替换是在 DBMS外...原创 2022-01-05 19:15:00 · 384 阅读 · 0 评论 -
Comparable 和 Comparator的区别?
Comparable 和 Comparator的区别?1.前言Comparable 和 Comparator的区别? 可能有的小伙伴们还不是很清楚,这两个接口都是用于对象比较的。2.Comparable接口Comparable可以认为是一个内比较器,实现了Comparable接口的类有一个特点,就是这些类是可以和自己比较的,至于具体和另一个实现了Comparable接口的类如何比较,则依赖compareTo方法的实现,compareTo方法也被称为自然比较方法。如果开发者add进入一个Collect原创 2021-12-26 23:07:51 · 369 阅读 · 0 评论 -
JVM内存模型——详细介绍下Java虚拟机栈
JVM内存模型——详细介绍下Java虚拟机栈java8 虚拟机规范:https://docs.oracle.com/javase/specs/jvms/se8/html/index.html1.Java虚拟机栈的特点Java虚拟机栈是线程私有的,它的生命周期和线程相同。虚拟机栈描述的是Java方法执行的内存模型: 每个方法在执行的同时 都会创建一个栈帧(StackFrame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。不存在垃圾回收的概念, 也就是说不会内存溢出,发生OOM, 但原创 2021-12-17 20:00:00 · 1556 阅读 · 0 评论 -
Java设计模式——工厂模式
Java设计模式——工厂模式Java设计模式——工厂模式1 概述2 简单工厂模式2.1 结构2.2 实现2.4 优缺点Java设计模式——工厂模式1 概述需求:设计一个咖啡店点餐系统。设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功能。具体类的设计如下:在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严原创 2021-11-25 22:52:50 · 238 阅读 · 0 评论 -
Java设计模式——单例模式
Java单例设计模式单例设计模式1 单例模式的结构2 单例模式的实现单例设计模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。1 单例模式的结构单例模式的主要有以下角色:单例类。只能创建一个实例的类访问类。使用单例类2 单例模式的原创 2021-11-23 23:19:07 · 135 阅读 · 0 评论 -
Java开发软件设计原则(开闭原则、里氏代换原则 solid)
Java开发软件设计原则软件设计原则1 开闭原则2 里氏代换原则3 依赖倒转原则4 接口隔离原则5 迪米特法则6 合成复用原则2020年年底在b站上跟着某机构的设计模式的课程复习了一遍,现将一些软件设计原则整理一下供参考。大家学习的时候也可以去b站找找相关的资料学习。软件设计原则在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据下面的软件设计原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。1 开闭原则对扩展开放,对修改关闭。在程序原创 2021-11-21 23:19:05 · 326 阅读 · 0 评论 -
thingsboard物联网平台编译安装一步到位
物联网平台thingsboard编译一步到位物联网平台thingsboard编译一步到位1.thingsboard简介2.clone项目3.前置准备3.1 安装JDK113.2 安装Nodejs3.3 将pkg-fetch放入本地缓存3.4 配置maven镜像地址4.编译运行物联网平台thingsboard编译一步到位先上编译结果,耗时18分39秒1.thingsboard简介ThingsBoard是一个开源物联网平台,可实现物联网项目的快速开发、管理和扩展。ThingBoard是基于Apache原创 2021-11-14 09:19:13 · 10251 阅读 · 4 评论 -
java.util.concurrent.atomic原子操作类
java.util.concurrent.atomic原子操作类java原子操作类1.原子操作类2.AtomicInteger的基本方法2.1 创建一个不传值的,默认值为02.2 获取和赋值2.3 compareAndSet方法2.4 getAndAdd、AddAndGet、getAndDecrement和DecrementAndGet3.多线程测试4.AtomicReference详解5.CAS可能存在ABA的问题5.1 AtomicStampedReference原理5.2 AtomicMarkable原创 2021-11-13 13:02:27 · 1238 阅读 · 0 评论 -
设计模式概述
1,设计模式概述接下来准备复习下23种设计模式,设计模式在工作中可以帮助我们编写出优雅的代码。在阅读一些优秀的开源框架1 软件设计模式的产生背景"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。19原创 2021-11-08 23:55:38 · 123 阅读 · 0 评论 -
UML类图
UML类图1.简介类图展示了系统的逻辑结构,类和接口的关系。 类图表示不同的实体(人、事物和数据)如何彼此相关,显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类,比如摇滚乐队、CD、广播剧,或者贷款、住房抵押、汽车信贷及利率的抽象描述。类图还可用于表示实现类,实现类就是程序员要编写的类。实现类图与逻辑类图可能会用来描述一些相同的类。然而,实现类图与逻辑类图不会使用相同的描述属性。类图是一个分为三个部分的矩形。最上面的部分显示类的名称,中间部分显示类的属性,最下面的部分原创 2021-11-05 23:19:11 · 691 阅读 · 0 评论 -
Java 泛型总结
Java 泛型总结Java 泛型了解么?什么是类型擦除?介绍一下常用的通配符?Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。Java 的泛型是伪泛型,这是因为 Java 在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型擦除 。List<Integer> list = new ArrayList<>()原创 2021-09-04 22:38:00 · 158 阅读 · 0 评论