自定义博客皮肤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)
  • 收藏
  • 关注

原创 Gson的基本使用:解析Json格式数据 序列化与反序列化

Gson是Google发布的一个Java库,可以用来将Java对象转换为Json字符串表示,或者将Json字符串转换为等效的Java对象;

2024-07-22 20:41:51 881

原创 SQLite数据库在Android中的使用

SQLite是一个的SQL数据库引擎。无服务器,意味着使用sqlite不需要联网;不需要配置,意味着不需要安装和管理;同时sqlite遵循ACID原则。SQLIte是一款轻型的数据库,占用资源非常低,在嵌入式设备中,可能只需几百k的内存。

2024-07-19 22:02:15 971

原创 Android:OkHttp网络请求框架的使用

OkHttp是square公司推出的一款Android和Java网络请求库,是目前公认的最好用的网络请求框架,OkHttp有以下的特点:支持Http/2,允许对同一主机的所有请求共享同一套接字;使用连接池减少请求延时;透明的GZIP压缩减少响应数据的大小;缓存响应的内容,避免重复请求;

2024-05-22 16:52:57 1888

原创 Android:资源的管理,Glide图片加载框架的使用

Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,统一了显示本地图片和网络图片的接口。自动、智能地下采样(downsampling)和缓存(caching),以最小化存储开销和解码次数;积极的资源重用,例如字节数组和Bitmap,以最小化昂贵的垃圾回收和堆碎片影响;深度的生命周期集成,以确保仅优先处理活跃的Fragment和Activity的请求,并有利于应用在必要时释放资源以避免在后台时被杀掉;

2024-05-13 21:47:49 1249 3

原创 Android开发基础:Activity的生命周期 Activity中的数据保持

众所周知,Android中的Activity是可以层叠的,当我们启动一个新的Activity时,就会叠加在旧的Activity上,点击Back销毁Activity,上一个Activity就会重新显示出来,之所以会这样,是因为Android是使用(也叫返回栈)来管理Activity的。每启动一个新的Activity,它就会在活动栈中入栈,并处于栈顶位置,按下Back健销毁Activity后,它就会出栈,下一个Activity就会重新处于栈顶位置,屏幕上显示的总是栈顶的Activity。

2024-04-26 09:43:28 1293

原创 Android开发基础:Activity之间的跳转 向下一个Activity传递数据 给上一个Activity返回数据

一个Android应用中包含多个Activities,Activity之间必然存在跳转关系。在Android中,Activity之间的跳转是借助Intent对象来实现的。intent是Android中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可用于启动Activity,Service,以及发送广播等场景。Intent的使用大致可分为两种:显示Intent和隐式Intent。

2024-04-18 21:00:32 3381 2

原创 Android多线程:Handler runOnUiThread 异步消息处理机制

Android用户界面是与用户交互的接口,对于用户的操作,Android迅速响应用户输入(200ms内)是一个重要目标。因此,一些耗时操作(如:后台下载,异步加载图片等)需要放在子线程中运行,否则会导致主线程阻塞。

2024-04-16 08:53:15 2544 2

原创 Android开发基础:对话框,Toast,Notification的使用 选项菜单,上下文菜单,弹出式菜单的使用

Notification在状态栏显示提示信息,除非用户查看或关闭信息,状态栏才取消显示。一般使用在收到短信后、收到应用的推送消息后、收到未接电话等场合。Notification需要借助NotificationManager(通知管理器)来实现。

2024-04-12 20:50:36 1425

原创 Android事件:事件传递 基于监听器的事件处理 基于回调的事件处理

在Android中,每触摸或点击一次,就会生成一个MotionEvent对象,代表一次触摸事件。三种方法均返回boolean类型的值,表示是否解决事件。对于ViewGroup类,会进行事件分发,拦截,响应三种操作。但对于View来说,只有事件分发和响应,因为View没有子View,无法再向下传递,也就不需要事件拦截。

2024-04-10 21:26:27 947 3

原创 Android视图控件:AdapterView类视图控件的使用,Fragment,ViewPager2视图控件的使用

Adapter(适配器)是连接后端数据与前端视图的接口,是数据与视图之间交互的中介。众所周知,Android用户界面采用MVC框架,即model-view-controller,model和view可理解为是数据和视图,而Adapter就属于中间的controller部分。用Adapter作为数据和视图之间交互的中介,就可以将这两部分分开操作:数据改变时,不需要修改视图组件,只需更新Adapter;视图组件改变时,不需要修改数据,只需绑定Adapter即可。:容器控件,整体由一个个子元素item组成,

2024-04-08 12:25:02 1321

原创 Java反射:反射机制 Class类 类加载 反射获取类结构 反射创建类 反射暴破...

在运行状态中,对于任意一个类,能够知道其所有结构信息(如:成员属性,方法,构造器等),对于任意一个对象,都能够调用其任一个方法及属性。这种动态获取信息以及动态调用对象的方法的功能称为Java语言的反射机制。

2024-03-30 20:05:15 958 2

原创 Java:Properties类 查询修改配置文件

Java中提供了Properties类,用于对配置文件(.properties文件)进行查询和修改等操作。Properties类继承自Hashtable类,以键值对的形式存储信息。,注意键值对不需要有空格,值不需要带引号,默认形式为String。

2024-03-25 21:44:57 689 3

原创 Java网络编程基础:TCP Socket套接字编程 IntAddress UDP等...

在主机中,端口号1~1024是系统保留端口号,用来为常用的网络服务程序所占用。为了准确地定位网络上的目标主机,网络中的每个设备都会有一个唯一的数字标识,即网络设备的IP地址,通过ip地址,可以精确地匹配目标主机,是网络中资源共享、数据传输的依据。当客户端连接到服务端后,实际上客户端也是通过一个端口和服务器端进行通讯的,这个端口是TCP/IP来分配的,是不确定的,是随机的。Socket应用程序来说,需要与服务器端建立连接(通过ip和端口号确定主机上的程序),并向服务器端发送数据,接收服务器端数据;

2024-03-24 20:11:11 1065 2

原创 Android开发基础:四大组件 视图 事件监听 控件与布局

视图层采用视图树(View Tree)模型:用户界面中的界面元素以树型结构组织在一起,整个视图界面为一个视图树模型。视图树:由View控件或ViewGroup构成。View控件是界面的最基本的可视单元,是Android视图界面的基类。ViewGroup是由其它View或ViewGroup组成的显示单元,继承自View类,ViewGroup提供了布局方法。

2024-03-24 15:55:33 2799 3

原创 Java IO流基础:IO流 文件 字符流 字节流 处理流等...

Java IO流的四个抽象基类如下,Java IO流都是从这四个基类派生出的,由这四个类派生出的子类名称都是以其父类名称作为子类名后缀,例如:FileInputStream就是字节输入流,FileWrite就是字符输出流。,在序列化时,会将对象的serialVersionUID写入到字节序列中,反序列化时会检查接收方对象的serialVersionUID是否与序列化时写入的一致,如果一致则反序列化成功,不一致则报错。,也可以提供更方便的方法来完成输入输出,此外,处理流不会与数据源直接接触。

2024-03-13 14:12:06 1096

原创 Java线程基础:Thread Runnable 多线程 Synchronized 死锁...

我们在通过Runnable接口实现多线程时,需要创建Thread类对象,并通过构造器传入实现Runnable的对象,那么在这里,我们可以实例化多个Thread类对象,并传入相同的对象,这样不同线程所对应的对象就是相同的。如果想要join1线程在join2线程执行完之后才执行,可以用线程插队join,在join1线程中调用join2.join(),join2就会插在join1之前执行,join2执行完后,join1才会执行。假如有两个线程A,B,将B设为A的守护进程,那么A线程结束后,B线程会跟着结束。

2024-03-05 16:29:15 1178 1

原创 AcWing周赛 B~C

根据每个字母的位置算出他们的权值,依次相加起来就是最终的权值,例如根据abc,abcd这两个单词可算出a的权值为1000 + 100 = 1100。最后根据权值排序,权值越大赋值越小,注意首字母不能赋值为0。

2023-12-10 14:06:20 181 1

原创 牛客周赛 Round 15 D.游游的树上边染红, 树形dp

用dp[u][1]表示选取了u与他父节点之间的边,dp[u][0]表示未选取。首先,假设j是u的子节点,那么无论是否选取u与父节点的边,均可以加上dp[j][0]的情况。此外,若不选u与父节点之间的边,那么就可以选择u的子节点j与u之间的边,所以dp[u][0]需要加上u与子节点之间最长的边。(dp[u][1]初始赋值为u与父节点之间边的权值)

2023-10-16 19:13:46 134 3

原创 Codeforces Round 903 (Div. 3) A~F

暴力,字符串arr1的长度不超过25,暴力枚举即可。

2023-10-14 16:39:15 426 2

原创 CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!) B~D

a, b两个数组。可以选择b中的任一个数,与a数组所有元素进行或运算,求最终a数组异或和的最大值。:进行一次或运算之后,a数组的二进制位上的1会确定下来,所以当a数组长度为偶数时,最大值为a数组原本的异或和,因为我们此时只能增加相同的二进制位,所以不做任何操作就是最大,最小值就是使相同的位数尽可能多,就是b数组全部或起来,再与a数组每个数进行或运算。奇数情况同理。

2023-09-21 21:20:16 176 1

原创 Codeforces Round 896 (Div. 2) A~D

长度为偶数,从1到n操作两次。长度为奇数,先从1到n操作一次,然后从1到n - 1做两次,最后n - 1到n做一次。

2023-09-12 16:55:06 210

原创 Educational Codeforces Round 154 (Rated for Div. 2)A~C

给定一个包含1到9的字符串,要求删除最多7个字符,是否可以表示为一个质数。:暴力枚举所有的两位数即可。:给定两个0开头,1结尾,只包含01的字符串,可以对两个字符串进行任意次如下操作:选定两个相同的字符,将两者之间的所有字符都变为这个字符。问是否可以使两个字符串相同。:如果能找到一个位置使得在这个位置上,两个字符串都为1,且左边为0,那么就可以做到。

2023-09-01 20:13:40 257 2

原创 Pinely Round 2 (Div. 1 + Div. 2) A~D

有n个订阅者,a个初始在线人数,q个上下线情况,问是否一定或有可能所有订阅者都阅读了新的帖子。:同时在线人数等于n时,一定都阅读了,输出YES。初始在线人数加上所有的上线人数(所有的+号)大于等于n的话输出MAYBE。否则输出NO。

2023-08-31 21:23:42 267

原创 Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2) A~D

给出x, y, n,构造长度为n的递增数列使得 a1 = x, an = y, 并且相邻元素的差值递减。如果不能构造输出-1。:如果能够构造出来,那么y - x的值应该大于 1 到 n - 1 的累加。构造时从y开始,依次向前 -1 -2 -3....即可。

2023-08-27 16:13:33 157 3

原创 【数论】矩阵快速幂,递推优化,模板

矩阵快速幂推导及模板

2023-08-12 19:15:04 271 3

空空如也

空空如也

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

TA关注的人

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