自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 FragmentManager 返回栈与 Activity 运行栈的关系(当按下Back键时屏幕会如何变化?)

特性Fragment 返回栈Activity 运行栈管理对象记录对“顶级 Fragment”(直接添加到 Activity 的 Fragment)的事务历史(如replaceadd操作)。记录应用中 Activity 的启动顺序,每个“任务”对应一个栈。所属主体由 Activity 的管理,仅属于当前 Activity。由 Android 系统管理,属于整个应用(或跨应用的任务)。作用支持 Fragment 事务的回滚(如按 Back 键恢复到上一个 Fragment 状态)。

2025-07-30 16:41:32 711

原创 Fragment 是如何展示在屏幕上的?(在 XML 中声明 `<fragment>` 后,从 Activity 启动到 Fragment 显示在屏幕上的完整流程)

用于在布局中静态声明一个 Fragment 实例。它的作用是告诉系统:“在这个位置加载指定的 Fragment 及其布局”,是 Fragment 与 Activity 布局结合的一种方式。当在 Activity 布局中声明。在 XML 布局文件中,

2025-07-30 16:10:35 1018

原创 获取 Fragment 实例应该使用 findViewById() 还是 findFragmentById()?两者的返回结果有什么区别?

简单说,是“找控件”的,是“找 Fragment”的,二者操作的对象、归属的系统组件、以及内部实现逻辑都完全不同,因此必须用专门的方法处理 Fragment 的查找。无论 Fragment 是通过<fragment>标签静态声明,还是通过代码动态添加,获取 Fragment 实例的唯一方式都是通过的方法或只能用于查找 View 控件,无法直接获取 Fragment 实例,因为 Fragment 是独立于 View 树的组件,其生命周期和实例由单独管理。): View?// 加载Fragment布局。

2025-07-30 11:22:01 863

原创 禁用系统默认 ActionBar,使用自定义 Toolbar

将 Toolbar 作为布局的一部分(通常放在顶部),后续布局会自动排列在其下方,无需额外边距:-- 垂直方向 --> <!-- 自定义Toolbar --> < androidx.appcompat.widget.Toolbar android: id = " @+id/toolbar " android: layout_width = " match_parent " android: layout_height = "?

2025-07-29 16:41:14 330

原创 【Kotlin】const 修饰的编译期常量

const常量最终都会被编译为 Java 中的静态成员,因此才能在编译期确定值并被直接访问。区别仅在于定义位置带来的作用域差异(包级、类级、单例级)。

2025-07-29 14:16:06 623

原创 如何在 Gradle 项目中添加依赖?(以添加 AndroidX 版本的 RecyclerView 为例)

打开项目的版本目录文件(通常是),添加RecyclerView的版本定义:RecyclerView的最新版本可以在Google Maven仓库查询获取。[versions]# 其他版本...recyclerview = "1.3.2" # 可替换为最新版本# 其他库...

2025-07-29 11:36:15 454

原创 Activity 继承自 AppCompatActivity时 Theme 必须使用继承自 Theme.AppCompat 系列的主题(出现 IllegalStateException 的可能原因)

在使用 AppCompatActivity 时,其主题(Theme)有明确要求,核心规则是:主题必须直接或间接继承自 Theme.AppCompat 及其子类(如 Theme.AppCompat.Light、Theme.AppCompat.NoActionBar 等),否则会导致运行时崩溃(IllegalStateException)。可以直接配置内置的主题,也可以自定义主题。

2025-07-29 11:26:21 441

原创 使用convertView参数优化 ListView 等列表视图

通过合理使用和ViewHolder让我们能够复用滑出屏幕的旧视图,减少视图对象的创建ViewHolder帮助我们缓存控件引用,避免重复的调用这两种技术的结合,能够有效解决列表滚动卡顿问题,尤其在数据量大或布局复杂的场景下,优化效果更为明显。在实际开发中,只要使用 ListView 等列表控件,就应该采用这种优化方式,为用户提供流畅的滚动体验。

2025-07-28 16:59:10 310

原创 LayoutInflater 的使用方法、inflate() 方法的 attachToRoot 参数何时设置为 false?

每个 Activity 都有自己的 LayoutInflater 实例,每个 Activity 会在初始化时创建自己的 LayoutInflater 实例,存储在 Activity 的成员变量中。LayoutInflater 需要依赖上下文(Context)来加载资源(如布局文件、字符串等),LayoutInflater 提供 方法根据传入的 Context 对象获取 LayoutInflater 对象。在当前 Activity 中获取 LayoutInflater 时,可以直接使用本类的成员变量 Lay

2025-07-28 16:25:15 754

原创 context(上下文)和 parent(父容器)的区别(作用、使用场景)

private val context: Context, // 上下文(通常是Activity)private val itemLayoutId: Int, // item布局IDprivate val data: List<Book> // 数据源// 1. 使用context获取LayoutInflater服务,用于加载布局// 这里的context用于提供布局加载的环境} else {// 2. 使用context访问资源(例如获取字符串资源)// 3. 绑定数据if (book!

2025-07-28 16:04:39 539

原创 setContentView() 背后的原理?xml布局文件是如何变成用户可见的界面的?

将 XML 布局文件解析为 View 树,挂载到 Activity 窗口的根容器中,再通过测量、布局、绘制三大流程将视图渲染到屏幕上。这个过程实现了“声明式布局”与“界面渲染”的解耦:开发者只需用 XML 描述界面结构,系统通过框架层自动完成从布局定义到最终显示的转换。

2025-07-28 14:44:38 955

原创 【Kotlin】如何实现静态方法?(单例类、伴生对象、@JvmStatic)

静态方法(类方法):不需要创建实例就可以调用(直接通过类名调用)的方法。

2025-07-28 10:53:21 380

原创 Activity 启动模式

在 AndroidMainfest.xml 中通过给 <activity> 标签指定。

2025-07-25 18:33:37 343

原创 隐式 Intent 的匹配规则 & 调试技巧

确认 Intent 的构造是否正确(Action、Category、Data 等)。检查目标组件的配置是否匹配。利用系统日志、adb 命令或工具查看匹配过程,定位不匹配的原因。做好异常处理,避免因 Intent 问题导致应用崩溃。通过这些技巧,能有效解决 Intent 跳转失败、匹配不符合预期等常见问题。

2025-07-25 11:38:36 1046

原创 【第一行代码】Android Studio 新建项目及问题解决

按照《Android 第一行代码》中 1.3 小节的步骤创建项目。用于设置项目的最低兼容版本。Android 5.0 以上的系统已经占据超过了 99.9% 的 Android 市场份额,因此这里指定为即可。

2025-06-12 19:24:10 577

原创 【慕课网wiki项目学习笔记01】Spring Boot 项目搭建

新建SpringBoot项目、项目初始配置、代码关联远程仓库、启动日志优化

2025-03-03 22:36:24 952 4

原创 【JavaSE】重写equals()和hashCode()

重写equals()方法实现比较对象的内容是否相等为了保证“用equals()方法判断相等的对象,hashCode()也相等”,必须重写hashCode()方法。

2024-09-09 12:01:35 243

原创 【JavaSE】Java基本数据类型缓存池

前面所示的Integer缓存池其实就是Integer的一个静态内部类。

2024-09-09 11:34:55 785

原创 【JavaSE】String类

首先,String类内部用于存储字符串的字符数组前加了final关键字,这意味着一旦初始化完成后就无法对该数组进行扩容。其次,纵观String类所有方法的设计,凡是涉及字符串修改的方法,只要修改了字符串的内容,都会将结果用一个新的String类对象返回,这意味着仅通过String类对外提供的接口对其进行访问和操作能够保证字符串的内容永远保持不变。最后,String 类本身被声明为 final,这意味着它不能被继承。这防止了子类可能通过添加修改方法来改变字符串内容的可能性。

2024-09-08 22:52:21 668

原创 【JVM】JVM栈帧中的动态链接 与 Java的面向对象特性--多态

每一次方法调用都会有一个对应的被压入栈(虚拟机栈)中,每一个方法调用结束后,都会有一个栈帧被弹出。每个栈帧中包括:局部变量表、操作数栈、动态链接、方法返回地址。局部变量表:用来保存方法中的局部变量和方法参数。操作数栈:用于存放方法执行过程中产生的中间计算结果和临时变量。动态链接:指向运行时常量池中该栈帧所属方法的引用。方法返回地址:记录方法被调用时的位置对应的PC值,以便于方法执行结束后可以继续执行方法调用者的后续代码。

2024-09-07 21:23:44 643

原创 【黑马点评】附近商户

选择商铺类型后,按照距离当前用户所在位置从近到远的顺序,分页展示该类型的所有商铺。提前将所有商铺的位置信息存入redis中(GEOADD)。

2024-09-04 11:18:04 1094

原创 【黑马点评】达人探店

探店笔记包括图片和文本两部分内容,分开上传。

2024-09-03 17:59:06 1041

原创 【黑马点评】优惠券秒杀(集群模式)

在的最后提到:使用作为锁,在集群模式下是有问题的。在本文中通过基于Redis实现的分布式锁来解决这一问题。

2024-08-27 17:32:39 598

原创 【黑马点评】优惠券秒杀(单体模式)

基于乐观锁解决库存超卖问题在更新数据时判断当前查到的库存值是否充足,如果库存不足就直接返回错误信息。判断条件从“当前库存值与之前查到的库存值是否一致”弱化为“当前查到的库存值是否充足”,依然可以解决库存超卖问题,并且可以降低异常率。基于悲观锁解决一人一单线程安全问题将从“判断是否下过单”开始的代码提取出来,作为子方法该子方法中包括了扣减库存和创建订单两个操作,为保证原子性,需要为子方法加上注解。

2024-08-27 11:27:30 1248

原创 【灵神基础算法精讲】01 相向双指针 两数之和 三数之和

【代码】【灵神基础算法精讲】01 相向双指针 两数之和 三数之和。

2024-08-03 19:04:53 298 1

原创 【代码随想录】【动态规划】子序列问题 - 连续、不连续

同。

2024-06-03 09:07:20 383

原创 【代码随想录】【动态规划】打家劫舍

dp数组:最终结果:在计算时:递推公式:递推公式适用范围:令递推公式中所有下标都大于等于0小于n,即,计算得到:计算顺序:在计算时需要用到,因此应该从前向后计算初始化:可以使用递推公式进行计算的范围是,因此需要对 的情况进行初始化解法二这是解法一的递推公式:对于其中的第二个式子,如果将代换成,则递推公式变为:可以使用递推公式进行计算的范围也从变为。观察这个递推公式发现,其实不用单独区分和,可以直接将定义为:在下标小于等于i的房屋中偷窃,能得到的最大金额。在计算dp[i]时:递推公式:这两种

2024-05-16 17:29:17 775

原创 【代码随想录】【动态规划】背包问题 - 完全背包

受到前面377. 组合总和 Ⅳ的启发,我发现其实背包问题在先遍历背包容量再遍历物品的计算顺序下的一维dp优化解法就是按照“把整个过程看作是一系列的决策过程,而在计算dp[i]时主要考虑的是在本轮如何进行决策”的思路(这是解决动态规划问题的基本思路——多阶段决策)进行的,按照这一思路直接去思考会直观的多!因此接下来我将尝试按照这种思路来解决问题,第二轮刷题时再统一进行整理。279. 完全平方数共有⌊n⌋⌊n​⌋个物品,1≤n≤⌊n⌋1≤n≤⌊n​⌋。

2024-05-13 20:43:48 1308

原创 【代码随想录】【动态规划】背包问题 - 01背包

在计算每一行时既可以按照从左向右的顺序计算,也可以按照从右向左的顺序计算,因为计算dp[i][j]时只会用到前一行的数据,不会用到本行该位置之前的数据(dp[i][0…综上所述,我们可以只用一行(即一个长度为V+1的数组)作为dp数组,滚动存储每一行的计算结果,不再需要的数据被新计算的结果覆盖使用。j]位置的值,在计算dp[i][j]之前要保证这些位置的值已经计算过了。但是在计算每一列时必须按照从上向下的顺序计算,因为计算dp[i][j]时会用到本行该位置之前的数据(dp[i-1][j])。

2024-05-12 13:19:51 2316

原创 【JavaEE】【1.3 Servlet】1.3.6 监听

Servlet上下文(Servlet Context)是Java Servlet技术中的一个概念,它代表了一个Web应用程序的上下文环境。在Servlet规范中,Servlet上下文提供了一种机制,允许Servlet之间共享信息,并允许访问Web应用程序的资源和环境。

2024-05-11 16:18:47 414

原创 【JavaEE】【1.3 Servlet】1.3.4 HttpSevletResponse

Http响应报文结构Q: 在Servlet中,通过response对象跳转到JSP页面和通过request对象跳转到JSP页面有什么区别?

2024-05-11 16:11:28 178

原创 【JavaEE】【1.3 Servlet】1.3.3 HttpServletRequest的应用

对书本内容的补充:Http报文结构、会话技术、根据HttpServletRequest对象获取请求相关信息、Servlet向JSP页面跳转

2024-05-06 15:44:47 922

原创 【代码随想录】【动态规划】基础理论 基础题目

代码随想录动态规划 - 基础题目

2024-05-04 22:19:22 475

原创 【代码随想录】链表

int val;203. 移除链表元素。

2024-04-29 15:04:05 338

原创 【代码随想录】【数组】螺旋矩阵

leetcode 54. 螺旋矩阵Ⅰ 59. 螺旋矩阵 Ⅱ

2024-04-26 11:09:11 282

原创 【代码随想录】【数组】移除元素 双指针 快慢指针插入元素 左右指针分区

几道关于双指针的问题,涉及了双指针中的左右指针分区和快慢指针插入元素两类经典问题。

2024-04-18 22:48:49 797 1

原创 【代码随想录】【数组】二分查找

二分查找

2024-04-18 15:43:51 1656

原创 【形式语言与自动机】正则表达式题目

01∗01n。

2023-06-05 10:10:21 815

原创 【SQL】子查询,IN运算符,ALL运算符,ANY运算符

牛客题目子查询(Subquery)就是嵌套在其他语句(包括SELECT, INSERT, UPDATE, DELETE等)中的SELECT语句。

2023-05-23 15:45:52 2351 1

原创 【Course1】3 One hidden layer Neural Network

l。

2023-05-19 20:26:39 356 1

计算机网络A4.docx

本人亲自整理的计算机网络考试的一页参考纸,考试的时候起到了很大的帮助。需要用的人可以下载。东南大学。有的老师要求必须手抄,自己再抄一遍就行了。打印的话建议彩印,刚好一张A4纸。正反两面,内容很全。

2020-07-05

计算机输入输出.zip

期末复习的时候自己整理的计算机输入输出系统的期末复习资料,包括对编程题可能会用到的指令的总结以及对设计题的总结,希望对大家有所帮助。*****************************************************************

2020-07-05

空空如也

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

TA关注的人

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