- 博客(105)
- 收藏
- 关注
原创 Android Launcher-----MainThreadInitializedObject介绍
MainThreadInitializedObject 在Android开发中扮演着重要的角色,特别是在需要确保对象在主线程上安全初始化的场景中。它提供了一种可靠的方式来管理单例对象的生命周期,同时避免了多线程环境下的潜在问题。
2024-06-27 15:33:31
519
原创 Android--ConnectivityManager使用
Android10之后官方废弃了通过WifiManager连接WIFI的方式,现在要使用ConnectivityManager连接WIFI。
2024-04-18 17:28:10
1985
2
原创 AndroidUI--setContentView
我们的Activity通常继承自Activity或者AppCompatActivity,这两个setContentView流程是不同的。
2024-03-05 11:29:21
1202
原创 Android SharedPreferences
SharedPreferences 是 Android 平台上用于存储应用程序的轻量级键值对数据的 API。它可以用来存储简单的配置信息、用户偏好设置等数据,以便应用程序在下次运行时可以快速访问和使用这些数据。数据存储在/ data/data/your_app_package_name/shared_prefs /下,可供整个应用程序的所有Activity访问。
2024-02-19 16:58:47
611
原创 Android System.exit(0)、finish()、onDestory()和finishAffinity区别
是java提供的方法直接结束整个APK进程,直接杀掉虚拟机,不会执行onDestory这种生命周期函数,比较简单粗暴,但是退出时的动画效果就跟闪退一样,观感不太好。
2024-02-05 15:18:40
1454
原创 Java并发工具类---ForkJoin、countDownlatch、CyclicBarrier、Semaphore
fork join是JDK7引入的一种并发框架,采用分而治之的思想来处理并发任务ForkJoin框架底层实现了,当一个线程完成任务处于空闲状态时,会窃取其他工作线程的任务来做,这样可以充分利用线程来进行并行计算,减少线程竞争。但是在某些情况下也会存在竞争。1.拆分任务中不应该去执行IO操作2.任务不能检查抛出异常,必须通过必要的代码来抛出异常。这个在源码中就可以体现,很多地方都是通过代码主动抛出异常。
2023-12-23 15:10:01
1073
原创 Android JNI入门到基础
AS创建项目时选择NativeC++会创建一个基本的JNI项目MainActivity中写java层的native方法具体实现在cpp文件中JNIEnv在c层和java的桥梁,不可缺少jobject 是MainActivity的this实例(调用者)如果getStr是一个static方法,那么这里应该是个jclass。
2023-12-23 11:03:52
762
原创 Java 并发编程初探 synchronized、volatile、wait、notify
类Thread接口Runnable这两种是在Thread类中官方提到的方法a.join join()方法是让a线程先执行,执行完后继续执行主线程。
2023-12-15 15:32:19
1012
原创 Java序列化 writeObject流程
enableOverride通过调用不同的构造赋值,一般为false,调用writeObject0方法。
2023-12-01 10:52:14
664
原创 PackageManagerService 深入理解Android 卷2 学习笔记
PackageManagerService是Android核心服务之一,负责系统中Package的管理,应用程序的安装、卸载、信息查询等。PMS由SystemServer创建:SystemServer的run函数调用startBootstrapServices,startBootstrapServices调用PackageManagerService.main函数frameworks/base/services/java/com/android/server/SystemServer.java2、PMS
2023-11-06 16:33:37
542
原创 MessageQueue 深入理解Android卷2 学习笔记
Java层提供了Looper类和MessageQueue类,其中Looper类提供循环处理消息的机制,MessageQueue类提供一个消息队列,以及插入、删除和提取消息的函数接口。另外,Handler也是在Java层常用的与消息处理相关的类。· MessageQueue内部通过mPtr变量保存一个Native层的NativeMessageQueue对象,mMessages保存来自Java层的Message消息。
2023-10-26 17:17:53
239
原创 Android7.1 新增开机广播过滤(只有特定apk可以接收开机广播)
对开机广播进行过滤,只有特定的apk才能接收开机广播(包名白名单、或者包名前缀匹配)。
2023-10-16 16:31:19
576
原创 正则表达式
想要灵活运用正则表达式,必须了解其中各种元字符功能,元字符从功能上大致分为:1.限定符 2.选择匹配符 3.分组组合和反向引用符 4.特殊字符 5.字符匹配符 6.定位符\符号: 在我们使用正则表达式去检索某些特殊字符的时候,需要用到转义符号,否则检索不到结果,甚至会报错。需要用到转义符号的字符有以下: .*+()$/?[]^{}注意:在Java中,两个\代表其他语言的一个java正则表达式默认区分字母大小写,如何实现不区分大小写?i)表示abc都不区分大小写a(?
2023-06-30 01:51:33
459
原创 Linux Shell编程
定义变量: 变量=值撤销变量: unset 变量声明静态变量: readonly变量,注意:不能unset定义变量的规则1.变量名称可以由字母、数字和下划线组成,但是不能以数字开头2.等号两侧不能有空格3.变量名称一般习惯大写将命令返回值赋给变量1.A=‘date’ 反引号,运行里面的命令,并把结果返回给变量A2.A=$(date)等价于反引号。
2023-06-27 22:22:30
736
原创 Linux网络、进程
在linux中,每个执行的程序都称为一个进程,每个进程都分配一个ID号(pid,进程号)每个进程都可能以两种方式存在:前台和后台一般系统的服务都在以后台进程的形式存在,而且都会常驻在系统中,直到关机才结束ps :查看目前系统中有那些进程正在执行还有执行状况 -a显示当前终端的所有进程信息 -u以用户的格式显示进程信息 -x显示后台进程运行的参数ps -ef 全格式显示当前所有进程 -e显示所有进程 -f全格式显示信息说明:USER用户名称PID进程号。
2023-06-25 03:23:37
827
原创 Linux任务调度、磁盘分区、挂载
任务调度是指系统在某个时间执行的特定的命令或程序任务调度分为两类:1.系统工作:有些重要的工作必须周而复始的执行,比如病毒扫描2,个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份语法:crontab [选项] -e编辑crontab定时任务 -l查询crontab任务 -r删除当前用户所有的crontab任务。
2023-06-24 19:52:44
594
原创 Linux组管理和权限管理
在linux中每个用户必须属于一个组,不能独立于组外,在linux中一般为文件创建者,可以通过ls -ahl 查看文件所有者chown 用户名 文件名 :修改文件所有者groupadd 组名 创建组当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组修改文件所在的组: chgrp 组名 文件名修改用户所在的组: usermod -g 新组名 用户名。
2023-06-23 15:49:24
1123
原创 Linux实操指令
shutdown -h now 立即关机shutdown -h 1 一分钟后关机shutdown -r now 现在重新启动计算机halt 关机reboot 现在重新启动计算机sync 把内存数据同步到磁盘注意:不管是重启还是关闭,首先要运行sync命令,把内存数据写到磁盘中 shutdown/reboot/halt均已在关机前进行了sync。
2023-06-23 01:02:25
3002
1
原创 Java后端面试题 重难点和被问到没答上来的点(包括java基础、关系型数据库、Redis、计算机网络、Spring、Java多线程、vue等)
以下是我记录的一些重点问题和面试中被问到没答上来的问题,包括java基础、关系型数据库、Redis、计算机网络、Spring、Java多线程、vue。
2023-04-19 15:49:49
1947
原创 Android init学习笔记
init是Android启动的第一个用户空间进程,它fork产生一些关键进程,如zygote、surfaceflinger进程。init进程有很多功能:加载内核模块、挂载系统分区、加载sepolicy、支持属性服务、启动rc脚本、执行事件触发器和属性改变等等。
2023-04-14 14:02:36
1189
原创 Activity启动模式
启动模式可以通过AndroidManifest.xml中通过标签指定android:lunchMode属性来选择启动模式。
2023-02-17 14:42:53
292
原创 Android布局
orientation 布局中组件的排列方式 vertical纵向排列gravity 控制组件所包含的子元素的对齐方式,可以多个组合layout_gravity 控制该组件的父容器里的对齐方式 center_horizontal水平方向居中 center_vertical 垂直方向居中background 为该组件设置一个背景图片,或者直接用颜色覆盖divider 分割线。
2023-01-05 21:18:19
628
原创 Android 基本控件
TextView是一个文本框id是这个textview的唯一id 格式是@+id/(自定义ID) 图中Id是tv_one每一个TextView都是一个对象可以使用TextView的ID通过findViewById()方法获取到这个View对象setText是设置这个TextView的文本,此处设置的文本会覆盖掉xml设置的文本组件的高度和宽度 其中wrap_content是自适应高度宽度 match_parent是充满整个父组件单位用dp。
2023-01-04 15:13:25
2127
原创 Java基于Redis实现的分布式锁---电商下单案例
案例是一个简易版的电商项目中的下单功能,先简单分析下下单功能的一些基本步骤:1.校验库存 2.保存订单 3.生成快照 4.扣减库存 5.删除购物车。
2022-11-06 18:44:51
3044
原创 Linux常用命令
sync 讲数据从内存同步到硬盘中关机 shutdown1.一切接文件2.根目录/ 所有文件都挂在在这个节点下目录结构是树状的//bin :是binary的缩写,存放最经常使用的命令/boot :存放的是启动linux时使用的一些核心文件,包括一些连接文件和镜像文件/dev : dev是Device的缩写,存放的是linux的外部设备,在linux中访问设备的方式和访问文件的方式是相同的:这个目录用来存放所有的系统管理锁需要的配置文件和子目录。
2022-09-03 20:01:36
846
原创 Spring源码问题
进行AOP,然后把生成的代理对象放入单例池在整个bean创建过程中,首先调用类的无参构造,创建出普通对象,然后进行依赖注入,再初始化,初始化后生成代理对象放入Map单例池然后生成bean对象@Component} }如上代码,在调用userservice构造方法时,需要传入一个orderservice,这个orderservice会从map中找,如果map中有就从map中拿,如果没有那么就创建一个orderservice bean(这样会出现循环依赖)...
2022-09-01 11:34:12
486
2
原创 nacos入门
版本对照:https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明。配置startup.cmd以standalone启动。点击startup启动nacos 默认端口8848。startup.cmd 在bin目录下。修改此处配置为standalone。sql文件在conf文件夹下。数据库配置好以后解开。
2022-08-20 16:46:17
307
原创 nginx常用指令、方向代理、负载均衡、动静分离、高可用实例
使用nginx操作命令前提条件:进入nginx目录中 usr/local/nginx/sbin./nginx./nginx -v开放8081tcp端口开放后需要重启防火墙 firewall-cmd --reload查看端口:firewall-cmd --list-all。
2022-08-20 11:50:49
832
原创 Redis Docker安装Redis
不开启守护线程 这个默认就是no 不需要修改 这里因为redis本身同步数据文件是按save条件来同步的,所以有的数据会在一段时间内只存在于内存中。进入客户端 docker exec -it redis6379 redis-cli -a 123456。3.为方便后序对配置文件进行高级修改,此处用自定义配置文件。requirepass 123456 (设置连接密码)将安装目录下的新的redis.conf复制到文件夹里。#bind 127.0.0.1 (注释掉)4.修改redis.conf中的相应属性值。.
2022-08-13 14:50:28
294
原创 Redis缓存和数据库一致性、雪崩、穿透、热点key、big key
面对MYSQL的API进行编程,利用触发器进行缓存同步,但UDF主要是C/C++实现 学习成本高。
2022-08-13 09:13:07
509
原创 Redis事务
Redis事务可以一次执行多个命令,且带有两个重要的保证:1.Redis会将一个事务中的所有命令序列化,然后按照顺序执行2.执行中不会被其他命令插入,不许出现加塞行为。
2022-08-11 20:32:56
395
原创 Redis 发布订阅和多数据库相关操作指令、内存淘汰策略
订阅频道:SUBSCRIBE channel1 channel2… 订阅给定的一个或多个频道的信息PSUBSCRIBE pattern1 pattern2… 订阅一个或多个符合给定模式的频道发布频道:PUBLISH channel message 将信息发送到指定的频道退订频道:UNSUBSCRIBE channel1 channel2… 退订给定的频道PUNSUBSCRIBE pattern1 pattern2…......
2022-08-11 19:50:52
291
原创 Redis List实现热点新闻列表、物流任务队列
热点新闻列表 获取最新五条首页新闻默认首页显示五条热点新闻 具备分页功能后台管理员可以置顶新闻。
2022-08-10 20:54:55
514
空空如也
Froyo必须用JDK5编译吗
2023-03-25
Spring三级缓存解决循环依赖问题
2022-08-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人