自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Java中的JUC

如何定义和修改共享资源的状态(如锁的持有、信号量的许可数)。:当线程获取资源失败时,如何安全地阻塞线程;当资源释放时,如何唤醒等待的线程。:如何维护等待资源的线程队列,保证线程按公平 / 非公平策略获取资源。AQS 通过模板方法模式将这些共性逻辑抽象出来,同步工具只需重写特定方法(如获取 / 释放状态)即可快速实现。

2025-11-16 11:22:06 804

原创 Java中的线程池

TIDYING:整理状态,所有的任务都执行完毕后(也包括任务队列中的任务执行完),当前线程池中的活动线程数降为 0 时的状态。后,若存在未处理中断逻辑的线程(即线程持续执行任务,不响应中断),那么该线程依然后执行,那么线程池处在stop状态,若该线程一直不结束,则线程池会一直处于stop状态。的优点在于简单易用,但 由于所有任务都是由同一个线程来调度,因此所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个 任务的延迟或异常都将会影响到之后的任务。

2025-11-04 03:43:34 844

原创 JVM中的垃圾回收算法和垃圾回收器

从根对象(如栈引用、静态变量等)出发,遍历所有可达对象并标记为 “存活”。:遍历整个内存区域,回收所有未被标记的对象(即垃圾),释放其占用的内存。实现简单,不需要移动对象。效率低,记和清除过程都需要遍历所有对象,耗时较长,尤其在对象数量多的时候。回收后会产生大量不连续的内存碎片,可能导致后续大对象无法分配内存(即使总空间足够)。

2025-10-23 07:29:04 998

原创 java后端面试经历

建立一般索引,where后面的条件百分号在前面的不走索引。建立全文索引使用全文索引进行查询。

2025-10-16 05:13:15 421

原创 MySQL的存储引擎

MySQL 的存储引擎是数据库底层用于管理数据存储、索引、事务、锁机制等核心功能的组件,不同存储引擎有不同的特性,适用于不同的业务场景。MySQL 支持多种存储引擎(可通过查看),其中最常用的是 InnoDB、MyISAM,此外还有 Memory、CSV、Archive 等特殊场景引擎。

2025-10-14 03:06:29 626

原创 Mysql事务、隔离级别、日志、分库分表

事务隔离级别中可能出现的一种数据一致性问题,指的是一个事务读取到了另一个未提交事务修改的数据。如果未提交的事务后续发生回滚,那么之前读取到的数据就是 “脏数据”(无效数据)。MySQL 事务隔离中一种数据一致性问题,指的是在同一个事务内,多次读取同一批数据时,得到的结果不一致(后一次读取到了其他已提交事务的修改)。MySQL事务隔离中一种数据一致性问题,指的是同一事物内,两次执行相同的查询(通常是范围查询)时,第二次查询突然多出或减少了一些第一次查询不存在的记录(这些记录是其他已提交事务新增或删除的)。

2025-10-12 06:09:24 265

原创 SQL优化

表示实际使用的索引中被利用的字节长度,用于反映索引被有效使用的程度,帮助判断联合索引的利用情况(即是否使用了联合索引中的部分或全部字段)。:MySQL 5.6+ 引入的优化,指索引扫描时,先在存储引擎层根据索引条件过滤部分数据(而非全量读取后在服务器层过滤),减少回表数据量。表示一种通过非唯一索引进行匹配的查询访问类型,用于单表查询或多表关联时,通过索引匹配到多行数据(但匹配范围明确,效率较高)。访问系统表的时候,一般是这个类型,一般也很难优化到这个程度,通常表示当前查询访问的是系统表(如。

2025-10-08 03:10:49 927

原创 Docker启动Mysql并设置数据卷

v /denglianbin/mysql/data:/var/lib/mysql——存放数据库数据文件。-v /denglianbin/mysql/conf:/etc/mysql/conf.d——存放配置文件。-v /denglianbin/mysql/log:/var/log/mysql——存放日志目录。-e MYSQL_ROOT_PASSWORD=123456—设置Mysql的密码。--name dengsql—设置容器的的名字。

2024-12-20 13:39:12 280

原创 Ubuntu配置不同版本的JDK

在2步骤中配置的JAVA_HOME的路径为/usr/local/jdk,接下来就可以配置/usr/local/jdk指向1步骤 的/usr/lib/jvm路径三种不同版本的软连接。在上面三条命令中,/usr/local/jdk和/usr/lib/jvm/中间我们添加java字段,说明我们是通过java软连接将二者联系起来,下面查询的时候也必须是java字段。1.使用命令行下载openjdk,下面三条命令下载三种不同版本的jdk,默认下载路径为 /usr/lib/jvm/在上面环境变量中增加一下内容。

2024-12-17 19:56:29 514

原创 逐步演示强引用、软引用和弱引用

3.但我们把软引用指向4MB的byte数组放入list时,就可以多次放入list数组,并不会出现像前面强引用那样报错,这是因为我们此时的byte数组是软引用,当我们第二次将byte数组放入list时,虚拟机发现内存不足,就会进行垃圾回收,将我们第一次放入的list中的软引用byte数组给回收了,内存就足够了。软引用:当内存空间充足时,即使垃圾回收器扫描到了软引用指向的对象也不会进行垃圾回收,但是当内存空间不足时,软引用指向的对象就会被回收。一般我们平时所用的新建的对象都是强引用指向的对象。

2023-04-06 05:48:23 274

原创 Kruskal算法代码实现

克鲁斯卡尔算法代码实现

2023-04-05 16:24:31 290

原创 骑士周游问题,马踏棋盘算法

骑士周游 马踏棋盘

2023-04-05 09:10:02 239

原创 懒惰式的初始化

懒惰初始化

2023-03-13 01:46:47 191

原创 JDBC事务例子(学习笔记)

JDBC事务演示

2022-11-22 16:05:01 152

原创 Statement和PreparedStatement的不同

解决SQL注入现象

2022-11-21 23:48:25 224

原创 Java连接数据库(自学笔记)

JDBC连接数据库

2022-11-20 21:51:09 2867

原创 java通过反射机制获取注解

【代码】java通过反射机制获取注解。

2022-10-23 15:42:59 766

原创 通过反射机制创建对象,调用无参构造和有参构造方法(学习记录)

【代码】通过反射机制创建对象,调用无参构造和有参构造方法(学习记录)

2022-10-23 12:19:49 392

原创 反射机制调用方法(学习记录)

【代码】反射机制调用方法(学习记录)

2022-10-23 11:22:46 113

原创 java通过反射机制,反编译一个类的属性和访问一个对象的的属性(学习记录)

只要有一个类的名字,就可以反编译出这个类的属性信息。2.访问一个java对象的属性,包括给属性赋值和获取值。1.反编译一个类的属性。

2022-10-23 07:27:52 293

原创 Java之反射机制的灵活性(学习记录)

通过反射机制可以只修改配置文件就可以做到不同对象的实例化。

2022-10-22 07:17:30 133

原创 java的简单定时器

【代码】java的简单定时器。

2022-10-18 10:42:33 218

原创 java通过Callable接口实现多线程

【代码】java通过Callable接口实现多线程。

2022-10-18 10:41:48 240

原创 获取再1970年的毫秒数

获取时间

2022-08-04 02:43:55 763

原创 java中获取日期 日期和字符串互转

日期字符串互转

2022-08-04 02:21:07 1854

原创 Java中int、String和Integer类型的互相转化

Java中int、String和Integer类型的互相转化

2022-08-03 05:20:33 174

原创 整数型常量池

java中为了提高程序的执行效率,将-128到127之间的所有包装类提前创建好,放到了方法区的常量池中,目的是这个区间的数字不需要再new对象,直接从整形常量池中取出来。

2022-08-02 03:25:54 458

原创 C++中namespace后面没有跟名字

今天看项目时,发现一个namespace没有命名。就去查了一下这个用法。举例:namespace{int i;int add(int a,int b);}上边的就相当于static int i;static add(int a,int b);相当于声明的是静态全局变量...

2022-05-25 13:51:49 1195

原创 刷题思路很乱,总结经验

链接:力扣https://leetcode.cn/problems/one-away-lcci/刚看到这个题,思路是写三个函数,判断三种情况。想了一下又觉得有点麻烦,去看了题解,真是大牛太多了,插入和删除可以看成是一样的,长的字符串删除一个变成短的,短的增加一个就变成长的。遍历字符串,逐个比较,用一个flag记录不同的次数。class Solution { public boolean oneEditAway(String first, String second) { ...

2022-05-13 23:23:39 158

原创 Java中8种包装类型

Java为8种基本的数据类型对应提供了8种包装类,包装类属于引用数据类型。基本数据类型 包装类型 byte java.Lang.Byte short java.Lang.Short int java.Lang.Integer long java.Lang.Long float java.Lang.Float double java.Lang.Double...

2022-05-12 18:33:26 1631

原创 Java中StringBuffer和StringBuilder的用法和区别

区别:StringBuffer类中的方法都有synchronized关键字修饰,表示StringBuffer在多线程环境下运行是安全的。StringBuilder类中的方法无synchronized关键字修饰,表示StringBuffer在多线程环境下运行是不安全的。用法:由于Java中的string类的对象是不可变的(被final修饰),在做字符串的的拼接删除时会耗费极大空间,所以Java中又提供了StringBuffer和StringBuilder类,其对象是可以改变大小的,默认容量是1

2022-05-12 17:17:14 904

原创 Java中的String类:构造方法和常用的方法

一.构造方法1. 直接使用字符串初始化。//"hello"对象存放在方法区的字符串常量池中,s1和s2在栈区中,存放的是"hello"的地址,故两者存放的内//容相同String s1="hello";String s2="hello";2. new String(字符串)构造方法。"hello"对象存放在方法区的字符串常量池中;new String()新建对象在堆区,有两次,所以有两个对象在堆区中;s1和s2在栈区。s1和s2分别存储的是堆区中两个对象的地址,堆区中两个Strin.

2022-05-06 01:45:56 4020 2

原创 LeetCode刷题三数之和,三数之最接近数,四数之和

题目链接;1.力扣2.力扣​​​​​​3.力扣思路:将数组排序,然后是循环+双指针这里展示四数之和的代码。class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> ans= new ArrayList<List<Integer>>();

2022-05-04 13:14:39 122

原创 Java中的冒泡排序,选择排序和二分法

对于排序,Java中的Arrays类提供了sort()方法,对于二分法,Java中的Arrays类提供了binarySearch()方法。这些用起来都很方便。import static java.util.Arrays.binarySearch;public class ArrayTest07 { public static void main(String[] args) { int[] arr ={65,43,7,89,31,576,12,45,68,32,14,34}

2022-05-03 13:20:38 417

原创 Java用数组模拟栈,栈中可以存储任意引用类型的对象

由于可以存储任意引用类型的对象,所以数组定义为Objectpublic class ArrayTest06 { public static void main(String[] args) { String s1="1234"; MyStack ms= new MyStack(new Object[4],-1);//初始化栈,可以存放四个对象 Object o=new Object();

2022-05-02 13:32:10 660

原创 Java中的数组复制:System.arraycopy()方法

arraycopy()方法中有五个参数:第一个:源数组第二个:源数字的复制起始位置第三个:目标数组第四个:数字的起始位置第五个:复制的长度public class ArrayTest04 { public static void main(String[] args) { int[] src={1,2,3,4,5}; int[] dest= new int[20]; System.arraycopy(src,1,dest,3,

2022-05-01 14:41:26 1354

原创 Java中关于object中间的finaliz()方法

1.在object类中源代码如下: protected void finalize() throws Throwable{}2.可以看到finalize()方法只有一个方法体,里面没有代码,而且这个方法体是被protected修饰的。3.这个方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法。4.finalize的执行时机:当一个java对象即将被垃圾回收器回收时,垃圾回收期负责调用finalize方法。5.finalize()方法实际上是为程序员准备的一个时机。垃圾回收销毁时机,

2022-04-29 12:41:43 763

原创 Java中static静态代码块

Java中静态代码块、代码块以及构造函数执行顺序详解_大猫的Java笔记(公众号同号)的博客-优快云博客_代码块和静态代码块执行顺序

2022-04-29 12:19:47 416

原创 JAVA中访问控制权限:public、protected、default、private

public权限最大,同一个类中,同一个包中,子类中的都可以访问,其他包下的子类也可以访问。反正就是一句话,啥地方都有可以访问,但记住一点,前提是一定要导入包,哈哈哈。private权限最小,只在本类中可以访问。总之一句话,我不碰被private修饰的,碰了其实也没关系,反正报错,后面可以改,嘿嘿嘿。接下来时protected和default,被这两个修饰的同一个类中,同一个包中都是可以访问的。区别在于不同的包中,protected修饰的了可以在子类中使用,default不能子类中使用,子类的实例变

2022-04-18 10:20:54 1771

空空如也

空空如也

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

TA关注的人

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