
java
Azadoo
这个作者很懒,什么都没留下…
展开
-
主线程可以一直存在的原因
这里就涉及到Linux pipe/epoll机制,简单说就是在主线程的MessageQueue没有消息时,便阻塞在loop的queue.next()中的nativePollOnce()方法里,此时主线程会释放CPU资源进入休眠状态,直到下个消息到达或者有事务发生,通过往pipe管道写端写入数据来唤醒主线程工作。只要线程没有执行完毕或者没有被其它线程杀死,线程就不会进入死亡状态。,可以同时监控多个描述符,当某个描述符就绪(读或写就绪),则立刻通知相应程序进行读或写操作,本质同步I/O,即读写是阻塞的。原创 2023-03-13 10:42:38 · 231 阅读 · 0 评论 -
使用anrwatchdog抓取错误日志
buld.gradle 中引入。原创 2022-10-19 16:21:00 · 637 阅读 · 0 评论 -
抓取特定路径下文件 可批量压缩成压缩包 并分享到微信
【代码】抓取特定路径下文件 可批量压缩成压缩包 并分享到微信。原创 2022-10-19 16:20:02 · 132 阅读 · 0 评论 -
监听多次点击事件
【代码】监听多次点击事件。原创 2022-10-19 16:09:07 · 215 阅读 · 0 评论 -
Activity跳转时会闪屏问题解决方案(或打开弹窗底层Activity移动问题)
问题发现途径:页面A需要跳一个透明背景的页面B 发现跳转过程A页面整体会向左移动 并后续会变成纯黑色如上所述问题有两个: 1. A页面移动 2 . A页面呈现黑色导致B的背景不是原A页面原创 2022-08-26 16:34:05 · 2268 阅读 · 0 评论 -
为什么不能在子线程中直接更新ui
首先在子线程中是可以直接更新ui的@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); init(); new Thread(new Runnable() { @Override public void run() {原创 2022-04-03 20:42:56 · 4032 阅读 · 0 评论 -
多仓库开发 拉取不同仓库分支的时间不一致 导致缺少相关代码的解决措施
基于最早创建的开发分支在本地创建其他仓库的分支 然后使用git push --set-upstream + 分支名的方式将本地分支push到远端 这样你所有的分支及都是基于最早分支拉取的 不会有编译问题原创 2022-03-29 15:09:12 · 172 阅读 · 0 评论 -
onClickListener重写onClick方法的简写形式(v)-> Lambda表达式
最基础的点击事件的写法view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { v.setVisibility(View.GONE); }});java8引进了Lambda表达式,其主要作用就是简化部分匿名内部类的写法。能够使用 Lambda 表达式的一个重要依据是必须有相应的函数接口。所谓函数接口,是指内部有且仅有一个抽象方法的接原创 2021-07-09 14:35:49 · 1459 阅读 · 0 评论 -
AS AndroidManifest.xml源码解析
创建一个project时会自动在app/manifests下生成AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><!-- 指定该android应用的包名 该报名可用于唯一标识该应用--><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication">原创 2021-03-15 14:30:50 · 322 阅读 · 0 评论 -
git简易使用
简介Git是分布式版本控制系统,和其他版本控制系统的主要差别在于Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。Git 并不保存这些前后变化的差异数据。Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作快照,然后保存一个指向这次快照的索引。基本的 Git 工作流程如下:在工作目录中修改某些文件。对修改后的文件进行快照,然后保存到暂存区域提交更新,将保存在暂存区域的文件快照永久转储到 Git原创 2021-03-12 11:29:23 · 194 阅读 · 0 评论 -
WebView
加载网页加载网络URL◆webview.loadUrl( “http://www.tiantiantech.cn” );加载assets下的html文件◆webview.loadUrl( “file:///android_ asset/test.html” );加载htmI代码◆webview.loadData();◆webview.loadDataWithBaseURL();//更好◆Native和JavaScript相互调用网页的前进后退◆webview.canGoBack()◆w原创 2021-02-24 22:11:48 · 112 阅读 · 0 评论 -
RecyclerView 垂直 水平 网格 瀑布流
RecyclerView能够灵活实现大数据集的展示,视图的复用管理比ListView更好,能够显示列表、网格、瀑布流等形式,且不同.的ViewHolder能够实现item多元化的功能。但是使用起来会稍微麻烦一点 ,并且没有类似ListView的onItemClickListener监听事件,需要开发者自己实现。...原创 2021-02-20 15:43:27 · 434 阅读 · 0 评论 -
滚动视图ScrollView
注意 : 子元素标签只能有一个!垂直滚动: ScrollView<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/too原创 2021-02-19 20:24:24 · 269 阅读 · 0 评论 -
网格视图GrideView
继承AppCompatActivity 与 Activity 差别前者是后者子类继承前者会有标题栏 后者没有Adapter接口public class MyGridViewAdapter extends BaseAdapter { private Context mContext; private LayoutInflater mLayoutInflater; public MyGridViewAdapter(Context context){ thi原创 2021-02-19 18:10:15 · 382 阅读 · 0 评论 -
ImageView
常用属性scaleType缩放类型fitXY :撑满控件,宽高比可能发生改变fitCenter :保持宽高比缩放,直至能够完全显示centerCrop :保持宽高比缩放,直至完全覆盖控件,裁剪显示<ImageView android:layout_width="300dp" android:layout_height="200dp" android:background="#FF9900" android:src="@draw原创 2021-02-16 18:54:20 · 113 阅读 · 0 评论 -
复选框 CheckBox
常用属性 <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你会什么" android:textSize="40sp" /> <CheckBox android:id="@原创 2021-02-16 15:02:15 · 133 阅读 · 0 评论 -
RadioButton
常用属性 <RadioButton android:id="@+id/rd_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:textSize="28sp" android:textColor="#FF9900" />监听事件原创 2021-02-13 16:19:08 · 146 阅读 · 0 评论 -
EditText
EditText与button都是TextView的一个子类EditText 输入框常用属性<EditText android:id="@+id/et_1" android:layout_width="match_parent" android:layout_height="50dp" android:textSize="16sp" android:textColor="#FFDD00" androi原创 2021-02-10 20:24:12 · 118 阅读 · 0 评论 -
Button 点击事件
Button点击跳转到另一个页面在main中 private Button mBtnTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mBtnTextView = findViewById(R原创 2021-02-07 23:43:49 · 1417 阅读 · 0 评论 -
android TextView 中划线、下划线 跑马灯
文字内容可以直接在values文件夹下strings里直接设置id 在activate中直接引用id即可(方便修改)插入图标 将图片放在drawable下android:drawableRight="@drawable/图片文件名"(放在右边)原创 2021-02-07 17:40:26 · 590 阅读 · 0 评论 -
Linux
基本介绍运行级别说明:0:关机1:单用户[找回丢失密码] (此时不需要登录自动以root身份进入)2:多用户状态没有网络服务3:多用户状态有网络服务4:系统未使用保留给用户5:图形界面6:系统重启.常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字命令: init [012356]帮助指令man ls文件目录类pwd指令基本语法pwd(功能描述:显示当前工作目录的绝对路径)应用实例.案例:显原创 2020-08-11 14:42:37 · 378 阅读 · 0 评论 -
操作系统 线程的实现
线程的实现主要有三种线程的实现方式:用户线程:在用户空间实现;POSIX Pthreads, Mach C- threads, Solaris threads内核线程:在内核中实现;Windows,Solaris, Linux轻量级进程:在内核中实现,支持用户线程Solaris(LightWe ight Process)一个或多个用户线程可以对应多个或一个内核线程用户线程在用户空间实现的线程机制,它不依赖于操作系统的内核,由一组用户级的线程库函数来完成线程的管理,包括进程的创建、终止、同原创 2020-08-09 16:18:32 · 752 阅读 · 0 评论 -
进程
进程的定义进程: 一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。进程的组成一个进程应该包括:程序的代码;程序处理的数据;程序计数器中的值,指示下一条将运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)总之,进程包含了正在运行的一个程序的所有状态信息。进程与程序的联系程序是产生进程的基础程序的每次运行构成不同的进程进程是程序功能的体现通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。进程与程序的区别进程原创 2020-08-09 11:50:31 · 578 阅读 · 0 评论 -
操作系统 非连续内存分配
连续内存分配的缺点●分配给一个程序的物理内存是连续的●内存利用率较低●有外碎片、内碎片的问题非连续分配的优点■一个程序的物理地址空间是非连续的■更好的内存利用和管理■允许共享代码与数据(共享库等…■支持动态加载和动态链接分段●程序的分段地址空间●分段寻址方案...原创 2020-08-02 18:03:58 · 234 阅读 · 0 评论 -
操作系统 连续内存分配
连续内存分配内存碎片问题分区的动态分配◆简单的内存管理方法:➢当一个程序准许运行在内存中时,分配一个连续的区间➢分配一个连续的内存区间给运行的程序以访问数据◆分配策略第一适配需求:按地址排序的空闲块列表分配 需要寻找一个合适的分区 重分配需要检查, 看是否自由分区能合并于相邻的空闲分区(若有)优势:简单易于产生更大空闲块,向着地址空间的结尾劣势外部碎片不确定性最佳适配最差适配◆压缩式碎片整理◆交换式碎片整理...原创 2020-07-30 22:13:54 · 196 阅读 · 0 评论 -
操作系统 中断 异常系统调用
操作系统与程序和设备交互定义◆系统调用(来源于应用程序)应用程序主动向操作系统发出服务请求◆异常(来源于不良的应用程序)非法指令或者其他坏的处理状态(如:内存出错)◆中断(来源于外设)来自不同的硬件设备的计时器和网络的中断源头●中断:外设●异常:应用程序意想不到的行为●系统调用:应用程序请求操作提供服务处理时间异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。原创 2020-07-30 19:52:36 · 207 阅读 · 0 评论 -
抽象类与接口比较
比较从定义上看抽象类是包含抽象方法的类;接口是抽象方法和全局变量的集合。从组成上看抽象类由构造方法、抽象方法、普通方法、常量和变量构成;接口由常量、抽象方法构成,在 JDK 1.8 以后,接口里可以有静态方法和方法体。从使用上看子类继承抽象类(extends);子类实现接口(implements)。从关系上看抽象类可以实现多个接口;接口不能继承抽象类,但是允许继承多个接口。从局限上看抽象类有单继承的局限;接口没有单继承的限制。区分类是对对象的抽象,抽象类是对类的抽象;接原创 2020-07-30 12:34:39 · 625 阅读 · 0 评论 -
try finally执行顺序
try语句在返回前,将其他所有的操作执行完,保留好要返回的值,而后转入执行finally中的语句,而后分为以下三种情况:情况一:如果finally中有return语句,则会将try中的return语句”覆盖“掉,直接执行finally中的return语句,得到返回值,这样便无法得到try之前保留好的返回值。情况二:如果finally中没有return语句,也没有改变要返回值,则执行完finally中的语句后,会接着执行try中的return语句,返回之前保留的值。情况三:如果finally中没有r原创 2020-07-28 21:30:24 · 2599 阅读 · 0 评论 -
Static
https://www.cnblogs.com/dotgua/p/6354151.html转载 2020-07-28 17:46:33 · 92 阅读 · 0 评论 -
TCP窗口滑动协议与拥塞控制
滑动窗口TCP全双工; A给B发送数据,则A有发送缓冲区; B有接收缓冲区。应用层的所有需要发送的数据都被放在了发送者的发送缓冲区。发送窗口是发送缓存中的一部分,是可以被TCP协议发送的那部分。已发送并收到确认的数据、已发送但未收到确认的数据、允许发送但尚未发送的数据、以及暂不允许发送的数据;每次成功发送数据之后,发送窗口就会在发送缓冲区中按顺序移动,将新的数据包含到窗口中准备发送流量控制建立连接的时候,B会告诉A,自己的接收窗口大小(rwnd)。B每次给A回复确认数据包(ACK)也会告诉A自己的原创 2020-07-19 22:56:39 · 220 阅读 · 0 评论 -
Mysql 特性 索引 事务
事物的四大特性(ACID)1.原子性(Atomicity) :事务是最小的执行单位, 不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;2.一致性(Consistency) :执行事务前后,数据保持一 致,多个事务对同一个数据读取的结果是相同的;3.隔离性(Isolation) :并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;4.持久性(Durability) : 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有原创 2020-07-06 18:02:19 · 157 阅读 · 0 评论 -
BIO NIO AIO总结
BIO NIO AIO总结原创 2020-06-29 22:11:04 · 159 阅读 · 0 评论 -
多线程并发 面试题
线程的生命周期与三种创建方式线程的生命周期 与创建线程的三种方式线程常见面试题原创 2020-06-27 22:53:21 · 172 阅读 · 0 评论 -
java集合 面试题
HashMap 排序题,上机题。已知一个HashMap<Integer, User>集合,User 有name (String) 和age (int) 属性。请写一个方法实现对HashMap的排序功能,该访法接收HashMap<Integer, User> 为形参,返回类型为HashMap<Integer, User> ,要求对HashMap中的User的age倒序进行排序。排序时key=value键值对不得拆散。注意:要做出这道题必须对集合的体系结构非常的熟悉..原创 2020-06-27 15:20:25 · 698 阅读 · 1 评论 -
java IO面试题
Java中有几种类型的流按照流的方向:输入流(inputStream) 和输出流(outputStream) 。按照实现功能分:节点流(可以从或向一个特定的地方(节点)读写数据。如FileReader)和处理流(是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。)按照处理数据的单位:字节流和字符流。字节流继承于InputStream 和OutputStr..原创 2020-06-26 16:52:02 · 610 阅读 · 0 评论 -
javaSE面试题
&和&&的区别&运算符有两种用法: (1)按位与; (2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false, 右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是null 而且..原创 2020-06-26 15:51:04 · 302 阅读 · 0 评论 -
java面试题——java基础
面向对象和面向过程的区别●面向过程:面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。 但是,面向过程没有面向对象易维护、易复用、易扩展。●面向对象: 面向对象易维护、易复用、易扩展。因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。JDK和JREJDK是Java Developm..原创 2020-06-24 16:36:49 · 622 阅读 · 0 评论 -
正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。链接:https://leetcode-cn.com/problems/regular-expression-matching/solution/zheng-ze-biao-da-shi-pi-pei-by-leetcode-solution/来源:力扣(LeetCode)class Solution { public boolean isMatch(String s, String p) {原创 2020-06-20 15:32:06 · 169 阅读 · 0 评论 -
TCP(三次握手 四次挥手) UDP
TCPTCP服务模型包括面向连接服务和可靠数据传输服务面向连接服务在应用层数据报文开始流动之前 TCP让客户和服务器互相交换运输层控制信息。这个所谓的握手过程提醒客户和服务器,让它们为大量分组的到来做好准备。在握手阶段后,一个TCP连接(TCP connection) 就在两个进程的套接字之间建立了。这条连接是全双工的,即连接双方的进程可以在此连接上同时进行报文收发。当应用程序结束报文发送时,必须拆除该连接。可靠的数据传送服务通信进程能够依靠TCP,无差错、按适当顺序交付所有发送的数据。当应用程原创 2020-06-19 22:36:54 · 219 阅读 · 0 评论 -
因特网的五层协议栈 与 OSI七层模型
由物理层 链路层 网络层 运输层 应用层 五个层次组成应用层是网络应用程序及他们的应用层协议存留的地方 因特网的应用层包括许多协议 例如HTTP(提供了Web文档的请求和传送) SMTP(提供了电子邮件报文的传输) FTP(提供了两个端系统之间的文件传送)应用层协议分布在多个端系统上 而一个端系统中的应用程序使用协议与另一个端系统中的应用程序交换信息分组 把这种位于应用层的信息分组称为报文运输层在应用程序端点之间传送应用层报文 在因特网中有两种运输协议 TCP和UDP 利用任一个都能运输应用层报原创 2020-06-18 17:24:08 · 1209 阅读 · 0 评论