
Java基础
记录Java学习中的基础知识及遇到的问题
xiucai_cs
speak too less, show your code
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java ReentrantLock 核心用法
是 Java 中处理并发问题的强大工具,用于解决多线程下的竞态条件(如count++操作导致的数据不一致)。本文旨在展示其最核心、最标准的用法。原创 2025-08-20 17:30:18 · 213 阅读 · 0 评论 -
深入理解“看门狗”机制:一种优雅的自动续期模式
在分布式系统中,资源(如分布式锁)的租约管理是一个核心挑战。为锁设置固定过期时间,可能因业务执行超时而导致锁提前释放;若不设过期时间,又可能因服务宕机而造成永久死锁。自动续期机制,即“看门狗”(Watchdog),是应对此问题的标准解决方案。本文将通过一个极简的实现,深入剖析该模式的内在机理。原创 2025-08-18 17:44:44 · 369 阅读 · 0 评论 -
布隆过滤器原理与Spring Boot实战
本地实现:Guava BloomFilter,适合单机场景分布式实现:Redis + Redisson,适合集群环境核心应用:缓存穿透防护、数据去重、快速存在性检查合理使用布隆过滤器能显著提升系统性能,但要注意误判特性和参数调优。原创 2025-08-06 14:00:57 · 382 阅读 · 0 评论 -
【Java】用户线程和守护线程概念及示例代码
Java 线程,用户线程和守护线程的区别原创 2025-07-15 10:28:18 · 417 阅读 · 0 评论 -
【Java】查看当前 Java 使用的垃圾回收器
【代码】【Java】查看当前 Java 使用的垃圾回收器。原创 2025-04-13 20:50:01 · 438 阅读 · 0 评论 -
【Java】将 Java 代码打包成 Jar 包
首先,确保已经安装了 JDK。然后在本地终端中进入 Java 源代码所在的目录,编译代码。为了让 Jar 包能够自动找到主类,需要创建一个。注意 Main-Class 下面必须有一个换行。这会在当前目录下生成。打包成 Jar 包。这会在当前目录下生成。原创 2024-09-05 15:53:58 · 1718 阅读 · 0 评论 -
Spring Bean 的生命周期
【代码】Spring Bean 的生命周期。原创 2024-06-05 21:07:27 · 559 阅读 · 0 评论 -
【Java】四种方案实现限流
详细介绍了四种常见的限流算法:固定窗口、滑动窗口、漏桶和令牌桶。每种算法都有具体的代码示例和适用场景,帮助读者理解和选择最适合自己的限流策略。原创 2023-12-16 21:14:13 · 4515 阅读 · 1 评论 -
【Java】线上 CPU 100% 问题排查
Java 面试题中,服务器 cpu 100% 的排查方案原创 2023-08-24 16:32:18 · 753 阅读 · 0 评论 -
【题解】每日温度
力扣的题目:每日温度原创 2022-11-24 17:53:08 · 250 阅读 · 0 评论 -
【SpringBoot】Controller中的POST请求,请求参数不写VO
SpringBoot post请求,不写VO原创 2022-11-21 17:17:46 · 1062 阅读 · 0 评论 -
【多线程/线程池】项目中实际应用场景
多线程/线程池的应用场景原创 2022-07-05 20:59:48 · 2852 阅读 · 0 评论 -
【SpringBoot】线程池自定义配置
SpringBoot使用线程池原创 2022-07-05 08:53:38 · 1420 阅读 · 0 评论 -
【SpringBoot】打印项目的启动地址
通过简单的配置,达到SpringBoot打印启动地址的目的。原创 2022-07-02 19:47:23 · 936 阅读 · 0 评论 -
【Java】高并发下如何防止库存超发
三种方案,如何防止高并发下的库存超发原创 2022-06-18 17:59:14 · 6539 阅读 · 1 评论 -
【Java】三种方式快速统计代码运行时长
方法一(推荐)使用apache的包import org.apache.commons.lang3.time.StopWatch;public class tmpTest { public static void main(String[] args) { //初始化 StopWatch stopWatch = new StopWatch(); stopWatch.start(); Math.sqrt(1.44原创 2022-05-27 14:18:37 · 2917 阅读 · 0 评论 -
【Git】撤销分支的合并Merge
背景某次,因为蛋疼的原因,不小心把不该合并的分支合到了dev或者master分支,影响到了需求上线或其他。这时候就需要撤销某次的合并了。解决方案方案一1、找到最后一次提交到master分支的commit_id,即merge前的commit_id,也就是目标要回退到的commit_id。本图为Idea 2021.3 版本查看commit_id的方式。(点开git提交历史,查看代码改动的时候,左边的剪头指的那个)2、在当前分支,打开终端,执行命令回退 git reset --hard comm原创 2022-05-13 21:11:03 · 44101 阅读 · 1 评论 -
【设计模式】适配器模式样例与用法介绍
一、前言建议把样例代码都实际的敲一遍,加深理解二、场景介绍本例子采取的是转换电压时候的样例,通过适配器将110V和220V转换为我们苹果的超级快充:5V三、代码样例3.1 电压的输出接口public interface AC { int outputAC();}3.2 110V输出的实现类public class AC110 implements AC { public final int output = 110; @Override pub原创 2022-04-25 08:58:55 · 2519 阅读 · 0 评论 -
【Java】堆和栈的区别
功能不同栈内存是用来存储局部变量和方法调用的。堆内存是存储Java中的对象。无论是成员变量、局部变量还是类变量、他们都是指向的对象都是存储在堆内存中。共享性不同堆内存是线程私有。堆内存是所有线程共有的。异常错误不同栈内存不足: java.lang.StackOverFlowError堆内存: java.;ang.OutOfMemoryError空间大小栈的空间远远小于堆。存取速度不同一般来说,栈的存取速度是大于堆的。...原创 2022-04-16 18:56:30 · 278 阅读 · 0 评论 -
【日志】@Slf4j 快速上手指南
结果展示使用方式类上加注解: @Slf4j引入依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version></dependency><dependency> <groupId>or原创 2022-03-22 20:28:20 · 1144 阅读 · 0 评论 -
【IDEA】插件推荐(效率++)
大大提升效率的IDEA插件推荐原创 2022-03-03 20:42:08 · 4193 阅读 · 0 评论 -
【Java】保留两位小数(不四舍五入)
前言: 特殊的需求,需要用到保留两位小数,但是不进行四舍五入。Code:public class Test { public static void main(String[] args) { System.out.println(formatDecimal(0.26636656)); } /** * 不四舍五入保留小数点后两位的方法 */ public static String formatDecimal (double valu原创 2021-07-20 09:59:53 · 2559 阅读 · 1 评论 -
【Java】Lambda表达式使用教程
为什么使用lambda(匿名函数)?可以对接口有一个非常简洁的实现例子:/** * 测试lambda表达式 */public class Program { public static void main(String[] args) { //1.使用接口的方式实现 Comparator comparator = new Mycomparator(); //2.使用匿名内部类的方式实现 Comparator c..原创 2021-07-02 09:53:59 · 429 阅读 · 0 评论 -
SpringBoot项目配置日志(控制台打印sql)
在application.yml(application.properties)添加注意com.xxx.webapp.dao是你dao(mapper)的路径logging: level: com.xxx.webapp.dao: DEBUGlogging.level.com.xxx.webapp.dao=debug在控制台就可以正常打印sql了原创 2021-06-23 09:28:24 · 2727 阅读 · 0 评论 -
PageHelper(分页助手)使用教程
前言:基于SSM(或者SpringBoot)使用的,可以快速完成分页的需求。使用步骤导入对应的包(pagehelper),下面是对应的pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s原创 2021-06-20 21:13:48 · 12706 阅读 · 1 评论 -
Java学习路线
前言: 在Java学习的过程中不迷茫源文件地址: 点我原创 2021-03-27 08:26:54 · 117 阅读 · 0 评论 -
【java】管理系统
实现的功能:简单的功能列表查询登录添加删除修改复杂的功能删除选中分页查询复杂的条件查询项目地址:点我效果:原创 2021-02-20 23:08:55 · 162 阅读 · 0 评论 -
【javaee】后端生成随机验证码发送到前端(简单小案例)
Code:/** * 随机生成验证码 */@WebServlet("/checkcodesverlet")public class CheckCodeSverlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int width = 100原创 2021-02-15 13:20:04 · 702 阅读 · 2 评论 -
【javaee】前端_后端_数据库_mysql_JDBC_连接池_案例
项目结构:项目源文件:点我效果:原创 2021-02-14 20:30:17 · 321 阅读 · 1 评论 -
【java】文件IO操作
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩), 计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件"stud"中Code:package test;import java.util.*;import java.io.*;public class test { public static void main(String[] args) { Scanner in = new Scanner(System.in);原创 2021-01-16 15:02:23 · 143 阅读 · 0 评论 -
【java】c/c++中的结构体在java中使用
前言:通过java中类代替c语言中的数组,从而实现C/C++中的结构体操作定义:// 类<-->结构体class student{ public int id; public String name; public int Chinese; public int English; public int math;}调用: student[] stu = new student[3]; System.out.pr原创 2021-01-16 14:57:43 · 1782 阅读 · 0 评论 -
【java】打印出杨辉三角形(数组法)
题目:打印出杨辉三角形(要求打印出10行)Code:package test;//import java.util.*;public class test { public static void main(String[] args) { int n = 11; // n-1即为需要打印的杨辉三角的行数 int[][] arr = new int[n][n]; // 定义一个二维数组并全部将他们赋值原创 2021-01-16 11:41:20 · 294 阅读 · 0 评论 -
【java】找出1000以内的所有完数
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数Code:package test;import java.util.*;public class test { public static void main(String[] args) { int sum; // 计算因子的和 for (int i = 1; i <= 1000; i++) // 外循环计算的是范围原创 2021-01-16 00:01:46 · 638 阅读 · 0 评论 -
【java】统计出其中英文字母、空格、数字和其它字符的个数
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。Code:package test;import java.util.*;public class test { public static void main(String[] args) { Scanner in = new Scanner(System.in); int English=0, space=0, digital=0, others=0; Syste原创 2021-01-15 23:56:51 · 226 阅读 · 0 评论 -
【java】求其最大公约数和最小公倍数。
题目:输入两个正整数m和n,求其最大公约数和最小公倍数Code:package test;import java.util.*;public class HelloWorld { public static int t; // 全局变量 public static void main(String[] args) { Scanner in = new Scanner(System.in); int m, n; int max原创 2021-01-15 23:29:57 · 297 阅读 · 0 评论 -
【Java】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。Code:package test;import java.util.Scanner;public class test { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("请输入成绩: "); String r原创 2021-01-15 15:56:56 · 930 阅读 · 0 评论 -
【java】分解质因数
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5.Code:package test;import java.util.Scanner;public class test { public static void main(String[] args) { System.out.print("请您输入一个待分解的正整数: "); Scanner in = new Scanner(System.in); int n = in.nextInt(); fenj原创 2021-01-15 00:08:49 · 204 阅读 · 0 评论 -
【java】水仙花数
题目:打印出所有的"水仙花数”,所谓"水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例 如:153是一个"水仙花数”,因为153=1的三次方+5的三次方+3的三次方。Code:package test;//import java.util.Scanner;public class test { public static void main(String[] args) { int x=0, s=0, t; // x表示的是当前的最后一位数字,s代表的每位的立方 Syst原创 2021-01-14 23:28:41 · 201 阅读 · 0 评论 -
【java】自定义类 类调用 java版结构体 java.time.*
前言: 自定义类模板,java版的结构体是怎么定义的调用的,可以参见下面代码。Code:package test;import java.time.*;//import java.util.Scanner;public class test { public static void main(String args[]) { Employee[] staff = new Employee[3]; // 定义数组的方式 // 相当于给结构体赋值了 staff[0] = ne原创 2021-01-07 21:40:00 · 384 阅读 · 0 评论 -
【java】输出素数
问题:判断101-200之间有多少个素数,并输出所有素数。(程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数, 反之是素数。)Code:package test;//import java.util.Scanner;public class test { public static void main(String args[]) { int sign = 1; int sum=0; // 统计素数的个数 for (int原创 2021-01-07 18:16:49 · 942 阅读 · 0 评论