自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode--83. 删除排序链表中的重复元素,思路分析,画图模拟样例,java代码实现

目标:删除已经排序的链表里面的重复元素。

2023-05-11 22:54:56 533

原创 数据结构和算法筑基--java实现单链表的增删改查

这就是一个简单的添加链表节点的操作,但是上面这种方法添加节点,有缺陷,当不考虑编号顺序时,是可以这么做,就按照我们代码的执行顺序添加没问题,但是按照每个对象的编号顺序就做不到了。链表分两种链表,一种是带头节点,一种是不带头节点的,一个节点分为data域,next域,next域指向下一个节点的地址,一次来链接所有节点。就是按照我们的HeroNode的no编号这个字段的大小来添加,一般是按顺序从小到大。特点:链式存储,它的每个节点在内存中并不是一定连续的。1.我们先找到需要删除的这个节点的前一个节点temp。

2023-05-10 22:49:34 696

原创 Android适配器模式,手写ListView体验适配器

​ 适配器模式 (Adapter Pattern) 是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。

2023-05-08 23:47:01 801

原创 java筑基--static关键字理解再进阶,实例变量和静态变量在内存的区别

java筑基–static关键字理解再进阶,实例变量和静态变量在内存的区别。根据这段代码分析一下实例变量和静态变量在内存中的区别。一. JVM内存结构(5个区域)

2023-05-08 19:55:02 13

原创 java筑基--final关键字理解再进阶,重排序探究

在上面的示例中,finalField是一个final域,它在构造函数中被初始化为42。具体地,我们可以在主线程中创建FinalFieldExample对象,并启动两个新线程,一个线程在构造函数执行完成后,输出final域x的值,另一个线程在构造函数执行完成前,读取final域x的值。在java中,final域是一种特殊类型的变量,当一个final域被初始化后,其值就不能被修改了,但是,在多线程的环境下,final域的写入操作,读取操作可能会发生重排序,导致其值在初始化完成之前被读取到,从而引发逻辑错误。

2023-05-07 17:32:20 47

原创 java筑基--final,static可以有何作用?

static 块可以置于类中的任何地方,类中可以有多个 static 块。static 变量也称作静态变量,静态变量和非静态变量的区别是:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为 final的都叫作 final变量final 变量经常和 static 关键字一起使用,作为常量。修饰一个类,这样的类就成为了静态内部类,它只能访问外部类的静态变量和方法,不能访问外部类的普通变量和方法。

2023-05-06 09:24:12 30

原创 java筑基--接口和抽象类的区别

我们可以看到,调用ConcreteClass的doSomething()方法的速度最快,因为它是一个具体类,不需要寻找具体实现的方法。在这个示例中,我们定义了一个抽象类AbstractClassDemo和一个接口InterfaceDemo,它们都有一个抽象方法abstractMethod()和abstractMethod1(),但是抽象类中还有一个普通方法。实现了这两个类型的类Demo,它通过实现这两个类型的抽象方法来证明了抽象类可以提供成员方法的实现细节,而接口中只能存在 public 抽象方法的特点。

2023-05-05 09:12:14 503 2

原创 Android观察者模式,Rxjava观察者模式简介

Observable: 被观察者 (Subject)。Observer/Subscriber: 观察者。Subscribe:订阅。Observable 和 Observer 通过 subscribe0)方法实现订阅关系,可以理解为绑定关联起来。

2023-04-09 13:50:51 1001

原创 Android责任链模式(java责任链模式,Android事件分发)

为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。

2023-01-14 23:33:01 84

原创 Android建造者模式(okhttp源码Builder设计模式,AlertDialog源码Builder设计模式)

生活案例:顾名思义,重点就是建造的过程。举例:造车,车是由各种各样的零件组装而成,底盘,轮胎,外壳,座椅等等,生成的流程还是非常固定的,可以把这些组成部分看成一系列的复杂的对象,轮胎可能需要各样的材料组成,外壳或许会有颜色的定制或者材料质量要求,座椅也许也会定制要求真皮材质,非常的多元化。但是它们的组装流程是一样不变的,变化的是它们这些配件的一些内部的细节(颜色,材质等等),但是不影响我们组装汽车的流程。定义:指一个复杂对象的构造和它的表示分离,使得同样的构建流程可以创建不同的表示,被称为建造者模式,它是将

2022-12-03 22:26:25 228

原创 Android代理模式(静态代理,动态代理,Retrofit代理模式分析)

一. 由来概念:面向切面编程是对面向对象继承体系的一个补充,它可以在水平方向上面做一些事情,从而完善整个java代码的设计体系。我们看看下面这个图的分析:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AQPUUd47-1670077421943)(C:\Users\Administrator\Desktop\无标题.png)]上面这幅图抛出AOP,也就是水平方向上面做事情。下面我们就通过几个类写代码简单模拟一下这个过程。声明一个A接口,B,C分别实现了A接口并且复写了test

2022-12-03 22:24:53 1942

原创 Android工厂设计模式(简单工厂,工厂方法,抽象工厂,BitmapFactory简单工厂分析,Retrofit抽象工厂分析)

工厂模式主要是用于对对象实例化的一种管理模式,一般情况下,我们都需要使用new关键字来创建一个对象,那么我们就需要用工厂模式来统一管理我们对象的创建过程,把对象的创建交给该模式去处理,这样我们就不用手动的去new对象了,工厂模式主要是将创建对象的具体过程屏蔽隔离起来。首先我们先来看一个Android里面开发常用的例子SharedPreferences。这是布局文件我们一般都这么写,常规写法SP工具类初始化小结:优点:通过SPUtils工具类来优化代码,就不用每次都在Activity里面重复写SP的代

2022-12-03 22:22:18 1145

原创 Android中的单例模式(java单例模式详解,Glide,EventBus,LayoutInfalter的源码单例模式详解)

名称优点缺点普通的单例模式实现简单,操作简单,理解简单多线程并发操作资源的时候不安全,会导致资源数据混乱饿汉模式线程安全内存资源的消耗会相对多一些懒汉模式线程安全需要上锁,线程资源需要同步排队等待执行,性能方面相对较低静态内部类模式线程安全、避免了对象的实例化操作,可通过外部类直接访问静态的内部类操作创建单一的实例对象。暂无。

2022-11-05 21:20:49 2276

空空如也

空空如也

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

TA关注的人

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