- 博客(39)
- 资源 (7)
- 收藏
- 关注
原创 对”内卷“和”躺平“的个人理解和看法
竞争,是一个中性词,竞争又可分为良心竞争和恶行竞争,整体来说,竞争是有利的,通过竞争,相互促进,使事物发展的更好。当然也应该看到社会的竞争在加剧,并且随着经济社会的发展、科技的进步、高等教育的普及、房价高企、各种生活成本的提升、阶级固化等等,在教育、就业、婚恋、住房等各方面的竞争只会加剧,而不会减弱,这是一种社会发展的必然趋势,并不会因为我们抱怨几句,甚至做出过分的举动而减弱。但从个体来说,躺平,即主动选择放弃竞争,而这种放弃却是放弃了自己的前途、自己的未来、自己的人生,对个体来说影响可谓是巨大的。
2023-04-02 22:11:06 1841
原创 git 拉取和获取 git pull和git fetch 区别
git提交用push,对应的拉取用pull,但是又有一个获取fetch,拉取和获取有啥区别?pull 从远程拉取最新版本到本地仓库,并会自动合并。fetch 从远程拉取最新版本到本地仓库,不会自动合并。即:pull = fetch + 合并实际使用中 ,使用git fetch 更安全,在merge之前可以看清楚更新情况,再决定是否合并。由于先抓取更新再合并到本地分支...
2019-11-21 17:54:15 3715
原创 android studio: Could not find any version that matches com.android.support:appcompat-v7:29.+.
问题:今天新安装android studio3.1.2,之后创建新的工程,但是出现了一些错误提示,提示如下:Unable to resolve dependency for ':app@debug/compileClasspath': Could not find any version that matches com.android.support:appcompat-v7:29.+....
2019-10-17 23:30:42 500
原创 彻底解决Process 'command '\ndk-bundle\ndk-build.cmd'' finished with non-zero exit value 2
问题描述:Process 'command 'B:\ProgramFiles\Android\sdk\ndk-bundle\ndk-build.cmd'' finished with non-zero exit value 2在网上搜索该问题,都说是ndk版本的问题,新的版本会出现该问题,下载老的版本解压缩后放到ndk-bundle目录下就好了,我下载了一个10的版本放到ndk-bundl...
2019-09-11 14:50:09 6119
原创 activity的启动模式解析
0、目录一、为什么需要启动模式二、启动模式有哪些三、如何设置启动模式一、为什么需要启动模式为什么activity需要启动模式呢?默认情况下,每创建一个activity实例就会把该实例放入任务栈,如果多次启动同一个activity,那么系统就会创建多个实例,并把所有实例一一放入任务栈中,当点击back返回键时,这些activity会一一回退。多次启动同一个activity,系...
2019-08-27 20:17:57 203 1
原创 activity生命周期全解析
0、目录一、单个activity的生命周期二、两个activity交互时的生命周期三、特殊场景下的生命周期四、一些其他问题五、总结一、单个activity的生命周期首先我们先看一下这张经典的activity生命周期图。具体总结如下:二、两个activity交互时的生命周期启动A activity:onCreat()--onStart()--onR...
2019-08-26 18:52:20 275
原创 使用递归的优缺点
优点:1、代码简洁2、易于理解如在树的前/中/后序遍历中,递归的实现明显比循环简单。缺点:1、时间和空间的消耗比较大递归由于是函数调用自身,而函数的调用时消耗时间和空间的,每一次函数调用,都需要在内存栈中分配空间以保存参数,返回值和临时变量,而往栈中压入和弹出数据也都需要时间,所以降低了效率。2、重复计算递归中又很多计算都是重复的,递归的本质时把一个问题分解成...
2019-07-23 20:54:22 14913 1
原创 Try catch finally 与 return 结合使用执行顺序所有情况分析
首先对按钮添加点击事件,事件代码为:System.out.println(test());一、无异常时1、 private String test(){ try { System.out.println("try..."); } catch (Exception e) { e.getMessage...
2019-07-15 18:51:16 278
原创 这是一份全面详细的Android多线程学习总结
一、介绍本文主要对之前写的多线程相关文章做一个整体的梳理与总结。本文主要介绍多线程相关,具体如下:二、多线程基础知识2.1、进程与线程主要介绍进程、线程、以及进程与线程的对比。详见《线程与进程对比分析》三、多线程的实现1、基础使用1.1、继承Thread类和实现Runnable创建子线程Android多线实现的基础使用,主要通过继承Thread类和实现R...
2019-07-07 18:05:15 515 2
原创 线程与进程对比分析
0、目录一、线程介绍二、线程生命周期三、进程介绍四、进程与线程的对比一、线程介绍二、线程生命周期首先看整个流程图:具体:1、新建状态:此时是Thread t = new Thread()之后的一个状态,这里仅仅创建了一个Thread类的对象。2、就绪状态:线程对象创建之后,调用t.start()方法,线程进入就绪状态,等待获取CPU的使用权,因为在同...
2019-07-07 15:27:08 533
原创 线程池全面解析
0、目录一、介绍二、工作原理三、使用四、Java中自动的四种线程池五、Future和FutureTask六、总结一、介绍二、工作原理首先介绍线程池的类图:ThreadPoolExecutor类是线程池的真正实现类,可以根据不同的需求配置相关的参数,从而实现自定义线程池。(一般不需要自定义线程池,Java内部已经实现了四个常用的线程池,且都已经配...
2019-06-28 22:45:38 466
原创 java产生死锁的原因以及如何处理死锁
所谓死锁,就是指两个或两个以上的线程/进程在执行的过程中,因争夺资源而造成的一种相互等到的现象,如果没有外力作用,他们将无法进行下去。1、导致死锁的原因产生死锁的可能原因有:1、系统资源不足2、资源分配不当3、进程/线程运行推进的顺序不合适产生死锁的四个必要条件:1、互斥条件,指分配的资源进行排他性使用,即在一定的时间内该资源只能被一个进程/线程占用,如果此时还有其他进...
2019-06-24 14:02:03 4181
原创 在函数'_start'中:(.text+0x20):对'main'未定义的引用collect2 :error: ld returned 1 exit status 解决方法
错误信息:在函数'_start'中:(.text+0x20):对'main'未定义的引用collect2 :error: ld returned 1 exit status问题:在文章《linux下编译c文件成为可执行文件的实例和详细过程》中说到,gcc编译分四步,预编译、编译、汇编、链接,但是在链接时,始终不成功使用的命令:预编译:gcc -E hello.c -o hell...
2019-06-19 00:17:40 20409 8
原创 linux下编译c文件成为可执行文件的实例和详细过程
0、目录一、准备C文件二、编译三、执行四、编译的四个步骤一、准备C文件在命令行模式下输入:vim hello.c进入编辑模式,输入以下代码:#include<stdio.h>int main(void){ printf("Hello World!\n"); return 0;}首先点击ESC键退出编辑模式,然后输入:wq(注意...
2019-06-18 13:49:10 62621 3
原创 是时候回顾一下Java中基本数据类型了
Java中数据类型可以分为两类:基本数据类型和引用数据类型基本类型:引用类型:除了基本类型就都是引用类型啦,哈哈^-^
2019-06-12 22:30:11 140
原创 实现线程同步的所有方法分析
一、介绍当我们写并发编程时,多个线程可同时访问一个共享资源,比如变量或对象,如果多个线程同时读写该资源,会导致该资源状态混乱,数据不准确,相互之间产生冲突。因此加入同步锁,使资源同一时间只能有一个线程访问,从而保证资源不发生冲突。二、线程同步具体实现1、Synchronized使用Synchronized关键字,分为同步方法和同步代码块,具体关于Synchronized的介绍和...
2019-06-07 22:34:02 227
原创 Synchronized简单介绍(原理、使用、对比分析)
0、目录一、介绍二、原理三、具体使用四、总结一、介绍二、原理Synchronized在JVM中实现的原理。每一个对象都有一个监视器锁(monitor),JVM通过进入或退出monitor对象来实现方法同步和代码块同步。monitorenter指令是同步开始的位置,monitorexit是同步结束的位置,两者成对出现。monitorenter:线程执行moni...
2019-06-04 10:01:25 361
原创 海康威视RTSP取流,主码流和子码流
最近在做视频开发相关的工作,用到了海康威视的监控器摄像机,做一些记录。RTSP取主码流和子码流 首先,本人使用的是海康威视的产品,其他产品可能有差异,播放器使用VLC。 获取主码流:(以下仅为本人根据自己摄像机设置,具体要看摄像机如何配置) rtsp://admin:[email protected]:554/h264/ch1/main/...
2019-05-28 23:10:49 78923
原创 IntentService详细介绍(含使用实例及源码分析)
0、目录一、简介二、Service介绍三、使用步骤四、使用实例五、源码分析六、IntentService与service的区别七、总结一、简介二、Service介绍生命周期:首次启动服务时,调用startService()方法开启服务后,服务的执行过程:onCreat()-->onStartCommand()-->onDest...
2019-05-26 19:12:37 781 2
原创 AsyncTask原理和源码解析
0、目录一、简介二、使用方法以可能存在的问题三、工作原理四、类和核心方法的介绍 4.1、类定义 2.2、核心方法五、源码分析六、总结一、简介二、使用方法以及可能存在的问题使用方法请详见《AsyncTask使用详细介绍(含使用实例)》可能存在的问题详见《AsyncTask存在的问题和缺陷》三、工作原理Asyn...
2019-05-23 09:56:32 310
原创 AsyncTask使用详细介绍(含使用实例)
0、目录一、介绍二、类和方法介绍 2.1、类定义 2.2、核心方法三、使用步骤四、使用实例五、AsyncTask存在的问题和缺陷一、介绍二、类和方法介绍2.1、类定义public abstract class AsyncTask<Params, Progress, Result> { ......}...
2019-05-19 16:17:49 1049
原创 AsyncTask存在的问题和缺陷
1、串行还是并行实际后台线程只有一个,即所有的任务是串行的,即完成一个任务后再执行下一个任务,而非并行。如果开多个任务,比如开三个任务,实际执行是串行的:mAsyncTask task1 = new mAsyncTask();mAsyncTask task2 = new mAsyncTask();mAsyncTask task3 = new mAsyncTask();task1...
2019-05-19 16:06:57 1091
原创 继承Thread和实现Runnable创建子线程详细介绍(含使用实例和对比分析)
0、目录一、继承Thread类 1、简介 2、使用 2.1、使用步骤 2.2、使用实例 2.3、两种使用方式对比二、实现Runnable接口 1、简介 2、使用 2.1、使用步骤...
2019-05-16 19:42:51 702
原创 写了两个星期技术博客后的感想
4月26号,对自己的一些错误学习方法做了一些反思(《对自己一些错误学习方法的思考》),发现自己学习方法中存在的问题,之前学习总是贪多贪快,但研究的不深、理解的不明,总是浮于表面,感觉学到了很多似的,其实都是假象,所以从4.26号以来,自己始终在研究和Handler相关的问题,分享 了几篇文章:《Handler使用方法详解(含实例)》《Handler原理解析(图文详解)》《Handler...
2019-05-11 14:32:57 133
原创 一台电脑两个VLC和两台电脑各一个VLC摄像头串流测试
一、一台电脑上两个VLC串流测试使用方法及目的:在一个电脑上打开两个VLC软件,一个VLC串流视频(以摄像头拍摄为例),另一个VLC接收串流并显示播放。1、串流视频VLC的设置:打开VLC软件(vlc-2.2.4)后,打开媒体-->流,选择捕获设备,如下图设置:这是打开电脑摄像头拍摄视频的设置,最后点击按钮串流后,显示如下图:直接点击按钮下一个,显示如下图:...
2019-05-10 20:05:13 3677
原创 Handler中存在的相关问题
1、Looper.loop是一个死循环,拿不到需要处理的Message就会阻塞,那在UI线程中为什么不会导致ANR?主线程的死循环一直运行是不是特别消耗 CPU 资源?首先需要明确ANR的概念,ANR是Android Not Response的缩写,什么情况下会造成ANR?1、当前的事件没有机会得到处理(即主线程正在处理前一个事件,没有及时完成或者Looper被某种原因阻塞住了)2、当...
2019-05-09 23:29:41 520
原创 ThreadLocal解析
0、目录1、引入2、介绍3、实例4、原理与源码5、总结1、引入在Handler使用中,每个线程都有一个对应的Looper,主线程通过 Looper.getMainLooper()获得与主线程对应的Looper,子线程中通过 Looper.myLooper()获取与该子线程对应的Looper。//Looper.myLooper()的源码: /** ...
2019-05-06 19:14:40 163
原创 HandlerThread原理、使用实例、源码详细解析
0、目录一、HandlerThread简介二、HandlerThread原理三、HandlerThread使用实例四、HandlerThread源码分析五、总结一、HandlerThread简介HandlerThread是一个轻量级的异步类,可以实现多线程,并且可以实现线程间的通信(HandlerThread主要应用是实现主线程到子线程的通信,子线程到主线程通信可以通过...
2019-05-03 15:17:12 3255 1
原创 Handler源码分析
0、目录一、说明二、源码分析 2.1、使用Handler.sendMessage()方式发送消息 2.2、使用Handler.post()方式发送消息三、总结四、感谢一、说明本人也是菜鸟,跟着大神的脚步,第一次尝试分析源码,希望自己终有一天也能成为大神。本文直接进行源码相关的介绍,如果您对Handler相关的使用和工作原理还不是太熟悉...
2019-05-02 18:29:01 207
原创 Handler原理解析(图文详解)
0、目录1、Handler简介2、Handler核心类3、Handler工作原理4、总结1、Handler简介Handler是一套 Android 消息传递机制 / 异步通信机制,Android系统本质上是来说是一个消息驱动的系统,所以在Android开发中,Handler特别重要。Handler的作用是在多线程应用场景中,将工作线程中需要更新UI的操作信息传递到主线程...
2019-04-27 23:33:19 3198
原创 Handler使用方法详解(含实例)
0、目录一、相关概念简介二、使用方式三、使用步骤四、实例讲解五、总结一、相关概念简介Handler是一套消息传递机制,通常的作用是在多线程的应用场景中,将子线程(工作线程)中需要更新UI的相关信息传递到主线程,从而实现工作线程对UI的更新。二、使用方式Handler的使用方式可以根据发送消息的方式不同而分为两种:Handler.sendMessage()...
2019-04-27 12:33:36 16640 2
原创 对自己一些错误学习方法的思考
最近看自己专业相关的文章,在博客上看到一些大牛,发现自己学习上存在一些问题。看大牛的博客,发现他们在一段时间内仅仅研究一个专题,根据这个专题,会由浅入深写出几篇文章,把这个专题研究的很深很透、把相关知识彻底弄明白后,再去研究下一个专题。而自己,总是贪多贪快,看书的时候看的很快,光想着多看一些,感觉自己学到了很多、有成就感似的,但这种学习仅仅是浮于表面,看的不深、研究的不透,不能真正理解并弄...
2019-04-26 22:40:49 230
原创 安卓开发拍照时闪退遇到问题: file:///storage/emulated/0/0.jpg exposed beyond app through ClipData.Item.getUri()
问题描述:打开摄像头拍照时程序闪退,错误提示如下:android.os.FileUriExposedException: file:///storage/emulated/0/RadioDirectory/IMG_20190417_095708.jpg exposed beyond app through ClipData.Item.getUri()截图:解决方法:在App...
2019-04-17 10:34:10 4617
原创 Java中String StringBuffer StringBuilder的区别
StringString类是不可变类,也就是说一个String对象被创建后,这个对象中的字符串是不可改变的,直到该对象被销毁。String str = "hello";str = str + "world";好像String类对象str改变了,实际上这是一种错觉。程序第一行str指向的内存存放“hello”字符串,第二行代码执行后,又开辟了一块新的内存空间,存放的内容是"hel...
2019-04-14 19:49:59 107
原创 Java中 == 与 equals()区别
对于测试两个变量是否相等有两种方式,==和equals(),前者是运算符,而后者是对象的方法。一、==如果两个变量是基本类型的,且都是数值类型,两个变量的值相等,则返回true;如果两个 变量是引用类型的,只有它们指向同一个对象时,返回结果才是true,此时比较的是两个对象的地址是否相等。二、equals()该方法在Object对象中,任何java对象皆继承Object对象,所...
2019-04-14 16:01:09 123
原创 androidStudio生成APK时遇到Multiple dex files define Lretrofit2/Converter问题
一般出现这种问题是因为在导入dependencies的时候重复导入,而dex又不能完全将其合并,所以提示错误。此时来到build.gradle文件下的dependencies内查看依赖,是否有重复的情况,注释掉那个重复的,重新Sync即可。...
2019-04-08 10:19:11 850
原创 JAVA中一些分母为0的特殊运算
今天看文章看到一个关于3/0与3.0/0区别的问题,整理记录如下:类似3/0或0/0 分子分母都是整数,且分母为0,则会抛出异常java.lang.ArithmeticException类似3.0/0或3/0.0 分子分母中有一个或两个都是小数,且分母为0分子不为0,则运行结果是Infinity(无穷大)因为如果包含小数,即是浮点型数据,则另一个数据也会先转换成浮点型数据...
2019-04-06 14:25:50 2993
原创 Xmind 快捷键
本人的第一篇正式博客,想了好几天到底写啥,自己能力有限,怕误导别人,诚惶诚恐,不敢下笔。最近在用思维导图整理一些知识,用到一些快捷键,就先写这些内容吧。常用快捷键:新建 :Ctrl+Shift+n关闭当前:Ctrl+w插入插入图片:Ctrl+i插入主题:下方:Enter; 上方:Shift+Enter; 前面:Ctrl+Enter ;后面:Insert或Tab...
2019-04-04 08:47:53 2123
原创 我开始写博客啦
为什么要写博客:一、看过很多知识点,但后来再回顾的时候,发现很多都忘了,记忆不深刻,根据学习金字塔原理,只有知识输出才能理解更深、记忆更深;二、通过博客,记录自己的成长,强制自己输出,促进自己进步;三、锻炼自己的品质,长久的坚持做一件事情;四、分享使人快乐,分享使人成功;五、通过分享,认识更多更优秀的你。如何写博客:一、把自己学到的知识点,进行整理总结;二、记录...
2019-04-01 14:37:40 218
android/安卓UDP协议发送接收 实时显示接入wifi热点设备IP和设备名称
2018-05-27
嵌入式linux入门学习规划
2018-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人