自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手把手教你从0入门线段树~

手把手从 0 到 1 教你实现一个线段树,多动图展示~~

2023-07-29 12:03:22 265

原创 Android 反编译入门(基于 Mac)

反编译就是将可执行程序转换为某种形式的高级编程语言的过程。

2022-11-30 20:02:07 1355 1

原创 Fairlearn 中的 API(二)

本篇博客是此系列的第三篇,主要内容是 Fairlearn 中内置的公平性评估方法。

2022-11-07 21:34:25 744

原创 FairLearn 中的 API (一)

本篇博客是此系列的第二篇,接下来将用五篇博客来详解 FairLearn 中的 API。本篇的主要内容是 Fairlearn 中内置的数据集。

2022-11-07 10:21:18 434

原创 Android Studio 新版本 Logcat 的使用

最近,Android Studio 自动更新了自带的 Logcat 工具,整体外观和使用方法变得和之前完全不同了。一开始我以为是自己按到什么不该按的按钮,把 Logcat 弄坏了,后来才知道是版本更新导致的。新版本的 Logcat 用命令来过滤信息,且不同的日志级别带有不同的颜色显示,比老版本的更好用了。本博客将简单介绍新版本 Logcat 的用法。

2022-11-01 22:00:38 10507

原创 在 Android Studio 中运行 Java 代码

如果直接在 App 中运行,效率极低,在 Android Studio 中新建一个 Java 文件并运行又会报错,打开一个新的 Idea 又非常吃内存。那么我们究竟该如何在 Android Studio 中运行纯 Java 代码呢?需要修改 .idea 文件夹下的 gradle.xml 文件,在 GradleProjectSettings 标签下加入如下代码。直接在 Android Studio 中运行 Java 方法会报错如下错误。

2022-11-01 09:20:24 1766

原创 Fairlearn 快速入门

Fairlearn 是一个旨在帮助数据科学家提高人工智能系统公平性的开源项目。目前国内并没有相关教程来讲解这个库的使用方式,所以笔者用一系列博客尽可能详细地教学 Fairlearn 库的使用方法。「在官网教程的基础上加入自己的个人见解。」本篇博客是此系列的第一篇,将帮助读者快速入门。

2022-10-30 21:49:32 719 1

原创 Handler 源码解析

Handler用于异步消息的处理,是Android面试中的常客。这篇博客用于详细说明Handler源码解析。

2022-08-01 23:27:02 653 1

原创 堆排序详解

堆是一种完全二叉树**「即每个节点的所在下标与满二叉树节点的下标一致」**根据堆的性质,可以将堆分成大根堆和小根堆上图就是一个大根堆,我们可以将其映射到数组 array 中根据大根堆的性质,我们很容易得到以下结论:堆排序大体上可以分为三步:**类比:**这个过程就像是,在一群人中找到一个最高的,让他和坐最后一排的人交换位置;然后在剩下的人中找到身高第二高的,让他和坐在倒数第二排的人交换位置;依此类推。假设待排序数组 首先,将待排序数组变成一个完全二叉树接下来,我们需要保证:每个节点的值比它的左右孩子的值要大

2022-06-29 16:40:51 681

原创 JVM 快速入门

JVM 快速入门

2022-06-01 19:21:02 240

原创 Java 多线程入门

进程、线程和多线程在说进程之前,先回顾一下什么是程序。程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的过程。进程:执行程序的一次过程,是动态的概念。是系统资源分配的单位。线程:一个进程中可以包括多个线程(一个进程中最少包含一个线程)。线程是 CPU 执行和调度的单位。假设我们正在观看一部电影,电影的播放就可以看做是一个进程。电影播放包括声音、图像、字幕等,这些可以看做是线程,如图所示多线程:多线程分两种情况,多核和单核。多核:即有多个 CPU,此时的多线程是真正的多线程

2022-05-31 13:39:03 258

原创 704 二分查找

704. 二分查找力扣题目链接给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 示例 2:输入: nums = [-1,0,3,5,9,12], target = 2 输出: -1

2022-05-31 13:37:27 153

原创 延迟初始化和密封类

延迟初始化背景Kotlin 提供了变量不可空特性来抑制空指针问题。这个特性在保证程序安全的同时,也给我们带来了编码上的一些问题。案例:试想一下,你的程序中有一个全局变量 a ,变量 a 创建之初并没有初始化,所以你令它等于 null。假设 a 的类型为 String,因为要保证 a 非空,所以它的类型被声明为 String?private var a: String? = null接下来,每次需要调用 a 中的方法,都要进行判空处理(即使它早已被初始化),否则无法进行编译!当代码中有越来越

2022-05-31 13:34:09 122

原创 RecycleView的基本使用

前言为了解决 ListView 存在的拓展性差、需要手动优化性能等问题,Android 提供了滚动组件 RecycleView。本篇博客用于梳理 RecycleView 的使用方法。RecycleView 的优点RecycleView 仅会处理当前现实在屏幕上的项。假如列表中有 1000个元素,而页面只显示其中 10 个,那么 RecycleView 仅处理这 10 个项当某个项滚出屏幕时,RecycleView 会回收其视图。这个项被回收,用于填充新进入屏幕的内容。当某一项发生变化时,仅重新绘

2022-05-18 15:27:55 2656

原创 反射和注解

title: 反射和注解date: 2022-05-17 22:22:50categories:个人博客Java基础tags:Java注解什么是注解?定义:注解是放在 Java 源码的类、方法、字段、参数前的一种特殊注释。但是注释会被编译器直接忽略,而注解可以被编译器打包进入 class 文件。作用:(1)对程序做出解释 (2)对作用域中内容进行检查和约束格式: @ + “注解名” ,注解也可以有参数,如 @SuppressWarnings(value = “unchecked.

2022-05-17 22:37:58 106

原创 Differential Privacy and Fairness in Decisions and Learning Tasks: A Survey

1 摘要综述了近年来差分隐私与公平交叉领域的成果分析了差分隐私在决策问题和学习任务中可能加剧不公平性的原因在差分隐私系统中缓解不公平性的措施在公平的条件下部署隐私模型面临的挑战2 介绍大型数据集和计算资源的可用性推动了人工智能的重大进展。这些进展使得人工智能成为涉及个人的许多决策和政策操作的辅助工具:包括法律决策、贷款、招聘、福利分配等。然而,机器学习模型是个黑盒。所以人们会担忧,这个系统是否公平?是否会泄露参与者的个人信息?2.1 差分隐私差分隐私是一种隐私保护技术,近年来逐渐成为

2022-05-15 21:51:22 733

原创 Activity 生命周期

Activity 生命周期Activity 类中定义了 7 个回调方法,来对应 Activity 生命周期的每一个环节。方法名对应生命周期onCreate()在 Activity 第一次被创建时调用,可以在这个方法中完成 Activity 的初始化操作。(加载布局,绑定事件等)onStart()由不可见变为可见时调用onResume()Activity 准备好与用户交互时调用,此时 Activity 位于栈顶onPause()在启用或恢复另一个 Activi

2022-05-10 10:52:01 111

原创 随时随地退出 Android 程序

随时随地退出 Android 程序假设这么一个场景,你打开了某 APP 的多个页面。此时,你想关闭这个程序,你按返回键,结果只返回到上一个打开的页面 (Activity) 中。你需要不停的按返回键,直到返回栈为空,才能退出程序。有时候,我们需要在某个页面按返回键就能直接退出程序,那么可以按以下方式实现。实现方法1. 单例类 ActivityManager创建一个单例类 ActivityManager。该类用于管理 Activity 实例,所以在整个环境中只能存在一份实例。object Ac

2022-05-07 22:32:28 283

原创 判断当前在哪一个 Activity中

判断当前在哪一个 Activity中当需求发生变化时,UI 界面通常都会发生一定的变更。当我们接手的是别人的代码时,我们需要根据需要修改的页面快速定位到对应的 Activity中。判断当前页面对应哪一个 Activity 可以用以下两种方式实现。BaseActivity 实现首先,新建一个 Kotlin 类,名字叫 BaseActivity 。「是 Kotlin class 不是 Activity,只是名字叫 Activity,因为不对应任何布局」open class BaseActivity

2022-05-07 21:58:22 766

原创 startActivityForResult 替代方案

startActivityForResult 替代方案startActivityForResult() 方法用于返回数据给上一个 Activity。但这个方法已经被废弃了很久,现在 Google 使用 registerForActivityResult() 方法来实现此功能。registerForActivityResult() 实现使用 registerForActivityResult() 写法,实现 SecondActivity 返回数据给 FirstActivityFirstActiv

2022-05-06 15:49:47 6402 4

原创 目标和 leetcode (494)

目标和 leetcode (494)题目链接题目描述给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例示例 1输入:nums = [1,1,1,1,1], target =

2022-04-24 17:46:54 95

原创 魔法 (美团笔试第四题)

魔法 (美团笔试第四题)题目描述你是魔法魔法学院的一名学生,你在魔法课中因为老师讲得无聊开了小差。你手中有两个数字 A 和 B,你可以对这两个数字释放以下三种魔法:选择一个数字,让它变为两倍选择一个数字,让它变为原来对一半后,向下取整。 如 5 -> 2 , 10 -> 5选择一个数字,让它的值加 1。即 n = n + 1你可以任意次的使用上述三种魔法。但要保证使用尽可能少的魔法使用次数使两个数 A 和 B 相等输入描述第一行: A B 待操作的两个数,以空格隔开

2022-04-20 20:28:43 1230

原创 将List转换为数组

将List转换为数组背景在 leet-code 刷题时,经常会要求输出数组结果。我们知道,初始化数组时,要提供数组的维度。而在解题过程中,答案的维度通常是不知道的。因此,我们可以把每次筛选出的答案放到 List 中(List长度随时变化),然后将 List 转化为数组。具体方法对于一维数组,以 List<Integer> 和 int[] 为例:List<Integer> list = new ArrayList<>();for (int i = 0; i

2022-04-18 14:26:50 6854

原创 将 hexo 部署到云服务器

将 hexo 部署到云服务器为了解决 hexo 部署到 GitHub 访问速度慢的问题,我们可以将 hexo 部署到云服务器上。这篇博客使用宝塔面板将 hexo 部署到腾讯云服务器上。1. 前提已经搭建好 hexo 的相关环境,并将 hexo 部署到了 GitHub 上已经购买好云服务器已经购买并备案好域名 (可选项,没有也可以用 ip 地址访问 hexo)2. 安装宝塔面板宝塔面板可以可视化地操作远端服务器(这样就不用自己手动装 nginx 了)进入宝塔面板的下载页面 宝塔面板下载

2022-04-09 20:34:03 8942 11

原创 Java 中 Boolean 和 boolean 的区别

Java 中 Boolean 和 boolean 的区别背景布尔型是我们写逻辑时常用的类型。Java 中提供的布尔型有 Boolean 和 boolean,它们在使用时很容易被误用。(毕竟只相差一个字符)有一次,我使用布尔型数组来存储数组中元素的使用情况,如果元素未被使用则对该元素执行操作。为了方便说明,代码进行了简化Boolean[] used = new Boolean[3];if (used[1]) { System.out.println("第一个元素被使用过了");} el

2022-04-06 16:20:05 3613

原创 Functional Mechanism: Regression Analysis under Differential Privacy

差分隐私的函数机制

2022-04-06 14:41:23 4283 1

原创 Java List与地址相关的一点坑

Java 踩坑系列 (一)List踩坑过程今天刷回溯法 leetcode-77-组合 的时候。因为返回值是 List<List>,所以可以使用一个 List 的对象来进行回溯。于是我想当然的写出了以下代码:List<List<Integer>> ans = new ArrayList<List<Integer>>(); private void backTracking(int start, int n, int k, List

2022-04-03 15:26:24 945

原创 在Activity中使用ViewBinding

文章目录前言一、ViewBinding是什么?二、使用步骤1.新建一个ViewBindingTest项目2.配置Build.gradle文件3.在Activity中使用ViewBingding4.部分页面不启用ViewBinding前言随着kotlin-android-extensions 插件的废弃,我们不再被推荐使用id号的方式去访问组件。但是Google官方推荐我们使用ViewBinding的方式来实现类似的功能,本文简单记录一下ViewBinding在Activity中的使用步骤,以便将来查阅

2021-08-31 11:45:10 1881

原创 2021-07-14 Android adb获取启动时间

文章目录前言adb命令获取1.获取时间的adb命令2.如何找到包名和需要的Activity3.参数详解4.adb不是内部或外部命令,也不是可运行程序或批处理文件总结前言应用的启动速度是评价应用好坏的一个重要指标。因此,我们应尽可能的减少应用的启动时间。在Android启动优化中,我们首先需要获得各个Activity的启动时间,然后再对不符合时间要求的Activity进行性能优化。本文简要介绍了获取Activity启动时间的方法提示:以下是本篇文章正文内容,下面案例可供参考adb命令获取adb全

2021-07-14 12:07:04 2020 1

原创 快手面试题(excel按字母顺序生成列名)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、题目大意1.输入2.输出二、AC代码前言快手面试时出的一道算法题,题目很简单,但就是脑袋短路想不出来。菜是原罪吧,简单记录一下提示:以下是本篇文章正文内容,下面案例可供参考一、题目大意按excel的列号码生成对应的列名。例如,第1列为A,第2列为B,第26列为Z。第27列为AA,28列为AB,依次类推。1.输入输入值含义nexcel的列序号2.输出列序号所在列对应的列名二、

2021-06-18 12:10:53 232

原创 Python CSV简介

文章目录前言一、CSV简介1.1 什么是CSV?1.2 为什么要使用CSV?1.3 使用Excel生成CSV文件二、Python CSV常用方法三、用Python来操作CSV文件1.引入库2.读入数据(使用csv.reader)3.写入数据(使用csv.writer)4. CSV自定义方言(dialect)总结前言CSV是数据处理中经常会用到的一种文件格式。本文将对CSV进行简要的介绍,并使用Python来对CSV文件进行读写操作。提示:以下是本篇文章正文内容,下面案例可供参考一、CSV简介1

2021-06-04 20:25:08 9693

原创 JVM简介

文章目录前言一、JVM简介1.什么是JVM?2.JVM的功能3.JVM的特点2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言JVM不仅是大厂面试必问的内容,也是进阶中高级工程师的必备技能。这一系列文章以宋红康老师的JVM教程为基础,记录JVM的各个知识点。提示:以下是本篇文章正文内容,下面案例可供参考一、JVM简介1.什么是JVM?JVM是Java虚拟机(Java Virtual Machine)的简称。之所以被叫做虚拟机,是因为它是一个抽象化的计算机

2021-06-02 17:13:57 138

原创 对象流存取对象

一、注意事项在使用对象流存取对象时,需要保证对象是序列化的,因为文件是字节流。二、ObjectOutPutStreamtry { ObjectOutputStream objectOutputStream = new ObjectOutputStream(openFileOutput(FILE_NAME,MODE_PRIVATE)); objectOutputStream.writeObject(student); objectOutputStream.flush(); obj

2021-06-01 21:21:58 218

原创 BottomNavigation

文章目录前言一、创建一个Menu二、实现界面切换2.读入数据总结前言BottomNavigation可以在Android中简单实现底部导航栏功能。本文对实现BottomNavigation的核心步骤进行了简要的记录提示:以下是本篇文章正文内容,下面案例可供参考一、创建一个Menu在Java Resourse中创建一个Menu往里面拖入menuItem,并为其配置图在activity_main.xml中拖入一个ButtomNavigationView,选中刚才创建的menu,

2021-06-01 11:06:16 404 1

原创 POJ 2376 Cleaning Shifts

文章目录前言一、题目大意1.输入2.输出二、解题思路贪心算法思考三、AC代码总结前言 POJ题解这一系列文章主要记录《挑战程序设计程序设计》的课后习题,包括解题需要用到的知识,思路以及遇到的问题等等。提示:以下是本篇文章正文内容,下面案例可供参考一、题目大意农夫约翰正分配他的NNN头(1 ⩽\leqslant⩽NNN ⩽\leqslant⩽ 25,000)牛在谷仓周围做一些清洁工作。 约翰将一天分为TTT个班次(1 ⩽\leqslant⩽TTT ⩽\leqslant⩽ 1,000,000),

2021-05-14 13:27:27 135

原创 POJ 3069 Saruman‘s Army

文章目录前言一、题目大意1.输入2.输出二、解题思路三、AC代码总结前言 POJ题解这一系列文章主要记录《挑战程序设计程序设计》的课后习题,包括解题需要用到的知识,思路以及遇到的问题等等。提示:以下是本篇文章正文内容,下面案例可供参考一、题目大意直线上有N个点。点iii的位置是XiX_iXi​。从这N个点中选择若干,给它们加上标记。对每一个点,其距离为R以内的区域里必须有带标记的点(自身带有标记的点,可以认为与其距离为0的地方有一个带有标记的点)。在满足这个条件的情况下,希望能为尽可能少的点

2021-05-10 21:46:50 238

原创 POJ3050

文章目录前言一、题目大意1.输入2.输出二、解题思路三、AC代码总结前言 POJ题解这一系列文章主要记录《挑战程序设计程序设计》的课后习题,包括解题需要用到的知识,思路以及遇到的问题等等。提示:以下是本篇文章正文内容,下面案例可供参考一、题目大意给定一个5*5大小的数字矩阵,从这个矩阵的任意一点出发,向前后左右四个方向移动(可以走回头路),总共移动五次。将移动时经过数字连接成串(包括起点数字),计算总共能形成多少种不同的串(数字0可以放在任何地方)。1.输入一个5*5的数字矩阵2.输出

2021-05-09 20:49:38 134

原创 C++ set容器及其常见操作

文章目录前言一、什么是set容器?二、set容器的特征三、set容器的常见操作四、使用步骤1.引入头文件2.set容器的定义3.set的插入和删除4.set的遍历总结前言使用集合框架不仅能提高我们的代码开发效率,也能让我们在竞赛解题中如鱼得水。作为STL库中的一种常见容器,set能保证存入的数据是唯一的。为了能够更好的理解set容器,本文对set容器及其常见操作做了简单介绍。提示:以下是本篇文章正文内容,下面案例可供参考一、什么是set容器?set容器是C++ 标准库里的一种集合框架,能保证

2021-05-09 16:06:35 3563

原创 POJ3187

POJ3187 Backward Digit Sums前言一、题目大意1输入2 输出二、解题思路三、用到的函数1.next_permutation()2.memcpy()AC代码前言 POJ题解这一系列文章主要记录《挑战程序设计程序设计》的课后习题,包括解题需要用到的知识,思路以及遇到的问题等等。提示:以下是本篇文章正文内容,下面案例可供参考一、题目大意给定一个数字N(1<=N<=10),将1~N按一定序列写下,把相邻的两个数字相加生成一个新的序列。重复此操作,直到最新序列的长度

2021-05-07 16:03:47 217

原创 POJ2718

POJ2718(Smallest Difference)题目大意输入输出解题思路用到的函数1.next_permutation()2.abs()需要注意的问题问题1问题2问题3AC代码题目大意给定一组递增序列的数字(这些数字是唯一的),用这些数字组成两个数,使得这两个数的差最小(正数)。例如,给定序列[0,1,2,4,6,7],最小差等于204-176=28。输入第一行输入用例的个数第二行不超过10个数字的输入(数量未知,升序排序)输出组成两个数字的最小差(最后有一个换

2021-05-06 21:45:31 221

空空如也

空空如也

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

TA关注的人

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