自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 问答 (1)
  • 收藏
  • 关注

原创 对springboot json模块的BasicJsonParser类进行注释学习

【代码】对springboot json模块的BasicJsonParser类进行注释学习。

2024-03-14 17:06:09 505

原创 遍历数组对数据进行删除操作的技巧

相信大家都遇到过,当你遍历数组,然后对某项数据进行删除操作的时候,出现数据错乱,以前处理的方式性能比较差,逻辑也复杂,今天看到以下的处理技巧,分享一下。删除之后,进行以下操作。

2023-12-19 11:16:17 373

原创 Android 打包的apk禁止调式

2023-12-15 16:07:06 78

原创 在app内启动不了第三方app

正常情况下,这是能启动的,但是当applicationId不是包名的时候,就启动不了,比如在更改包名的时候,applicationId没有改,就会出现applicationId和包名不一致的情况。我试着在另外一个app启动我的app,代码如下,但是启动不了。

2023-12-09 19:34:59 81

原创 idea创建一个微服务项目

添加下面的配置, groupId artifactId version 是父pom(最外层的pom)的 groupId artifactId version ,在父pom中可以看到,就是把父pom关联到微服务中。3.基于这个项目创建model,model也是一个Maven项目,基于springboot mvc 都行, 创建的模块就是微服务了,每个都可以独立运行。注: 另外在父pom(最外层的pom)中加入的依赖库,在微服务的pom中不用重复添加 比如springboot 全家桶。

2023-09-13 14:55:42 868

原创 二进制转换成八进制、十进制、十六进制

2023-07-18 11:42:18 54

原创 十进制小数和二进制、八进制、十六进制小数的转换

2023-07-18 11:21:38 62

原创 十进制和二进制、八进制、十六进制转换

十进制整数换成十六进制,除 16取余法。十进制整数换成8进制,除 8取余法。

2023-07-17 17:36:43 46

原创 Java http请求头相关内容记录

getHeaderNames()获取请求头的所有name值,返回的数据也是一个枚举类型数据,将枚举中的元素遍历出来,根据name取到value,即是请求头的所有信息。服务器的时候,http请求头的所有信息都封装在这个对象中,通过这个对象,可以获取客户端请求的所有信息。http请求包含请求行/状态行、请求头、请求体。getHeaders(String name)获取多个请求头对应的一组value,因此返回的是枚举类型的数据。request如果是post才有请求体,get则没有请求体,直接跟在?

2023-07-17 14:07:33 262

原创 线程池的理解

线程池:当需要使用线程数次多时,频繁时,每次都新建一个线程,使用完释放一个线程,需要花销性能和资源,这个时候使用线程池就能优化性能,因为线程池是可以常驻的,不是每次使用完就释放掉的。开着指定数量的线程池去处理线程任务,比如开5个,它的工作机制是每次最多处理5条线程,如果有超过5个的,就排队处理。线程池是不会关闭的一直开启着,除非手动关闭。

2023-07-15 21:48:21 35

原创 mybatic写sql在idea中有提示

【黑马程序员2023新版JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)-哔哩哔哩】 https://b23.tv/QqpQnl6。这个教程讲了 mybatic写sql在idea中出现提示,很实用,分享一下。好久没写文章了,记录一下。

2023-07-10 11:35:38 119

原创 支持 ScrollView ViewGroup ListView RecyclerView NestedScrollView长截图

【代码】支持 ScrollView ViewGroup ListView RecyclerView NestedScrollView长截图。

2022-08-20 21:29:32 175 1

原创 简单的外观模式

外观模式的本质: 1.简化接口,2.将客户从子系统中抽离出来例子: 将一连串的固定动作封装成一个动作比如 制作爆米花, 先洗干净豆子, 然后把豆子放入机器中,再然后加一些调料(比如糖),按下机器开始制作爆米花每次操作都要按步骤,每个方法调用一次,这样很麻烦。外观模式就是解决这种问题将 制作爆米花, 先洗干净豆子, 然后把豆子放入机器中,再然后加一些调料(比如糖),按下机器开始制作爆米花 这里的所有动作都封装成一个 方法, 调用这个方法就可以来代码展示一下,这些步骤都是固定的,但是每次都要固定调用

2022-06-22 15:58:26 75

原创 适配器模式

适配器模式,看看这张图便知道是做什么的准备好了吗,适配器出现了,我想用鸭子冒充一个火鸡,所以要做个适配器首先,我是只鸭子,就实现鸭子(implements Duck)的行为,但是我要对自己本身的行为做一些改造比如叫声适配成火鸡的,比如飞行方式也适配成火鸡的,但是我是鸭子,我用鸭子实例去接收( Duck redDuck =new TurkeyAdapter(new WildTurkey()); , 用Duck redDuck 接收)我仍然具备鸭子的其它许多行为和特性...

2022-06-17 09:12:56 78

原创 命令模式1

觉得命令模式最大好处就是做到解耦

2022-06-15 19:45:48 75

原创 kotlin 接口和高阶函数新特性分享

kotlin新特性

2022-06-02 16:57:12 157

原创 装饰者模式详解

个人理解装饰者模式: 1.装饰者模式的本质,就是按开闭原则去写,在不改变原有的类,而去拓展新的类,增加新的功能例子// Book 继承 IBookpublic class Book extends IBook { @Override void borrowBook() { System.out.println(getBookName() + "被借了"); } @Override void returnBook() { Sy

2022-05-29 17:04:09 179

原创 观察者模式(通俗易懂)

观察者原理:把注册为观察者的用户,有更新就发送给他们。代码实现层:本质就是获取到观察者的实例,在有更新的,调用更新相关的方法即可/** * 天气站 * 实现一个主题接口,用于管理天气预报接口着的管理 * */public class WeatherStation implements Subject { private String weather; public String getWeather() { return weather; }

2022-05-24 11:29:53 78

原创 给刚想学习设计模式的道友一些思路

废话不多说,先看设计模式的本质,设计模式是干什么的 :1.设计模式就是程序员在日常开发中总结出来的经验,形成一种设计,这种设计被称之为设计模式2.模式:是在某情境下,针对某种问题的某种解决方案3.如果你发现自己处于某个情境下,面对着所想达到的目标被一群约束影响着的问题,然而,你能够应用某个设计,克服这些约束并达到该目标,将你领向某个解决方案我们用单例设计模式来入手第二点某情境下:比如我在X类中有一个方法setTxet(String str) 和getText(), 我的需求是,在任何情境下,

2022-05-15 18:18:48 124

原创 事件分发业务流程

这张图把事件机制写的很清楚,但是一些新手可能没接触过uml 图,可能单写super 不清楚是什么,所以写这篇博文activity中的 dispatchTouchEvent@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) { return false; 或者true }1.Activity中的dispatchTouchEvent()方法 return 返回 true 和false 事件的分发都会被消费掉activ.

2022-04-28 15:11:06 121

原创 项目中加载和使用so库

![在这里插入图片描述](https://img-blog.csdnimg.cn/58d2676f3dfe42849beea5f42b204b0e.pngndk { abiFilters "arm64-v8a", "x86", "armeabi-v7a", "armeabi"}sourceSets { main { jniLibs.srcDirs = ['libs'] }}在使用so库的类里添加该代码static { System.l.

2022-04-27 15:04:49 204

原创 ServiceConnection和service通信

ServiceConnection: 我个人的理解,它的作用是调用方和service之间通信,比如activity 和service之间的通信 。start的方式启动service,activity和service是分离的,没有传该参数,因为是分离的,所以无需通信。bind方式才需要传。看上面3张便知在绑定bindService()和取消绑定unbindService()并不会调用ServiceConnection的方法注意在onBind中有一个返回值 IBinder, 你设一个返回值,它在绑定...

2022-04-16 16:30:43 968

原创 注解的使用场景和GSON中注解映射实体的实现流程(自己想象的,可能机制不同)

这是一个简单的实体类这是Gosn 封装的注解//当从后端获取一个 josn 时 如:{index : 10, age=20}// 可能它的 index 字段对应的是实体变量中的 themeID 变量//在获取index 的时候要赋值给 themeID//通过gosn , gosn 是一个自动将json转换成实体类的工具//使用SerializedName 映射 index给 themeID 看图1// 自己想象GOSN的实现原理// 基本的步骤, 实体中有变量名称等于后端的 ind

2022-04-08 12:19:11 940

原创 注解和反射常使用的方法试验

isAnnotationPresent如果使用了 返回true , 否则 flaseField 类中的属性,变量等这些属性在 SdkIdUtil 类中输出结果

2022-03-24 11:52:18 282

原创 handler的两种用法

第一种方法Handler handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); // handler会发一条信息, //在该方法中收到然后处理 switch (msg.what) { case AUTO_REFRESH:

2022-03-23 16:44:19 613

原创 阅读工具库源码的技巧和见解

首先看核心代码,找出核心功能,然后逐一分析由核心功能衍生的功能,这样就能清晰的分析一个库了。 举个例子,比如网络请求框架,找出它的基础代码,安卓网络请求基础代码(核心功能),无非就是HttpClient和HttpURLConnection或Socket,找出这一块,然后再延伸出来 比如代码库会封装一个请求头,我们顺着核心代码就很轻易找出请求头这一块代码,这样又可以缕清一部分 接着看看请求成功后的回调机制 ,又缕清它的功能和相关的类就是这样逐一分解一个库的功能,...

2022-03-18 15:55:50 115

原创 自定义控件

可以在attrs中定义属性attrs下的自定义属性 CustomItem<declare-styleable name="CustomItem"> <attr name="text_left" format="string" /> <attr name="text_left_size" format="float" /> <attr name="text_left_color" format="integer" />

2022-03-09 11:30:19 3023

原创 定时线程 ScheduledExecutorService

ScheduledExecutorService scheduledExecutorService= Executors.newScheduledThreadPool(1);scheduledExecutorService.schedule(new MyRunnable(), 10, TimeUnit.SECONDS);参数的作用: runnable : 顾名思义 long i : 指定时间执行一次 timeUnit : 时间的单位timeUnit的单位有这些// 上..

2022-03-08 16:01:31 3260

原创 通过反射跳转activity

// com.yyl.mydemo.ui.activity.ResultTestActivity 是activity的绝对路径 Class<?> resultTestActivity = Class.forName("com.yyl.mydemo.ui.activity.ResultTestActivity"); ActivityUtil.startActivity(Ma...

2022-03-08 11:07:03 243

原创 守护线程h

setDaemon(boolean on); true 为守护线程 当主线程执行完,只有守护线程,Java虚拟机将退出,不会等待守护线程执行完注意:主线程死亡jvm退出是有一定时间,再这个期间守护线程可能还会分到一些时间片执行一段操作...

2022-02-27 15:16:28 52

原创 冒泡排序讲解

冒泡排序的原理 public static void maopao() { int[] shuzus = new int[]{10, 25, 50, 24, 36, 40}; //两两比较 shuzus.length 次 每次比较 每次让最大的排在后面 for (int x= 0 ; x<shuzus.length ;x++){ // 遍历数组 // 从最小排到最大 两两比较

2022-02-26 22:33:11 57

原创 java跨平台原理

java跨平台的原理:主要是通过安装不同平台的jvm来实现跨平台 ,通俗的讲就是安装了jvm 就可以跑java程序window 平台就安装window版本的jvm同理 mac 平台安装Mac平台的jvmLinux 安装Linux jvm再举个例子 , 你是中国人, 你要和俄罗斯人沟通 你得请个俄语翻译,把中文翻译成俄文 , 俄罗斯人就能听懂了同理你要和美国人沟通,请个英文翻译, 将中文翻译成英文,美国人就能听懂java跨平台就是这样,在哪个平台就用该平台的jvm ,就能在该平台运

2022-02-25 11:43:37 246

原创 layout inspector 的使用

当布局不是用xml写,而是用代码实现,这个查看布局结构的工具就起到很大的帮助参考,比较全https://blog.csdn.net/cadi2011/article/details/85212762右边可以看到属性,由此参考来做屏幕适配

2022-02-24 09:48:29 135

原创 object实现单例(通俗易懂)

不废话,直接上图这是一个object 修饰的类,里面有一个方法打印结果地址打印是一样的,这种单例真的是神仙操作

2022-02-20 18:52:33 1272

原创 kotlin扩展函数(通俗易懂)

学习一下kotlin新特性 扩展函数扩展函数通俗的讲就是为某个“类”新建一个函数(方法)比如下面的 Utils (可以是任何kotlin类 )扩展函数就这么简单

2022-02-20 14:32:43 1038

原创 自己开发的浮标

自己之前写的浮标,代码和UI有耦合,没空修改,复制下来改改就可以用package com.yyl.mydemo.view; /** * @author 林雷 * @email [email protected] * 悬浮窗 (浮标) * yl_float_right yl_float_left 两个图片是浮标分别隐藏在左右屏幕漏出来的小半边 * 使用: * 使用 activity : ActivityUtil.getTopActivity() */public class

2022-02-20 00:25:38 143

原创 by lazy

作用:延迟初始化特点1.by lazy 该变量是引用不可变的,只能用val 声明,不能通过var来声明2.在首次被调用时才会进行赋值 ,一旦赋值后续不可改变打印结果, 只进入该方法一次,只赋值一次...

2022-02-19 13:44:50 303

原创 委托模式呵

简单 委托模式 Main调用Student的sayHello方法时 Student 拥有People的实例 将SayHello委托给People的SayHello的方法去执行。

2022-02-19 11:39:57 37

原创 文本对比工具

看到代码管理器中的代码对比工具和一些文本对比工具,很好奇是怎么做的想了个思路,自己制作了一个文本对比工具类多长文本都支持的结果代码分享到我的github 上 把我开发的工具库放到github上 呵呵呵...

2022-02-14 12:47:44 210

原创 DataBinding的配置和使用

使用

2020-07-18 23:39:11 480

空空如也

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

TA关注的人

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