自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (3)
  • 收藏
  • 关注

原创 栈的压入、弹出序列

栈的压入、弹出序列

2022-08-20 19:22:19 202 1

原创 包含min函数的栈

包含min函数的栈

2022-08-19 21:41:29 185

原创 顺时针打印矩阵

顺时针打印矩阵

2022-08-19 10:31:12 158

原创 对称的二叉树

对称的二叉树

2022-08-18 11:29:17 96

原创 二叉树的镜像

二叉树的镜像

2022-08-17 10:48:23 164

原创 树的子结构

树的子结构

2022-08-15 10:07:37 90

原创 合并两个排序的链表

合并两个排序的链表

2022-08-13 22:23:34 128

原创 链表的反转

反转链表

2022-08-12 16:59:40 133

原创 链表中环的入口结点

链表中环的入口结点

2022-08-12 12:56:52 125

原创 链表中倒数最后k个结点

链表中倒数最后k个结点

2022-08-11 12:29:18 129

原创 synchronized 能否被中断?

**结论:**已经获取到锁的能被中断,正在等待锁的不能被中断。如:运行结果:这里线程 A 获取到锁后被中断了。又如:线程 A 会一直处于等待状态,并不会被中断。

2022-07-03 19:25:57 764

原创 数据库索引的优缺点

优点 * 提高数据检索效率,降低 IO 成本 * 唯一索引可以保证数据的唯一性 * 加速表和表之间的连接,对于有依赖关系的子表和父表联合查询时,可以提高查询速度 * 减少查询中分组和排序的时间,降低 CPU 消耗缺点 * 创建和维护索引需要耗费时间 * 索引需要占用磁盘空间 * 降低了数据更新的速度,因为对数据进行更新时,索引也要动态地维护

2022-06-01 14:47:38 751

原创 InnoDB 和 MyISAM 的区别

InnoDB 支持外键和事务,MyISAM 不支持InnoDB 支持行锁和表锁,MyISAM 只支持表锁InnoDB 有重启后的崩溃恢复功能 (基于事务)MyISAM 只缓存索引,不缓存真实数据;InnoDB 不仅缓存索引还缓存真实数据,对内存要求较高,且内存大小对性能有决定性的影响数据量较小,且操作多为插入和查询时,MyISAM 性能高一些MyISAM 针对数据统计有额外的变量存储,故 count(*) 的查询效率很高数据文件结构InnoDB:表名.frm (存储表结构,8.0 时被合并.

2022-05-31 17:13:56 238

原创 1.8 ConcurrentHashMap 总结

底层结构Node 数组 + 链表 + 红黑树原理synchronized + CAS构造方法public ConcurrentHashMap(int initialCapacity) { if (initialCapacity < 0) throw new IllegalArgumentException(); int cap = ((initialCapacity >= (MAXIMUM_CAPACITY >>> 1))

2022-05-29 19:36:23 123

原创 1.7 ConcurrentHashMap 总结

底层结构Segment 数组,每个 Segment 对象中包含一个 HashEntry 数组,数组元素可以是链表原理分段锁(Segment 继承自 ReetrantLock)构造方法public ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)计算 Segment 数组的长度 ssize:大于等于 concurrencyLevel 的最小 2 的次幂;记录 segmentShift 和

2022-05-28 17:15:21 170

原创 Java HashMap 总结 (1.7/1.8)

底层结构1.7:数组 + 链表1.8:数组 + 链表 + 红黑树put 方法流程1.7判断数组是否已初始化,没有则进行初始化(容量默认是16,若在构造方法中指定了则为大于等于指定容量的最小 2 的次幂)计算下标,若 key 为 null 则下标为 0,key 不为 null 时下标为 hash & length - 1,其中 hash 值通过 key.hashCode() 与哈希种子计算得到调用 addEntry 方法,先判断是否需要扩容,扩容条件为:元素数量(插入前) >=

2022-05-27 18:18:05 271

原创 Java List 的 remove 方法

Java List 的 remove 方法有两个重载,一个接收 int 型参数(通过下标删除),一个接收 Object 型参数(通过元素删除)。对于 List<Integer>,如果传入一个整型字面值,会删除对应下标处的元素,如:public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); l

2022-03-17 13:28:29 15237 2

原创 Java instanceof 运算符

Java 的 instanceof 运算符可以用来判断一个对象是不是某个类(接口)的实例。注意点:左边必须是引用类型,否则编译不通过;左边对象的编译时类型必须与右边的类相同或有继承关系,否则编译不通过;右边的类不能带泛型的类,否则编译不通过(泛型擦除,运行时没有泛型信息);运行时,若左边对象不为 null 且强转为右边的类型时没有抛出异常,则返回 true,否则返回 false。参考:https://blog.csdn.net/Dream_Weave/article/details/1056

2022-03-17 08:50:17 349

原创 关于 Spring MVC 中 Model、ModelMap 和 Map

其实是同一个对象,如:@Controllerpublic class TestController { @ResponseBody @GetMapping("/test") public String test(Model model, ModelMap modelMap, Map map) { System.out.println(model == modelMap); System.out.println(model == map);

2022-02-26 13:39:42 387

原创 Spring 使用自动装配的同时手动赋值会怎么样?

在 Spring 中我们可以使用自动装配来初始化对象的属性,如果我们使用 autowire 的同时又通过 property 手动为属性赋值时会怎么样呢?(xml 配置方式)答案是:只会执行手动赋值。如:public class Dog { private String name; public String getName() { return name; } public void setName(String name) {

2021-11-19 22:52:58 231

原创 Markdown 基础语法

Markdown 基础语法(Typora)1 结构类操作1.1 多级标题语法: # + 空格 + 文字 (几个 # 代表几级标题,最多六级)快捷键: 切换级别 Ctrl + 1~6 清除级别 Ctrl + 0 增加/减小级别 Ctrl + +/-例:# 一级标题一级标题## 二级标题二级标题1.2 列表1.2.1 有序列表语法: 数字 + . + 空格 + 文字 (按回车自动在下一行添加递增序号,按方向键 “下” 则跳到下一行当不自动添加序号)快捷键: Ctrl + Shi

2021-11-02 10:53:16 166

原创 Kotlin可变长参数与Java对比

在Java中,可变长参数会被看成数组,我们甚至可以直接传入一个数组作为实参:public class Test { public static void printValue(String... strings) { for (String str : strings) { System.out.print(str); } } public static void main(String[] args) {

2021-04-29 21:36:58 254 1

原创 【AI文字识别】HarmonyOS Codelab挑战赛记录

打开 DevEco Studio,点击 Create HarmonyOS ProjectDevice选择 Phone,Template选择 Empty Feature Ability(Java),点击 next编辑项目名、保存路径点击 finish目录结构:在 “resources\base\media” 目录下添加8张jpg图片(分别命名为1-8.jpg)布局样式:base/graphic/background_ability_main.xml<?xml version

2021-04-25 13:25:43 135

原创 【图片旋转】HarmonyOS Codelab挑战赛记录

打开 DevEco Studio,点击 Create HarmonyOS ProjectDevice选择 Phone,Template选择 Empty Feature Ability(Java),点击 next编辑项目名、保存路径点击 finish准备一张像素尺寸为1024*768的图片,放到 ImageDemo\entry\src\main\resources\base\media目录下:修改布局文件 ability_main.xml<?xml version="1.0" en

2021-04-25 09:17:10 205 1

原创 【模块-Java布局】HarmonyOS Codelab挑战赛记录

下载Codelab起步应用https://gitee.com/openharmony/codelabs/tree/master/ComponentCodelab解压文件,用DevEco Studio打开ComponentCodelab:点击Tools -> HVD Manager,跳转到登录页面:点击允许,出现模拟器列表:点击 “P40” 右边的三角符号,打开模拟器:点击右上角的三角符号运行:此时点击上面的文字没有反应,因为我们还没有添加事件响应,接下来修改代码:TabLis

2021-04-25 08:43:23 241

原创 Java可变长参数

当我们不确定传入方法的参数个数时怎么办呢?我们可以使用数组,不过,Java为我们提供了一种更简便的写法:可变参数。定义可变参数很简单,只需要在形参的类型与参数名之间加上 “…” 即可,如:public class Test { static void printInt(int... intVal) { for (int val : intVal) { System.out.print(val); } System.out.

2021-04-16 19:31:54 716 1

原创 Java中属性和静态方法能被重写吗?

不能。在子类中可以定义和父类同名的变量,也可以定义和父类方法签名相同的静态方法,但这不叫重写。属性和静态方法不具有多态性。我们先来看一下属性:class A { int i = 1;}class B extends A { int i = 2;}public class Test { public static void main(String[] args) { A a = new B(); System.out.print

2021-04-14 20:09:54 1874 1

空空如也

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

TA关注的人

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