自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小牧在一直在学习,在前进的道路上大家一起学习,进步。

期待 是心痛的根源 心不动 则不痛。

  • 博客(1353)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 C++中-> 和 .

当有一个实际的对象或者对对象的引用时,使用 . 来访问该对象的非静态成员变量或调用其成员函数。当有一个指向类或结构体实例的指针时,需要使用 -> 来访问该指针所指向的对象的成员。-> 用于通过指针间接访问类或结构体实例的成员。. 用于直接访问类或结构体实例的成员。-> 和 . 的作用。结合demo 说明下。

2024-02-20 11:16:51 293

原创 C++ 遍历map的3中方法

> 用于通过指针间接访问类或结构体实例的成员. 用于直接访问类或结构体实例的成员。

2024-02-20 11:04:09 379

原创 C++ tuple 的使用

tuple的作用C++ 中的std::tuple是标准库提供的一个容器,它可以存储任意数量、任意类型的元素。相比于只能存储两个元素的std::pairstd::tuple允许你创建包含更多元素的数据结构,并且这些元素可以是不同类型的。获取tuple的值来访问指定索引位置的元素。索引从0开始。例如:int intValue = std::get(myTuple);// 访问第一个元素(int 类型)// 访问第二个元素(std::string 类型)// 访问第三个元素(double 类型)

2024-02-08 17:40:14 425

原创 C++ pair 的使用

是标准模板库 (STL) 提供的一个容器,它能够存储两个不同类型的数据作为一个整体,其中。:访问 pair 的第一个元素。:访问 pair 的第二个元素。

2024-02-08 17:27:49 944

原创 C++ std::function

通用体现在function可以,包括普通函数指针、成员函数指针配合合适的实例指针、Lambda表达式以及bind产生的绑定表达式等,还有在运行的时候无需知道具体将要执行的是哪个函数或函数对象。是一个通用的函数对象包装器,它可以存储任何可调用对象(如函数、成员函数、Lambda表达式等)的引用或拷贝,并且可以像普通函数一样被调用,安全体现在function 后面的泛型,可以使用泛型设置不同的场景可调对象,还能保证类型的安全。总结它的出现体现的好处就是通用,还有类型安全。时确实需要包含头文件。

2024-02-08 16:15:44 369

原创 C++ .h文件类的调用

实际用不用,根据个人习惯即可,不使用using namespace在每次调用时都写出完整的命名空间路径。调用的时候首先要引入这个头文件 #include "util.h"cpp 里面实现,这里不使用using namespace。使用using namespace。把util.h 文件修改一层一层的。下面写一个util.h 文件里面。实现里面的方法效果也是一样的。

2024-02-08 11:29:31 879

原创 C++ 函数与函数指针

函数指针是一种特殊的指针类型,它能够存储函数的地址。在C++中我们都知道,函数是一个可执行的代码快,如果要定义一个加法的函数指针。常用的是使用typedef。

2024-02-07 17:14:48 159

原创 C++ lambda [],[=] ,[&],[this] 的使用

对这些按值捕获的变量进行修改时,只会改变其副本的值,不会影响到原始的外部变量。Lambda 内部将获得一个指向外部变量的引用,所以对这些按引用捕获的变量进行修改时,会影响到原始的外部变量。按照值,按照引用, 一个可以修改,可以不可以修改,这个感觉本身上语法就有一些矛盾,[],[=] ,[&],[this] 都是捕获列表。[&] 的作用: 引用捕获所有外部作用域内的变量。大家看的挑选对自己有用的就行,不用刻意取较劲,如果把修改局部变量的++a 放开是会报错的。[=] 的作用: 按值捕获所有变量。

2024-02-07 14:56:19 704

原创 C++ bool 布尔类型

在C++ 中 bool类型占用1个字节长度,bool 类型只有两个取值,true 和 false,true 表示“真”,false 表示“假”。需要注意的C++中使用cout 打印的时候是没有true 和 false 的 只有0和1 ,这里0表示假,非0表示真。

2024-02-07 09:48:32 1263

原创 C access 的作用

在C++中,access()函数主要用于检查文件的访问权限。这个函数并不是C++标准库的一部分所以使用的时候需要引入头文件#include __path:一个指向包含路径名的字符串的指针,该路径指向要检查权限的文件或目录。当这个值为0的时候表示文件具有所请求的所有权限 此时是成功返回。当这个值为-1的时候表示出错或者进程没有所请求的权限之一。R_OK:检查是否具有读取权限。W_OK:检查是否具有写入权限。X_OK:检查是否具有执行权限。F_OK:检查文件是否存在。返回的是一个int值。

2024-02-06 17:55:29 291

原创 C++ 可变参数模版 在typename或class后面带上省略号...

可接纳的模板参数个数是0个及以上的任意数量。C++ 可变参数模版作用。

2024-02-06 16:17:28 157

原创 C++ 中 catch (...) 3个小点点的作用

表示捕获所有类型的异常。这意味着无论抛出的是何种类型的异常,这个 catch 块都会尝试捕获并处理它。

2024-02-06 15:34:53 191

原创 C++ 值传递,引用传递,以及指针传递

通过传递变量地址间接访问和操作变量,提供了更灵活的内存访问方式,同时也支持改变原变量值。不复制变量,而是提供对原变量的直接访问,函数内部操作可改变原变量值。直接复制变量值给函数使用,函数内部不影响原变量。

2024-02-06 14:56:03 470

原创 C++ 中template 模版

C++模板(Templates)主要是编写泛型代码,在编译时为不同数据类型生成相应的函数或类实例,主要有函数模板,类模板。

2024-02-06 14:13:03 258 1

原创 C++ [[fallthrough]] 的作用

是一个属性指定符(attribute specifier),用于明确标记 switch 语句中的 fallthrough 行为是故意的。的作用在于消除歧义,它告诉编译器这个 fallthrough 是有意为之而非编程错误,这样编译器就不会对此发出警告或错误提示。语句,在某些编译器是报错的,在某些情况下我们需要不用break ,这个时候就需要使用。当一个 case 分支执行完毕后没有遇到。在 C++17 中,

2024-02-06 10:37:37 264

原创 File类知识点回顾

File 是文件和目录路径名的抽象表示。用户界面和操作系统使用依赖于系统的路径名字符串来命名文件和目录。此类提供了一个抽象的,与系统无关的分层路径名视图。抽象路径名有两个组成部分:可选系统有关的前缀字符串,如磁盘驱动器符, "/"对于UNIX根目录下,或者"\\\\"的Microsoft Windows UNC路径,并一个零个或多个字符串名称的序列。

2024-01-28 22:37:06 296

原创 kotlin 项目中文件显示带.kt 结尾与不带.kt结尾

如果一个文件 只有一个类,其他的函数,接口 ,等都在这个类里面这种情况显示的效果是不带.kt结尾,与之相反的如果如果有其他的接口,类,或者整个文件只定义一些变量,这个这个类的外面显示效果带.kt结尾。首先说下,这个只是开发工具上的一个设计细节展示,无论显示效果是否带.kt 实际的文件都是带.kt结尾的,这个可以到文件的目录下查看文件。创建文件的时候选择Class 显示效果不带.kt ,选择file 显示效果带.kt 结尾 不过这个显示效果。总之这个只是编译器的一种显示效果,跟文件是否带.kt没有任何关系,

2024-01-26 16:09:22 201

原创 kotlin data clas 数据类

toString() 格式是 "User(name=John, age=42)"val 声明的参数类似java的final ,data clas 里面不会有 set方法。提供的一个内置工具,用于创建现有实例的一个副本,并允许你修改部分属性值。.componentN() 函数 按声明顺序对应于所有属性。主构造函数中的每个属性,Kotlin会根据构造函数的个数生成相应的。var 声明的参数data clas 里面有 set方法。.equals()/.hashCode() 对。.copy() 函数。

2024-01-26 15:34:53 592

原创 java split 拆分字符串

kotlin中split 的用法跟python 中的split 用法是一样的,java中由于返回值是String[] 的数组,所以。如果是这样String line ="java is a good";split 的作用是拆分字符串,使用的时候需要观察下字符串,是按照何种规律,可以按照那个方法拆分。例如 String line ="java is a good";在使用的时候需要注意下返回值如果要获取里面的内容,还是需要遍历下里面的内容。这个line 字符串里面每个字符间隔是逗号,拆分就可以使用逗号。

2024-01-25 00:38:52 433

原创 kotlin sum 与 sumOf

对于numbers 集合的元素乘与2 之后再计算总和。更适合于需要根据元素进行某些计算后再求和的情况。对于一个集合中,取出其中的偶数,然后再计算总和。也是计算一个列表里面数字的总和,不过。

2024-01-25 00:16:43 867

原创 java steam 的使用

说steam 前看下kotlin的一个写法如果用java怎么写。

2024-01-21 16:06:38 974

原创 kotlin Pair 和 Triple

是两种内建的数据类,用于表示固定数量的元素对和三元组。类似,但用于存储三个相关联的值。在 Kotlin 中,

2024-01-21 15:07:43 440

原创 kotlin flatten 与 flatMap

和flatMap在 Kotlin 中虽然都用于扁平化处理集合,但它们的用法和效果并不完全一样。

2024-01-21 15:02:21 480

原创 kotlin map 与 flatmap

kotlin map 与 flatmap 是2个不同的概念的map 是一种数据结构,flatmap 是一个高阶函数,处理集合用的。

2024-01-21 14:56:59 579

原创 kotlin $ (字符串模版)的使用

在kotlin 中当做字符串模版使用,作用就是在字符串里面识别自己定义的字符。这个时候编译就提示我们使用字符串模版的是个。这个里面$就是在字符串里面识别String。$ 的作用就是识别字符串里面的i。这样就可以自己命名出xxx.zip。字数有点少了,在写一个demo。使用的这个函数的时候。

2024-01-21 14:05:34 698

原创 kotlin as 和 is 的使用

kotlin 中有类型检测与类型转换章节,今天回顾看到这里记录下 详细的地址如下。

2024-01-21 13:49:36 717

原创 runOnUiThread 和 handler.post()

是基于Handler机制的方法,适用于已知有与主线程相关联Handler的情况,可以直接利用消息队列进行任务调度。同时,如果需要处理异步结果或者实现更复杂的线程间通信,Handler机制会更加灵活和强大。是Activity的方法,它更通用,不依赖于特定的Handler实例,适合在Activity或Fragment上下文中直接更新UI。这两个示例中,都是在非主线程(子线程)环境中执行的代码片段。它们都试图将一个任务发送到主线程执行。runOnUiThread 和 handler.post()

2024-01-15 23:57:02 428

原创 自定义工作线程 HandlerThread + new Handler(handlerThread.getLooper())

是一个继承自 Thread 的类,它在其内部初始化了一个 Looper,因此它是一个可以运行消息循环的线程。这意味着你在 HandlerThread 中创建的 Handler 可以处理其内部消息队列中的消息,而这些消息的处理将在 HandlerThread 所代表的工作线程中完成,而不是在主线程。HandlerThread + Handler 结合使用通常是在需要执行耗时任务(例如文件读写、大量计算、长时间等待的网络请求等),为了避免阻塞UI线程,会创建一个工作线程(如使用。

2024-01-15 23:49:15 496

原创 new Handler(getMainLooper())与new Handler()的区别

的线程中调用这个构造函数(即非主线程),如果感觉不好理解,可以把Handler handler = new Handler() 理解为常用在Activity,Fragment,带有界面的地方,如果用在自定义View 或者其他工具类中,不带界面的地方就会报错,如果就是这个,很早之前自己写的一个,如下。类,用于获取当前应用的主线程(也称为 UI 线程)的 Looper 对象。:如果没有明确指定Looper,那么会默认关联到当前线程的Looper,因此若在非主线程且未准备Looper的情况下使用,将会引发异常。

2024-01-15 23:25:02 648

原创 kotlin substring/substringAfter/substringAfterLast/substringBefore/substringBeforeLast

与substringAfterLast相反,保留最后出现字符之前的内容。与substringAfter相反,保留首次出现字符之前的内容。截取掉首次出现之前的字符,就是保留首次出现指定字符后面的内容。截取掉最后出现之前的字符,就是保留最后出现指定字符后面的内容。

2024-01-09 19:49:02 534 1

原创 kotlin map{}和maxOf{}

map 让集合中的每个元素应用给定的转换函数(transform),然后生成并返回一个新的 ListmaxOf 该函数的主要目的是在集合中找到应用 selector 函数后得到的最大值。打印结果:[2, 4, 6, 8, 10]maxOf {}的作用。

2024-01-09 19:27:46 585

原创 kotlin chunked 和 windowed

可以检索给定大小的集合元素中所有可能区间。将集合按照指定的数量分割成多个结合。

2024-01-07 16:59:01 731

原创 kotlin take 和 drop

与 takeLast() 类似:它从集合末尾获取与谓词匹配的元素区间。区间的首个元素是与谓词不匹配的最后一个元素右边的元素。如果最后一个集合元素与谓词匹配,则结果为空。与具有相同谓词的 takeLastWhile() 相反:它返回从开头到最后一个与谓词不匹配的元素。它将不停获取元素直到排除与谓词匹配的首个元素。如果首个集合元素与谓词匹配,则结果为空。与具有相同谓词的 takeWhile() 相反:它将首个与谓词不匹配的元素返回到末尾。从尾开始获取指定数量的元素。从尾去除给定数量的元素。

2024-01-07 16:48:28 741

原创 Kotlin slice 取集合的一部分

slice() 返回具有给定索引的集合元素列表。索引既可以是作为区间传入的也可以是作为整数值的集合传入的。kotlin slice 的作用。

2024-01-07 15:51:55 381

原创 Android AIDL 创建的DEMO

Android 接口定义语言 (AIDL) 与您可能使用过的其他接口语言 (IDL) 类似。您可以利用它定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。在 Android 中,一个进程通常无法访问另一个进程的内存。因此,为进行通信,进程需将其对象分解成可供操作系统理解的原语,并将其编组为可供您操作的对象。编写执行该编组操作的代码较为繁琐,因此 Android 会使用 AIDL 为您处理此问题。

2024-01-07 14:08:49 1419

原创 Android studio 无法创建AIDL文件

处理方法在app下面的build.gradle中的buildFeatures 添加 aidl = true。Android studio 创建AIDL文件的时候 提示是灰色的无法创建。这个是 kotlin的写法,如果是使用的旧项目修改下格式就行。

2024-01-07 13:31:47 667

原创 kotlin first/last/indexOf/elementAt

Log.d("======first", numbers.first { it.length > 6 }) //报错 java.util.NoSuchElementException。Log.d("======first", numbers.elementAt(8)) //报错。elementAt 也有这种情况当给出的下标集合中不存在的时候也是会报错的比如。elementAtOrNull的作用判断条件符合返回元素,不符合返回null。参数映射为一个集合元素类型的实例。last 是取集合元素中最后一个元素。

2024-01-03 00:04:49 783

原创 kotlin Elvis 运算符 ?:

用于返回非null的值,避免调用空的对象,它被称为“安全导航操作符”或“空值合并运算符”。当左侧表达式可能为 null 时,如果其非空,则返回该表达式的值;否则返回右侧的默认值。通过这个demo 可以看出如果str不为null 返回?:右侧的值,如果是null 返回左侧的值。kotlin Elvis 运算符?这个符号简化了kotlin的条件判断。例如 上面的demo 类似下面的判断。下面写一个demo具体说明下。定义一个data数据。

2024-01-02 22:58:26 393

原创 kotlin orEmpty

具体的作用:避免因尝试访问 null 字符串而抛出 NullPointerException。如果orEmpty要跟的内容不为空则原来的值输出,如果为null怎么返回空字符串。写几个demo 说明下orEmpty的使用。orEmpty的作用。

2024-01-02 22:32:57 387

原创 kotlin isEmpty()和isBlank()的区别,以及ifEmpty和ifBlank

isEmpty() 只关心字符串是否有任何字符, isBlank() 关注的是字符串中的字符是否具有实际可见的内容。isEmpty()和isBlank()的区别。" ".isEmpty() 为false。" ".isBlank() 为true。

2024-01-02 17:29:57 492

json-lib 导入所需要的6个jar 包

json-lib 导入的jar 包 里面有6个jar包 ,自己在apach 上下载的放到一个文件夹里面了,自己使用没有问题。。。。。

2019-09-03

Fragment的demo里面添加了tablayout

fragment的demo,很简单使用,里面换有tablayout的demo,

2017-12-05

OnActivityResult

OnActivityResult 和putExtra 详解的demo,很详细,一看就懂的。

2017-11-16

悬浮的扇形菜单CircularFloatingActionMenu

CircularFloatingActionMenu悬浮的扇形菜单,使用的时候需要 compile 'com.oguzdev:CircularFloatingActionMenu:1.0.2'

2017-10-26

Recyclerview实现的瀑布流效果

Recyclerview实现的瀑布流效果

2016-03-25

调用手机相机,手机相册,图片裁切

朋友给我的demo 学习了,在这里给大家分享一下,希望能帮助大家。

2016-02-03

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

TA关注的人

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