自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Android】程序开发组件—探究Jetpack

Jetpack是一个开发组件工具集,它的主要目的是帮助我们编写出更加简洁的代码,并简化我们的开发过程,在这么多的组件当中,最需要我们关注的其实还是架构组件,接下来就对Jetpack的主要架构组件进行学习!

2024-09-06 16:00:47 1483

原创 【Android】Material Design编写更好的UI

对于控件ActionBar我们非常熟悉,就是我们常见的标题栏,但ActionBar只能位于活动的顶部,因此我们更建议使用Toolbar。在新建一个项目的时候都是默认显示ActionBar,我们要使用Toolbar就需要先将标题栏改为不显示:不只用来指定这样一个按钮的颜色,而是更多表达了一个强调的意思,例如一些控件的选中状态也会使用的颜色接下来就看看Toolbar的使用::这个属性我们非常熟悉了,但对于后面进行一下解释,是一个主题属性引用,它引用了当前主题中定义的 ActionBar 的标准高度。

2024-09-01 15:19:21 1743

原创 【Android】跨程序共享数据——内容提供器初识

主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。内容提供器可以选择只对哪一部分数据进行共享,从而保证我们程序中的隐私数据不会有泄漏的风险。

2024-08-04 17:20:15 1011

原创 【Android】数据持久化——数据存储

在你打开完成了一份PPT之后关闭程序,再次打开肯定是希望之前的内容还存在在电脑上,一打开PPT,之前的内容就自动出现了。数据持久化就是将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。保存在内存中的数据是处于瞬时状态的,而保存在存储设备中的数据是处于持久状态的,持久化技术则提供了一种机制可以让数据在瞬时状态和持久化状态之间进行转换。

2024-08-04 17:12:57 1125

原创 【Android】Fragment的数据传递

将碎片动态地加载到活动当中,先得到一个碎片,再将其放到活动当中。就想到碎片的替代方法,将我们所要传输的数据直接放到新创建的碎片里面,替换到原来的碎片。我们要将所传输的数据显示在文本框,而在Fragment类中只有一个无参构造,因此在其中加上一个有参构造,当我们创建碎片的时候,就直接把数据传进去了。加入有参构造,注意,此时碎片收到了数据,但是文本框并没有修改,修改所对应的碎片与视图建立联系的时候调用的方法,先得到视图里的TextView的id,将文本内容设置为活动所传输的数据,代码如下:注意:我们需

2024-07-26 21:13:45 486

原创 【Android】Fragment的添加

上一篇文章学到了碎片的创建与生命周期,接下来学习碎片的常用操作,其中会用到上一篇文章的三个碎片,就做一个简单的说明吧:LeftFragment(包含一个按钮)、RightFragment4(以粉色为背景的文本,并在这个碎片中写了所有的回调方法)、AnotherRightFragment(以紫色为背景的文本)每一个Activity都有一个Fragement Manager,用来管理它所包含的Fragement,在使用支持库的时候,使用getSupport-FragmentManager方法来访问Frageme

2024-07-25 21:49:24 1344

原创 【Android】大喇叭——广播

我们先定义一个广播接收器来接收此广播@Override然后与之前一样对AndroidManifest.xml文件进行修改:</</@Override});: 调用setPackage方法并传入当前应用的包名,这限制了广播只在当前应用内传播: 发送一个广播。这个调用会通知所有注册了相同 action 的注意:我们没有这句指令就收不到广播,是因为方法是指定将这个广播发送给那个程序,让隐式的广播转化为显式的广播。在Android8.0以后,静态注册的是无法接受广播的。

2024-07-25 13:34:56 581

原创 【Android】碎片的初识

之前我们学习的是一个活动作为一个页面,有了平板之后,页面如果像手机一样设计就会浪费很多的空间,会有很多的空白区域,为了使屏幕充分利用,引入了碎片这样一个概念。:是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分的利用大屏幕的空间,在平板上应用得非常广泛。

2024-07-22 21:40:53 975

原创 【Android】常用基础布局

布局是一种可用于放置很多控件的容器,它可以按照一定的规律调整内部控件的位置,从而编写出精美的界面,布局内不单单可以放控件,也可以嵌套布局,这样可以完成一些复杂的界面,下面就来认识一些常用的布局吧。线性布局名称:LinearLayout,这个布局会将它所包含的控件在线性方向上依次排列属性:android:orientation这个属性就规定了是在竖直方向上还是水平方向上,当为vertical时,规定的排列方向就为竖直方向;当为horizontal时,控件就会在水平方向上排列设置一个主活动,

2024-07-20 14:35:41 1146

原创 【Android】常见控件及使用

控件与布局都继承于视图,因此视图的设置方式对其作用都是一样的,接下来就先讲述视图的不同设置方式paddinggravity二者的取值包括:left、right、top、bottom,还可以用竖线连接各取值,例如”left|top“,朝左上角对齐。

2024-07-16 17:16:55 1045

原创 【Android】活动之间的穿梭

在活动的初学建立了一个简单的活动,但只有一个活动不是过于简单,在你使用手机的时候按下一个按钮可能会跳转到下一个界面,此时就是活动之间的穿梭:使用Intent在活动之间穿梭:是android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。大致可分为和。

2024-07-15 11:54:06 854

原创 【Git】基础操作

版本控制的方式:集中式版本控制工具:版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或者互联网。个人修改之后要提交到中央版本库例如:SVM和CVS分布式版本控制工具:分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样工作的时候,不需要联网了,因为版本库就在你的电脑上。多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了例如:GitGit的工作流程图。

2024-06-16 16:56:11 1184 1

原创 【数据结构】图论入门

完全图:任意两个点都有一条边相连无向完全图:n个结点就有n * (n - 1) / 2 条边有向完全图:n个结点就有n * (n - 1) 条边稀疏图:有很少的边或者弧的图(通常 m 远小于nlog(n))稠密图:有较多的边或者弧的图(通常 m 大于nlog(n))连通图:在无(有)向图G = (V,{E})中,若对任意两个顶点v、u,都存在v到u的路径,则称G是连通图(强连通图)建立一个顶点表(记录各个顶点信息)和一个邻接矩阵(表示各个顶点之间的关系)

2024-06-07 21:59:24 1423

原创 Java 多线程

我们写的代码存放到了内存当中,需要在CPU上运行,为每一个功能的代码实现时,二者之间开辟了一个通道,方便CPU去内存中提取代码做计算,这个通道称之为“线程”

2024-06-02 13:42:12 1114

原创 Java集合

含有泛型的类1.定义:public class 类名<E>{2.什么时候确定类型:new对象的时候确定类型1. 定义: public class 类名 < E > {} 2. 什么时候确定类型: new 对象的时候确定类型 import java . util . Arrays;int size;size ++;int size;size++;@Override//1含有泛型的方法。

2024-05-26 15:37:23 1226

原创 数据结构KMP算法

在学习数据结构串部分的时候,我们经常遇到经典题型,字符串匹配。我们立刻会想到采用双层循环遍历的方式去匹配,即当字串与主串出现字符不匹配的时候,主串回溯到第二个字符,字串回溯到第一个字符再进行一一匹配,以此类推,设字串长度为n,母串长度为m,则最坏的时间复杂度为O(m * n),没有占用多余的空间,因此空间复杂度为O(1)。当字符串非常长时,所需时间就会很长。步入正题:KMP算法。举一个例子吧:字串为abcabcnm,母串为abcabcdabcabcnm,在匹配时abcabcdabca。

2024-05-17 19:43:32 888

原创 Java语言的三大特性

1.前提:必须有子类继承或者接口实现关系必须有方法的重写(没有重写,多态没有意义),多态主要玩的是重写方法new对象:父类引用指向子类对象Fu fu = new Zi()理解为大类型接收了一个小类型的数据比如:double b = 102.注意:多态下不能直接调用子类特有功能@Override //判断是否为方法重写dog.eat();dog.walk();cat.eat();cat.aaa();

2024-05-12 15:21:26 1365 1

原创 动态规划背包问题之01背包

背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkle和Hellman提出的。

2024-05-03 12:52:31 1128

原创 Java学习之基础必备

Java各整数类型有固定的表述范围和字段长度,不受具体操作系统的影响,以保证Java程序的可移植性。定于long类型的变量,赋值时需要以“l”或“L”作为后缀。Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long。Java的整型通常默认为int型。

2024-04-28 16:11:50 825

原创 Java数组(基础篇)

​ 概念:是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一的管理。​ 简称:多个数据的组合。​ Java中的容器:数组、集合框架:在内存中堆多个数据的存储。

2024-04-27 13:40:28 889 2

原创 考核题(力扣算法题大一上)

本题一开始采用双层循环遍历的方式去解决,但是会超出时间限制,因此采用所求数字的前缀乘积乘上它的后缀乘积。注意在第一个数字的前缀乘积与最后一个数字的后缀乘积应初始化为1,第一次循环是求数字的前缀乘积,在第二次循环时,不再次设立数组存放后缀乘积,直接让前缀乘积乘上后缀即可。

2024-04-20 21:26:54 676 2

原创 动态规划(股票买卖)

一. 确定dp数组及其下标的含义。(在股票问题当中,数组下标的含义尤为重要,需要明确每一个下标的含义)二. 找出数组元素之间的关系式。(股票问题的关系式相对来说不是很复杂,但是对股票不同时期的划分尤为重要)三. 找出数组元素的初始值。(不同情况下的同一含义的下标初始情况也会不同,具体情况具体分析所得)

2024-04-20 19:20:00 1006

原创 考核题(力扣算法题)

如果无需进行插入操作,则直接使p(所要插入数字的前一个结点)与c(所要插入数字的结点)指针都向后移动一位,如果进行了插入操作,此时p指针所指向的结点已经变成了下一个结点,因此只需要使c指向p的下一个结点。当一个链表为空时,直接返回另一个链表,当两个链表都不为空,进行链表的合并,先设立一个虚拟头结点,进入循环,使其都位于头结点的位置,比较两结点的数字大小,将小的数字结点接在我们所设立的链表之后,再让此数字的指针指向此链表的下一个结点,不断循环,只当有一个指针指向为空,即代表有一个链表为空,退出循环。

2024-04-17 23:14:35 777

原创 单链表的排序(快速排序与插入排序)

(以从小到大为例)插入排序为以第二个数字开始,将每一个数字插入到比它小的数字之前,curr指针所指向的为被插入的结点位置,与前一个结点进行比较,如果它比前一个结点数字小即代表它需要插入。进入内层循环,prev所指向的结点为插入位置的前一个结点,当prev的下一个结点的数字大于我们所要插入的结点数字时,进行插入操作。(以从小到大排序为例)取一个结点设其为关键结点,将所有结点的数字与其比较,比关键结点数字大的放在结点的右边,比关键结点数字小的放在关键结点的左边。因为3比4小因此将3进行插入操作。

2024-04-13 11:38:34 549

原创 单链表的排序(冒泡排序与选择排序)

令所排序列的头指针为原链表的head位置,在一开始排序时所排序列的尾指针也为head,即tail=head,每次查找到未排序数字的最小值时,将这个最小值插入到tail的后面,tail也向后移动一位。内层循环是为了查找除已经排序过的数字中最小的数字,每次设tail的后一个数字为最小值(由min指针所指向),让x指针不断后移,使x指针所指向的数字与min指针所指向数字进行对比,若x所指向数字小于min所指向数字,则使min指向x所指数字。x,y两个指针分别代表所要比较的两个数字的结点位置。

2024-04-07 18:42:08 696

空空如也

空空如也

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

TA关注的人

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