自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kotlin——幕后属性、延迟初始化属性

【代码】Kotlin——幕后属性、延迟初始化属性。

2024-01-18 16:16:43 602

原创 Kotlin——面向对象编程

如果将open和abstract两个修饰符放在一起使用,编译器会发出警告,open是Kotlin新引入的修饰符,open是final的反义词,用于修饰一个类、方法、或属性,表明类可派生子类、方法或属性可被重写一个Kotlin类可以有01个主构造器和0N个次构造器。

2024-01-18 13:59:32 549

原创 Kotlin——集合

Kotlin为Collection接口派生了一个子接口,即MutableCollection,该子接口又包含了两个子接口:MutableSet和MutableList,这一分支表示Kotlin的可变集合,只有可变集合才可以添加、删除、修改元素、不可变集合只能读取元素。

2024-01-18 13:59:09 375

原创 Kotlin-内联函数inline

内联函数不需要产生额外的生成函数对象,也不需要产生捕获,也不需要处理函数调用的压栈和出栈开销如果将inline取消,系统会生成对应的class文件,这表明系统将会为Lambda表达式额外生成一个函数对象,自然也会产生函数调用的压栈和出栈的开销。

2024-01-17 15:02:11 423

原创 Kotlin-数组

可以通过Array来创建数组,也可以通过arrayOf()等工具创建数组。Kotlin中创建数组有两种方式。

2024-01-12 11:18:56 421

原创 kotlin——流程控制

除了范围还可以使用is判断是否为某种类型而进入判断。when分支取代了Java原有的switch语句。

2024-01-11 15:53:54 488

原创 kotlin-运算符

num1 in 7 downTo 1 step 2 在in后面的全部内容是一个表达式,并不是num1 in 7 代表一个表达式。半开区间运算符a until b 用于定义一个从a~b(包括a边界值,但不包含b边界值)的所有值的区间,a不能大于b。现在默认的区间步长都是1,也就是区间内的两个值差值是1,而通过step运算可以显示指定区间的步长。如果希望区间从大到小,可以使用downTo运算符,对于a downTo b来说,b不能大于a。

2024-01-11 15:17:05 485

原创 Kotlin-变量定义,与类型

Kotlin可以定义的时候不标明数据的数据类型,编译器会根据初始值确定类型var b:Int//声名变量的时候指定初始值,编译器会根据初始值确定该变量的类型为Stringb = 20var sum :String = 500 //当变量的类型已经确定,但是用户赋值不一致时会报错val a = "你好"

2024-01-11 14:28:40 965

原创 Framework.jar的导入

在app下的build.gradle的文件中写。在最外层的build.gradle添加。

2023-10-10 18:36:32 118

原创 Service和启动其他应用的功能和替换Fragment

System.currentTimeMillis()的时间会有误差,如果时区不同会造成误差,所以使用SystemClock.elapsedRealtime();其中从最近任务栏进入wps如果不经过特殊处理则不能进入。2.修改SERVICE。

2023-10-10 18:17:50 146

原创 UI线程和bitmap

AsyncTask 的四个方法,只有 doInBackground 方法是运行在其他线程中,其他三个方法都运行在 UI 线程中,也就说其他三个方法都可以进行 UI 的更新操作。在ondraw时候尽量不要处理太多的事情,比如画圆什么的,移动的尽量是一个固定的图片,比如移动bitmap。不能在 UI 线程中进行耗时操作,否则会阻塞 UI 线程,引起 ANR、卡顿等问题。只能在 UI 线程中调用 AsyncTask 的 execute 方法。只能在 UI 线程操作 UI 视图,不能在子线程中操作。

2023-10-09 19:04:47 397

原创 Android第三方库的使用

使用getJson读取json文件里面的内容,然后使用gson.fromJson配合item项读取factorytextItem,最后setItem。保存数据使用mSignalSourceBean.save();这样就可以保存数据库中的数据。在Application中使用。

2023-10-09 17:53:59 142

原创 Kotlin的遍历方法

10表示的是1到10,两边都是闭包,输出12345678910。也没有问题,可以用downTo方法来实现。上面代码在java中的表达式为。可以使用in来判断成员关系。

2023-08-31 18:22:02 1047

原创 Kotlin,解决调用了函数但是函数体内没有执行的问题,什么时候使用invoke

就是=和{}不能同时使用,如果同时使用则调用的时候需要使用()或者.invoke()才可以正确调用到函数体内的代码。

2023-08-31 11:17:45 656

原创 kotlin实现猜数游戏

1.程序随机生成一个1到100的数字,作为MagicNumber。2.用户根据提示输入数据,只有三次机会输入数据。代码很简单,使用了let内置函数。

2023-08-30 18:22:03 1172

原创 Kotlin的内置函数 apply、let、run、with、also

方法返回值自身指代是否传参let最后一行it否apply自身this否run最后一行this否with最后一行this是also自身it否。

2023-08-30 17:00:19 755

原创 kotlin的== 和 === 的区别

因为这里的a经过装箱后本身已经一个对象,所以赋给a1和a2的时候是把直接把对象a赋给它们,所以此时a1和a2指的是同一个对象(对象a)。既然是同一个对象,那么数值大小和地址肯定都是相等的了(也就是说a,a1和a2这三个对象指向同一处地址,所以其实。所以无论是 a == a 还是 a === a 都是返回true,因为是同一个变量,数值大小和地址都是相等的。之间的数装箱时并不会创建新的对象,所以这里a1和a2装箱后的对象是同一个,a1 ===a === a1和a === a2也是返回true)。

2023-08-30 14:43:45 895

原创 启动服务报错:Context.startForegroundService() did not then call Service.startForeground():

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground():

2022-10-19 19:58:07 7220 2

原创 百分比布局导入依赖以及使用——第一行代码

但是第一行代码的Android版本太低了,所以会遇到很多小白解决不了的问题,比如安卓中版本规则的修改问题。还有就是写的时候可能没有写完也会报错的,所以读者不妨先将我的代码复制到自己的AndroidStudio中看看报错不报错,然后再自己写一遍。我在我的build.gradle中添加了这几句,最初我输入的版本也是24.2.1版本但是系统提示版本不对,查看之后发现我的。这里值得一提的是经过第一步的步骤最外面的标签以及不报错了,但是Button报错,主要是因为。一定要看自己的targetSdk版本,要对应的。..

2022-07-27 16:55:06 562

原创 在Vue中,主体的组件每个都出现了两次

第一次接触Vue,跟着视频学习,发现在主体中每个组件都出现了两次,看别人写的博客也看不懂,只能看着视频在慢慢检查,还是没有发现错误。但是发现在,只有主体重的重复了两次,侧边栏和导航栏都没有出现两次<template> <div><!-- 头部--> <Header /><!-- 主体--> <div style="display: flex"><!-- 侧边栏-->

2022-04-09 14:18:42 2025 2

原创 MyBatis参数传递,注解开发

MyBatis接口方法中可以接受各种各样的参数,MyBatis底层对于这些参数进行不同的封装处理凡是MyBatis提供了ParamNameResolver类来进行参数封装MyBatis 参数封装:1.POJO类型:直接使用,属性名,和参数占位符名称一致2.Map集合:直接使用,键名和参数占位符名称一致3.Collection:封装为Map集合map.put(“arg0”,collection集合)map.put(“collection”,collection集合)4。List:封装为Map集

2022-04-05 15:42:41 551 1

原创 在MyBatis中遇到的Type interface com.itheima.mapper.UserMapper is already known to the MapperRegistry.问题

在学习MyBatis时遇到了如下错误:主要是由两个原因组成的:org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may exist in com/itheima/mapper/BrandMapper.xml### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mappe

2022-04-03 23:18:47 2003

原创 IDEA如何导入Maven项目、依赖管理(使用坐标导入jar包)

一、将项目复制到工作空间中(就是项目所在文件夹)二、找到项目的pom文件,双击就可以导进来使用坐标导入jar包在pom.xml中编写<dependencies>标签在<dependencies>标签中 使用<dependecy>引入坐标定义坐标的groupId,artifactld,version点击刷新按钮,使坐标生效这个是刷新按钮如果经常忘记点击刷新,那么就无法配置成功,但是可以这样就可以不用点击刷新,修改完成之后自动刷新如果不

2022-04-01 22:28:33 1953 1

原创 java——设计模式

工厂模式什么是工厂设计模式之前我们创建类对象时,都是使用new对象的形式创建,在很多业务场景下也提供了不直接new的方式工厂模式(Factory Pattern)是java中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种获取对象的方式工厂设计模式的作用:工厂的方法可以封装对象的创建细节,比如:为该对象进行加工和数据注入可以实现类与类之间的解耦操作(核心思想)对象通过工厂的方法创建返回,工厂方法可以为该对象进行加工和数据注入装饰模式创建一个新欸,包装原始类,从而在

2022-03-30 13:13:28 509

原创 java——XML、XML解析、设计模式

XML概述XML时扩展性标记语言(eXtensible Markup Language)的缩写,他是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据XML的使用场景:XML内容经常被当消息进行网络传输,或者作为配置文件用于存储系统的信息XML的语法的规则XML文件的后缀名为:xml文档声明必须是第一行标签由一对尖括号和合法标识符组成: <name></name>,必须存在一个根标签,有且只能有一个。标签必须成对出现,有开始,有结束: <n

2022-03-30 12:51:59 580

原创 java——线程

线程概述什么是线程线程是一个程序内部的一条执行路径我们之前启动程序后,main方法的值其实就是一条单独的执行路径程序中如果只有一条执行路径,那么这个程序就是单线程的程序多线程是什么多线程是指从软硬件上实现多条执行流程的技术多线程用在哪里,有什么好处如:通过是下载,或者下载的同时一起下载多线程的创建方式一:继承Thread类java是通过java.lang.Thread类来代表线程的按照面向对象的思想,Thread类应该提供了实现多种线程的方式定义一个子类MyThread

2022-03-26 21:54:19 550

原创 java——IO(二)

缓冲流缓冲流概述缓冲流也称为高效流,或者高级流。之前学习的字节流可以称为原十六作用:缓冲流自带缓冲区,可以提高原始字节流,字符流读写数据的性能缓冲流的作用:缓冲流自带缓冲区,可以提高原始字节流、字符流读写数据的性能字节缓冲流字节缓冲流的优化原理:字节缓冲输入流自带了8KB缓冲池,以后我们直接从缓冲池读取数据,所以性能比较好字节缓冲输出流自带了8KB缓冲池,数据就直接写到缓冲池中去,写数据性能极高了public static void main(String[] args) {

2022-03-22 11:15:45 363

原创 java——File、方法递归、IO流

File类概述先要定位文件- File类可以定位文件:进行删除:获取文本本身信息等操作- 但是不能读写文件内容读写文件数据- IO流技术可以对硬盘中的文件进行读写File类在包java.io.File下、代表操作系统文件对象(文件、文件夹)File类提供了诸如:定位文件,获取文件本身的信息,删除文件、创建文件(文件夹)等功能...

2022-03-18 21:29:06 360

原创 java——日志框架

日志技术的概述生活中的日志:生活中的日志就好比日记,记录生活的点点滴滴程序中的日志:程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储输出语句的弊端信息只能展示在控制台不能将其记录到其他位置(文件,数据库)想取消记录的信息需要修改代码才可以完成日志技术具备的优势可以将系统执行的信息选择性的记录到指定的位置(控制台,文件中,数据库中)可以随时以开关的形式控制是否记录日志,无需修改源代码日志技术体系日志规范:一些接口,提供给日志的实现类框架设计的标准日志框架:牛人或

2022-03-16 11:22:43 335

原创 java——异常处理

什么是异常异常时程序在“编译”或者“执行”的过程中可能出现的问题:注意:语法错误不算是异常体系中比如:数组索引越界、空指针异常,日期格式化异常等为什么要学习异常异常一旦出现了,如果没有提前处理,程序就会退出JVM虚拟机而终止研究异常并且避免异常,然后提前处理异常,体现的是程序的安全,健壮性 public static void main(String[] args) { int[] arr={10,20,40}; System.out.println(

2022-03-14 13:11:55 378

原创 java——Stream流

创建不可变集合什么是不可变集合不可变集合,就是不可以被修改的集合。集合的数据项在创建的时候提供,并且在整个生命周期都不可改变。否则报错为什么要创建不可变集合如果某个数不能被修改,把他预防性的拷贝到不可变集合是个很好的实践或者当集合对象不可信的库效用时,不可变形式是安全的如何创建不可变集合在List、Set、Map接口中,都存在of方法,可以创建一个不变的集合...

2022-03-13 16:30:51 1661 1

原创 Map集合

HashMap由键就决定:无序、不重复、无缩影。HashMap底层是哈希表结构的依赖hashCode方法保证键的唯一如果键要存储的是自定义对象,需要重写hashCode和equals方法基于哈希表。增删改查的性能都较好LinkedHashMap集合由键决定:有序、不重复、无索引这里的有序指的是保证存储和取出的元素顺序一致原理:底层数据结构是依然哈仪表,只是每个键值对元素有额外多了一个双链表的机制记录存储的顺序Map<String,Integer>maps=new Lin

2022-03-09 22:26:16 125

原创 Map集合遍历方式

Map集合遍历方式一:键找值先获取Map集合的全部键的Set集合 //Set key=map.keySet();遍历键的Set集合,然后通过键提取对应值map.getValue() Set<String> keys=maps.keySet(); for(String key1:keys){ int valu1e=maps.get(key1); System.out.println(key1+"====>

2022-03-09 21:37:21 9507

原创 Map集合

Map集合是一种双列集合,每个元素包含两个数据Map集合的每个元素的格式:key=value(键值对元素)。Map中使用最多的集合是HashMap键不可重复,值可重复Map集合的特点都是由键决定的Map集合的键是无序,不重复的,无索引,值不做要求(可以重复).Map集合后面重复的键对应的值会覆盖前面重复键的值。Map集合的键值对都可以为nullMap集合实现类的特点HashMap:元素按照键是无序,不重复,无索引,值不做要求(与Map体系一致)...

2022-03-09 13:16:29 105

原创 MySQL数据模型

关系型数据库关系型数据库时间里在关系模型基础上的数据库,简单说,关系数据库是由多张能互相连接的二维表组成的数据库优点1. 都是使用表结构,格式一致,易于维护2. 使用通用的SQL与操作,使用方便,可用于复杂查询3. 数据存储在磁盘中,安全。SQL简介英文:Structured Query Language结构化查询语言,一门操作关系数据的编程语言定义操作所有关系型数据库的统一标准对于同一个需求,每一种数据操作的方式可能会存在一些不一样的地方,我们称为方言SQL通用语法SQL语句

2022-03-07 17:29:27 1767

原创 MySQL的安装以及出现出现ERROR 1045 (28000)问题的解决

MYSQL文件夹的介绍binbin目录下放了可执行文件docs里面存放的是文档include里面放了头文件lib存放的是库文件share存放语言和字符集相关的信息COPYING存放的是一些版权信息README开源协议信息MYSQL环境变量设置...

2022-03-07 15:00:20 5416

原创 java——set系列集合

Set系列集合特点无序:存取顺序不一致不重复:可以去除重复无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素Set集合实现类特点HashSet:无序、不重复、无索引LinkedHashSet:有序,不重复,无索引TreeSet:排序、不重复、无索引Set集合的功能上基本上与Collection的API一致public class SerDemo { public static void main(String[] args) {

2022-03-05 20:33:51 886

原创 java——泛型

集合体系的全部接口和实现类都是支持泛型的使用的泛型的格式:<数据类型>;注意:泛型只能支持引用数据类型修饰符 class 类名<泛型变量>{}public class MyArrayList<T>{}此处泛型变量T可以随便写成任意表示,常见的如E,T,K,V等作用: 编译阶段可以指定数据类型,类似于集合的作用泛型方法定义方法的同时定义了泛型的方法就是泛型方法泛型方法的格式:修饰符 <泛型变量> 方法返回值 方法名称(形参列表){}publ

2022-03-02 15:26:07 184

原创 java——List系列集合

List系列集合特点ArrayList,LinekList:有序,可重复,有索引有序:存储和取出的元素顺序一致有索引:可以通过索引操作元素可重复:存储的元素可以重复常见操作public static void main(String[] args) { List<String> list=new ArrayList<>(); list.add("java"); list.add("Java"); list

2022-03-02 14:07:17 434

原创 java——红黑树

红黑树是一种自平衡的二叉查找树,是计算机科学中用到的一种数据结构每一个节点可以是红或者黑;红黑树不是通过高度平衡的,他的平衡时通过“红黑规则”进行实现的红黑规则每一个节点或者红色,或者是黑色,根节点必须是黑色。如果一个节点没有子节点或者父节点,则该节点相应的制作属性值为Nil,则这些Nil视为叶节点,叶节点是黑色如果某一个节点是红色,那么他的子节点必须是黑色(不能出现两个红色节点相连的情况)每一个节点,从该节点到其所有后代叶节点的简单路径上,均包含相同数目的黑色节点与其他二叉树对比,多了一.

2022-03-01 23:27:45 415

空空如也

空空如也

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

TA关注的人

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