自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android View的事件分发机制

时间分发

2024-08-20 23:54:50 618

原创 Android中常见的IPC通信方式

文章目录IPC(跨进程通信方式)1. Bundle2. 使用共享文件3.MessengerIPC(跨进程通信方式)1. Bundle通过Intent传递一个带有数据的Bundle来来实现跨进程通信Intent intent = new Intent()intent.putExtra()2. 使用共享文件比如A进程将数据存放在一个共有的目录下的文件中,然后让B进程去读,这样就实现了跨进程通信。但是两个进程共同去读写文件,会产生多进程安全问题,所以这种方式最好不要再并发量大的场景下使用。还需要

2023-04-15 19:49:32 123

原创 IntentFilter隐式匹配规则

文章目录IntentFilter隐式匹配规则匹配过程中的一些判断IntentFilter隐式匹配规则启动Activity时一般有隐式匹配和显示匹配两种方法,这个重点讲一下Intent的隐式匹配规则,匹配规则主要分为三部分,action匹配,category匹配,和data匹配。在正式说明匹配规则前需要知道以下几点:一个Activity可以在AndroidMainFest文件中有多个intent-filiter,每个intent-filiter可以设定多个action,category和data只

2022-02-03 21:32:24 2120

原创 Android之LaunchMode(启动模式)

Android之LaunchMode(启动模式)文章目录Android之LaunchMode(启动模式)Activity的4种启动模式1.1 standard ------ 标准模式1.2 singleTop1.3 singleTask1.4 singleInstanceActivity的4种启动模式注意: Activity的启动模式将会影响到手机系统的任务栈, 所以想深刻的理解启动模式,一定要先了解怎么去看任务栈,其实很简单输入一条命令即可 adb shell dumpsys activity -

2022-02-03 19:41:51 17355 3

原创 Android开发

第一章 Android的生命周期和启动模式1.Android之Activity

2021-08-28 20:06:46 240

原创 Android之ViewStub

Android之ViewStub文章目录Android之ViewStub前言1.ViewStub的优势2.ViewStub的使用3.注意事项前言当渲染一个活动时,这个活动的布局可能会有很多visible为invisible和gone的情况,虽然这些控件虽然现在不显示在屏幕上,但是系统在加载这个布局文件时还是会加载它的,这就影响了这个页面的加载效率,因为这些不可见的控件提前加载它们并没有什么实际的意义,反而会减缓页面的加载时间,所以为了解决这个问题可以使用ViewStub来懒加载暂时不显示的布局.1.

2021-02-22 17:11:50 985

原创 Android之Activity生命周期

文章目录Android之生命周期及任务栈前言Android之生命周期及任务栈前言Android的生命周期,onsaveInstanceState的调用时机:点击Home键在当前活动的基础上,启动一个新活动旋转屏幕注:调用onSaveInstanceState不一定在重新显示活动的时候,会调用onRestoreInstanceState方法onReStoreInstanceStarte方法只有在我们并不想销毁活动,由系统帮我们自动的销毁并立刻创建时才会调用,比如旋转屏幕,或者更改系统字体这种

2021-02-20 20:27:23 764

原创 Android之约束布局---------ConstraintLayout

Android之约束布局---------ConstraintLayout前言本文不会把约束所有内容像新华字典一样,解释的那么详细,只会记录我认为常用的内容,还是那句话,用到学到.ConstraintLayout布局的优劣优点ConstraintLayout约束布局,可以有效的减少布局嵌套,他可以提升系统渲染的效率并且可以实现 RelativeLayout可实现的功能,并且效率优于相对布局,所以尽量可以使用ConstraintLayout代替RelativeLayout.缺点使用Cons

2021-02-20 17:52:57 622

原创 Android之theme

Android之theme文章目录Android之theme前言theme解决按钮颜色无法改变的问题注:本人使用Android Studio 4前言我创建了一个空项目但是,发现按钮的背景颜色为蓝紫色,并且更改为其他颜色后还是蓝紫色,下面的内容将会讲解如何如何去解决这个问题,并且顺带说明一下,theme中都有那些属性theme为什么按钮的背景颜色,为什么怎么改都是蓝紫色呢,原因就在AndroidManifest文件的application标签的theme属性中,相信大家都看过这一张图如果你百度

2021-02-19 14:33:37 463

原创 Android之shape标签

Android之shape标签文章目录Android之shape标签前言1.使用shape标签的好处2.shape所能绘制的图形3.使用shape图形的例子3.1 圆角按钮3.2 圆形或者椭圆3.3 实线与虚线3.4 渐变图层4.动态使用shape4.1直接创建一个GradientDrawbale4.2 得到view的background,并对其进行修改前言shape算是我们常用的一个标签,他可以生成线条,矩形, 圆形, 圆环,像我们圆角的按钮就可以通过shape来实现,最终Android会把这个带有

2021-02-18 17:11:47 1010

原创 Android之长度单位px,dip,sp,dpi

Android之长度单位px,dip,sp,dpi1.关于四个单位的介绍1.px---------像素(pixel)比如我们的手机的分辨率是1080*2340像素,也就代表着我们的手机宽有1080个像素点,即1080像素,高有2340个像素点2.dip(dp)-------密度无关像素(Density independent pixel)dip就是我们在程序中应用的dp,在每英寸160px的显示器上,1dp = 1px3.dpi-----------像素密度(Dots per Inch)这个单

2021-02-08 18:34:04 1155

原创 Android之WebView

Android之WebView文章目录Android之WebView1. WebVIew的功能2.WebView的使用前提3.WebVIew的使用3.1打开一个网页3.2 WebView和JavaScript的交互3.2.1 Android调用JavaScipt1. WebVIew的功能1.显示一个网页2.混合开发,于JavaScipt交互2.WebView的使用前提因为在Android程序中打开网页肯定是需要网的嘛,所以一定不能忘了添加网络权限<uses-permission andr

2021-01-19 21:17:49 493

原创 自己手动实现对象关系映射(Object Relational Mapping,简称ORM)

1.ORM定义这里就不介绍关于ORM的一些官方的术语了,简单来说,对象关系映射(ORM)就是实现对象到关系数据库的映射,在平常的业务开发中,如果我们能实现这种映射,我们在完成某项数据库操作时,就不用去书写复杂的sql语句,大大便利了我们编程。常见的ORM框架有:Hibernate、TopLink、Castor JDO、Apache OJB等2. ORM的具体实现实现对象与数据库的关系映射有...

2020-05-06 21:42:34 458

原创 HashMap源码解析(基于JDK 1.8)-------------------破晓

HashMap源码解析文章目录HashMap源码解析前言前言JDK 1.8的HashMap为了避免哈希冲突,使用了红黑树的储存结构,因为红黑树的插入。增加,删除操作的时间复杂度都为O(lg n)...

2020-05-05 20:24:35 497

原创 [java]JDK1.7版本HashMap源码分析

JDK1.7版本HashMap源码分析文章目录JDK1.7版本HashMap源码分析前言数据结构存储结构Entry对象主要属性构造方法核心方法roundUpToPowerOf2方法inflateTable方法hash方法及indexFor方法get方法及相关方法put方法及相关方法resize方法及相关方法remove方法和相关方法containsValue方法和相关方法clone方法addEn...

2020-04-28 22:52:34 569

原创 【java】highestOneBit(int i)方法解读

highestOneBit()方法解读文章目录highestOneBit()方法解读前言正片总结前言highestOneBit()方法是属于Integer类中的静态方法,小博主在阅读Jdk1.7版本的HashMap源码是遇到了这个方法正片方法源码public static int highestOneBit(int i) { // HD, Figure 3-1 ...

2020-04-26 23:22:34 498

原创 【java】关于HahMap中JDK1.7版本和JDK1.8版本 hash()方法

关于JDK1.7和JDK1.8 hash()方法文章目录关于JDK1.7和JDK1.8 hash()方法前言JDK1.7 hash()方法使用位运算的好处位运算为什么可以代替取模运算关于hash()返回部分的讲解JDK1.8 hash()方法前言HashMap中hash方法返回的值用于哈希散列得到一个下标,JDK1,7和JDK1.8,hash()方法的原理几乎相同,不过还是有不同的地方听我一...

2020-04-26 17:43:34 955

原创 LinkedList源码解析(JDK1.8)-----------------------------------破晓

/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * *...

2020-04-23 23:17:23 200

原创 Java ArrayList源码分析(基于JDK1.8)--------------------破晓

Java ArrayList源码分析(基于JDK1.8)文章目录Java ArrayList源码分析(基于JDK1.8)1.成员及构造方法2.紧缩容器和扩容部分2.1 紧缩容器2.2 ArrayList的扩容*(重点)3. 剩余源码分析1.成员及构造方法 private static final long serialVersionUID = 8683452581122892189L; ...

2020-04-21 17:35:52 361

原创 GC 垃圾回收机制----------------------------破晓

垃圾回收机制文章目录垃圾回收机制1.垃圾回收机制主要回收的内存区域2.何为 “垃圾”1.垃圾回收机制主要回收的内存区域垃圾回收会涉及到两个区域:堆(Heap)和方法区1.堆垃圾收集器最主要回收的是对象,也就回收堆区域的内容,堆内存是垃圾回收机制中占比最大的一块,为了高效的进行垃圾回收器回收,会把堆内分为好几个子部分。在堆中,进行一次GC一般回收70%~95%的空间。2.方法区方法区中...

2020-03-27 13:15:13 787

原创 Java内存区域与内存溢出异常------------------------------------破晓

Java内存区域与内存溢出异常本文章基于JDK1.8文章目录Java内存区域与内存溢出异常1.JVM内存基本结构1.JVM内存基本结构注:本图来源于深入理解Java虚拟机-----周志明 著程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器,Java虚拟机中的多线程是通过轮流切换并分配处理器所执行的时间的方式来实现的,为了线程切换后恢复到正确的执行位置,每...

2020-03-19 14:48:45 553

原创 字节码文件----------------------------------破晓

JVM之字节码文件字节码文件的基本格式使用javap-verbose分析一个字节码文件时,一个字节码文件包括魔数、版本号、常量池、类信息、类的构造方法、累的方法信息、类变量与成员变量等信息。魔数: 在Java字节码文件中,前面的四个字节被称为魔数,魔数的值都固定为CAFEBABE,这可以理解成魔数是一个java字节码文件的一个和法标志,如果一个字节码文件的魔数不为CAFEBABE,那它就不是...

2020-03-13 17:00:53 399

原创 ClassLoader类getSystemClassLoader()方法源码剖析

文章目录1.getSystemClassLoader方法forName()方法1.getSystemClassLoader方法 private static ClassLoader scl; @CallerSensitive public static ClassLoader getSystemClassLoader() { //初始化系统类加载器 ...

2020-03-03 19:49:49 1746

原创 Java SPI机制---------------------------------------------破晓

Java SPI机制前言SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现,然后,把新加的实现,描述给JDK知道就行啦(通过改一个文本文件即可)代码示例使用Eclipse...

2020-03-01 22:25:55 137

原创 Java--ThreadLoacal类

ThreadLocal类ThreadLocal定义This class provides thread-local variables. These variablesdiffer from their normal counterparts in that each thread thataccesses one (via its get or set method) has its o...

2020-02-24 22:14:10 380

原创 关于类加载的loadClass()方法的讲解

1.关于类加载的loadClass()方法的讲解loadClass()方法是ClassLoader类中的一个方法loadClass()方法源码:protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { synchron...

2020-02-20 15:28:52 4555

原创 JVM类加载

JVM类加载与类加载器文章目录JVM类加载与类加载器1.类加载1.类加载类加载主要分为这五个部分: 加载、连接、初始化、使用、卸载,其中前三项都是在程序运行中执行的。连接又分为三个子部分:确认、准备、解析1.加载:将这个类的字节码文件从外存中...

2020-02-18 14:55:33 176

原创 多文件云传输系统框架

多文件云传输系统框架文章目录多文件云传输系统框架前言1. 需求分析2.系统结构2.1 注册中心2,2 资源发送者前言此博文并没有公开此框架的所有源码,因为如果光展示代码和注释的话,我认为代码的类也比较多,也不利于读者的理解,所以本文以思想为主。源码的百度云链接:1. 需求分析我们希望能实现如下功能:当一个客户端请求资源时,会从注册中心得到拥有该资源的所有网络节点,该请求者会选出当前...

2020-02-18 00:30:22 559

原创 JAVA文件的基本操作-------------------------------------破晓

Java基本的文件操作文章目录Java基本的文件操作前言1.File类的基本用法2.File类的升级用法2.1得知一个文件的大小(单位:字节)2.2得知一个目录的子目录或者子文件2.3得知一个磁盘的总空间和剩余空间3.文件的读写4.RandomAccessFile类5.创建目录6.总结前言本片博客并没有太多深入的东西,只是一些Java文件操作的小例子,方便刚接触文件的玩家快速上手。大家可以把...

2020-02-11 22:17:29 244

原创 关于C-SFramework资源请求:Java分发器处理机制(注解实现)----------------破晓

1.C-S服务器中网络指令的用途?要讲清楚什么是分发器并且要明白为什么要在这个场合使用分发器,我们先要明白什么是C-S框架中的网络指令。上图是C-S工作的基本模式,我们首先要明确服务器和客户端之间发送的信息仅仅是单纯的信息吗?答案是否定的。他们发送的信息至少包括三个信息?1.Command // 网络指令,这可以是一个枚举类2.action //这个后面讲解分发器时会重点讲到3....

2019-10-05 18:14:08 366 1

原创 Java包扫描-----------------破晓

#1.什么是包扫描?说到包扫描我们先要说一说包,包就是所谓的命名空间,用来区分哪些名字相同的类。比如:我们知道ArrayList是一个系统类,我们在一个项目下建立一个包,比如叫做com.mec.core,在这个包下建立一个自己的类,类名也为ArrayList,系统会根据包名的不同,知道这是两个类。这也充分的证明了为什么反射机制得到的类名是包名称 + 类名称。我们建立好的包在文件夹中的状态是...

2019-10-04 17:10:20 353

原创 关于多线成安全的一个例子-------破晓

package com.mec.thread;public class Test implements Runnable{ //提前声明:这仅仅是一个处理多线程并发的例子没有任何实际意义 //我们的目的:在执行完构造函数之前,确保我们的新线程会跑起来 private Object lock;//这个是线程的锁 public Test() { System.out.println("...

2019-09-19 00:53:23 167

原创 XML解析的完成以及工具化----------------破晓

解析XML文件的Jar包在文章最末尾#1.怎么书写一个XML文件提前说明:我们使用的是eclipse在你想声明XML文件的包目录下右键,选择new,再点击other点击完成后,我们会看到这样的界面选中XML文件,最后我们会得到这样的效果这样我们就得到一个XML文件了接下来我们书写一个XML文件,书写格式十分简单,大家模仿下面的书写方式即可。<?xml version="...

2019-09-04 11:32:03 384 2

原创 注解的创建与使用

#1.注解的定义注解就是对一个类,或者一个成员,一个方法加上一个标签,通过对于标签的解析,我们可以得到注解里面的信息,有时我们可以利用注解来代替XML文件,因为XML文件里面也是通过标签存储了一定的数据。相信有人看到这里是生涩的,本文主要讲在代码层面怎么去写一个注解,并且去解析它,如果想详细得知关于注解的相关概念清看这位大佬的博客链接:https://blog.csdn.net/javazej...

2019-09-03 22:15:05 574

原创 sprintf()的相关用法及模拟strcat()和strcpy() -破晓

下面是自己在使用sprintf()时的一些心得:1.在C语言的学习中,我们知道printf()是把我们想要输出的东西输出到电脑屏上,而sprintf的作用是将你想输出的东西输出到一个字符串数组里。2.sprintf函数原型 int sprintf( char *buffer, const char *format, [ argument] … );在使用时切记第一个参数一定是字符串数组,不...

2019-02-13 11:41:05 536

空空如也

空空如也

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

TA关注的人

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