自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 新旅程-安卓之旅

安卓之旅@author 无忧少年@createTime 2021/08/07 最近因换工作,加入了某终端公司,最近刚开始接触安卓,总结一下安卓学习之路!首先会总结一下安卓的四大组件,然后在谈谈自己写的一个小demo...

2021-08-07 14:06:54 235

原创 anroid 自定义控件

anroid 自定义控件@author lisiwen@createTime 2022/4/11示例代码地址:https://github.com/NET-lisiwen/UICustomViews/tree/master文章目录anroid 自定义控件1.引入布局2.创建自定义控件​ 之前我们学习了Android中一些常用控件和基本布局的用法,不过当时我们并没有关注这些控件的布局的继承结构,现在来看一下​ 可以看到我们所用的所有控件都是直接或者间接继承自View的,所用的所有布局

2022-04-12 22:58:34 2328

原创 android 基本布局

android基本布局

2022-04-10 11:44:25 1741

原创 android 常用控件的使用方式

android常用控件开发

2022-04-10 00:33:34 1002

原创 android四大组件——内容提供器(Content Provider)详解

四大组件——内容提供器(Content Provider)详解@author 无忧少年@createTime 2021/08/151.内容提供器简介​ 内容提供器(Content Provider)主要用于再不同的应用程序之间实现数据共享的功能,他提供了一台完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问的数据的安全性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。​ 不同于文件存储和SharedPreferences存储中的两种全局可读写的操作模式,内容

2021-08-15 16:35:53 6837

原创 android四大组件——广播机制(Roadcast)详解

四大组件——广播机制(Roadcast)详解@author 无忧少年@createTime 2021/08/141.广播机制简介​ Andorid提供了一整套的API,允许程序自由地在程序内部或者手机内部发送和接收广播,广播主要分为两种类型:标准广播、顺序广播标准广播​ 是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。这种广播的效率会比较高,但同时也意味着它是无法被截断的。标准广播的工作流程如下图所示

2021-08-14 21:20:45 542

原创 android四大组件——服务(Service)详解

四大组件——服务(Service)@author lisiwen@createTime 2021/08/081.认识服务​ 服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。2.多线程编程​ java多线程如果不太熟悉的话可以看看我之前的文章:----先熟悉一下java的多线程编程2.1 使用多线程进

2021-08-14 15:34:08 3018 1

原创 android四大组件——活动(Activity)详解

四大组件——活动(Activity)@author 无忧少年@createTime 2021/08/07首先介绍一个下活动这个组件吧,毕竟我看打开一个app最先看到的就是页面了,这部分和用户的交互体验息息相关1.认识Activity​ 首先得介绍一下这个组件————活动(Activity)是 最容易吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序中可以包含零个或者多个活动,但不包含任何活动的应用程序很少见,谁也不想让自己的应用永远无法被用户看到吧。​ 之前

2021-08-07 18:34:43 3538

原创 android四大组件

android四大组件@author 无忧少年@createTime 2021/08/07因为做了两年的后端,刚做android 的话前端还是最恼火的,接下来先看看和后端能接受的快点的四大组件。1. 四大组件有什么四大组件包括:a).活动(activity) 用于包含用户界面的组件,主要用户和用户进行交互。b).服务(service) 程序后台运行的解决方案c).广播接收器(content provider) 用于接收广播d).内容提供器(broadcast receiver) 不同应

2021-08-07 15:46:12 153

转载 原子操作类

原子操作类@author 无忧少年@createTime 2021-03-301.原子更新基本类型AutomicBoolean 原子更新布尔类型AtomicInteger 原子更新整型AtomicLong 原子更新长整型这三个类的用法几乎一模一样,接下来就以AtomicInteger 为例讲解一下int addAndGet(int delta): 以原子方式将输入的树枝与实例中的值相加并且返回结果。boolean compareAndSet(int expect, int upd

2021-08-07 15:03:49 327

原创 Map接口源码解析

Map接口源码解析@author 无忧少年@createTime 2020/06/10public interface Map<K,V> { //同样的,如果size超过Integer.MAX_VALUE也只会返回Integer.MAX_VALUE int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(O

2021-08-07 15:02:38 160

原创 ConcurrentLinkedQueue源码详解

ConcurrentLinkedQueue详解@author 无忧少年@createTime 2021/03/08ConcurrentLinkedQueue介绍​ 在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,下面我们一起来研究下Doug Lea是如何使用

2021-08-07 15:01:46 445

原创 ConcurrentHashMap源码解析

文章目录ConcurrentHashMap1. ConcurrentHashMap和HashMap、HashTable之间的区别2. ConcurrentHashMap的结构ConcurrentHashMap在JDK1.8中和HashMap结构大同小异,下面介绍一下ConcurrentHashMap的基本属性3. put方法4. get 方法5.size方法ConcurrentHashMap@author 无忧少年@createTime 2021/03/071. ConcurrentHa

2021-08-07 15:00:08 95

原创 LinkList源码解析

LinkList源码解析@auther 无忧少年@creatTime 2020/07/16一、前言​ 这次我们来看一下常见的List中的第二个——LinkedList,在前面分析ArrayList的时候,我们提到,LinkedList是链表的结构,其实它跟我们在分析map的时候讲到的LinkedHashMap的结构有一定的相似,但是相对简单很多,今天再详细的看一下它的具体结构,以及使用的场景等。二、LinkedList结构概览在看具体的结构之前我们先来看一下它的继承关系:与Array

2021-08-07 14:58:52 247

原创 ArrayList源码解析

ArrayList源码解析@auther 无忧少年@creatTime 2020/07/10一、ArrayList结构​ 顾名思义,ArrayList的结构实际就是一个Object[]。所以它的特性很明显,插入一个元素的时候,是耗时是一个常量时间O(1),在插入n个元素的时候,需要的时间就是O(n)。其他的操作中,运行的时间也是一个线性的增长(与数组中的元素个数有关)。二、ArrayList源码解析2.1 ArrayList类的继承关系其中值得一提的是RandomAccess接口,

2021-08-07 14:57:26 95

原创 AQS简介

AQS@author lisiwen@createTime 2020/09/221.AQS简介AQS是AbstractQueuedSynchronizer的简称,即抽象队列同步器,从字面意思上理解:抽象:抽象类,只实现一些主要逻辑,有些方法由子类实现;队列:使用先进先出(FIFO)队列存储数据;同步:实现了同步的功能。那AQS有什么用呢?AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的同步器,比如我们提到的ReentrantLock,Semaphore,

2020-09-27 08:20:58 389

原创 volatile关键字

volatile@author lisiwen@createTime 2020/09/251 几个基本概念在介绍volatile之前,我们先回顾及介绍几个基本的概念。1.1 内存可见性在Java内存模型那一章我们介绍了JMM有一个主内存,每个线程有自己私有的工作内存,工作内存中保存了一些变量在主内存的拷贝。内存可见性,指的是线程之间的可见性,当一个线程修改了共享变量时,另一个线程可以读取到这个修改后的值。1.2 重排序为优化程序性能,对原有的指令执行顺序进行优化重新排序。重排序可能发生

2020-09-25 09:52:35 317

原创 多线程间的通信

线程间的通信@author lisiwen@createTime 2020/08/261.锁与同步​ 在java中锁的概念都是基于对象的,所以我们通常又称它为对象锁,锁与线程的关系就是一个锁只能在同一时间被一个线程拥有,其他线程需要等待锁呗释放,只有当当前线程释放了锁,其他线程才能拥有这个锁。​ 在线程之间也有一个同步的概念,解释一下同步的概念,同步概念就仿佛是A和B抄大佬作业的时候,如果突然大佬说他作业有答案错了,需要改几道题的答案,这时候可能就会导致A和B抄出来的作业是不一致的,为了A

2020-09-15 15:19:17 127

原创 Netty 入门学习

文章目录Netty 入门学习1. 认识Netty1.1. 什么是Netty1.2. Netty特点1.3.Netty和Tomcat有什么区别?2. Netty核心组件2.1.Bootstrap 和 ServerBootstrap2.2. Channel2.3. 回调2.4. Future2.5.ChannelHandler2.6. EventLoop3.项目代码示例3.1.服务端部分3.2.客户端部分3.3.编码解码器部分3.4.传输对象部分3.5.项目启动结果Netty 入门学习@author li

2020-09-15 14:22:05 591

原创 一、并发编程入门

并发编程入门@author lisiwen@createTime 2020/07/221.上下文切换​ 单核处理器也是支持多线程执行代码,因为cpu通过给每个线程分配cpu时间片来实现这个机制,时间片是cpu分配给各个线程的时间,因为时间片特别短,所以cpu通过不停切换线程执行,让我们感觉很多线程是同时执行的,时间片一般是十几毫秒(ms)。​ CPU通过时间片分配算法循环执行任务,当前任务执行一个时间片后会却换到写一个任务,但是,在切换之前会保存上一个任务的状态,以便下一次切换回这个任务时

2020-07-27 09:31:15 136

原创 多线程简单使用

多线程简单使用@author 李思文@createTime 2020/07/161.前言​ 最近在学习过程中,或多或少接触到很多关于多线程的知识,目前我在项目上接触的也比较少,所以此次特殊学习一下。## 2.什么是线程​ 要说线程,首先要说一下进程,对于进程的理解可以打开电脑的任务管理器,如下图​ 每一个开启程序均为一个进程,而一个进程可以有至少一个线程,就比如说qq的话,打开一个QQ属于开启一个进程,而qq可以同时和很多人聊天,也可以和A聊天同时和B视频,这个就是两个线程,如下图

2020-07-16 18:11:12 206

原创 HashMap源码分析

HashMap源码分析@author lisiwen@createTime 2020/06/101. HashMap类的继承关系​ 可以看到HashMap继承自AbstractMap,实现了Serializable和Cloneable。这里介绍AbstractMap的源码,因为阅读之后发现比较简单,有兴趣的可以自行去看看,其中的keyset()和values()方法与HashMap中的类似。Serializable接口表示HashMap实现了的序列化,Cloneable接口表示可以合法的调用

2020-06-29 09:21:16 122

原创 基于springboot的脚手架

基于springboot的框架@autohr lisiwen@createTime 2020/05/14最近因公司新接手了一个新项目,业务和之前完全不同,我这索性新搭建了一套我们服务的简单的框架,使用的是springboot 2.1 集成了mybatis-plus、redis、拦截器、swagger、阿里的Druid、全局异常处理等,项目结构大概如下:使用的是多模块的结构,直接上传到公司maven私服的,以供新服务使用。接下来有时间就会介绍这套架构。...

2020-05-14 09:11:31 408

原创 springboot使用MQ

springboot使用MQ@author 李思文@company 博思软件@createdTime 2020/2/21现在pom文件中加入依赖<!-- MQ依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spri...

2020-02-24 09:17:44 4169

原创 使用自定义注解和@Aspect实现操作日志记录

使用自定义注解实现操作日志记录@author lisiwen@createTime 2020/2/5​ 在项目中需要对于指定操作进行日志的记录,在我们有的项目中是对于异常时对日志数据进行记录,有的项目是对所有数据进行日志记录。可以使用方法来实现日志记录,也可以使用注解的方式实现,总的来说使用注解的方式,更加的简单,便捷。​ 使用注解的方式主要是使用@Aspect这个注解,对使用自定...

2020-02-05 19:41:21 1217

原创 设计模式——组合模式

组合模式@author lisiwen@createTime 2019/12/25​ 组合模式(Composite):将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。​ 组合模式(Composite)结构图代码示例:Component.java/** * @ProjectName: d...

2020-01-19 15:19:11 108

原创 设计模式——终结者模式

中介者模式@author lisiwen@createTime 2020/01/08​ **中介者模式(Mediator):**用一个中介者对象来封装一系列的对象交互。中介者使各个对象不需要显示地互相引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。代码示例Colleague.java/** * @ProjectName: designpattern * @Clas...

2020-01-19 15:18:30 3515 1

原创 设计模式——责任链模式

# 责任链模式@author lisiwen@createTime 2020/01/07​ **职责链模式(Chain of Responsibility):**使多个对象都有机会处理请求,这样避免请求的发送者和接受者之间的耦合关系。将这个 对象连胜一条链,并沿着这条链传递该请求,直到有一个对象处理它为止.代码示例:Handler.java/** * @ProjectName...

2020-01-19 15:15:42 94

原创 设计模式——享元模式

享元模式@author 李思文@createTime 2020/01/14​ **享元模式(Flyweight):**运用共享技术有效地支持大量细粒度的对象。代码示例:Flyweight.java/** * @ProjectName: designpattern * @ClassName: Flyweight * @Description: 它是所有具体享元类的超类或接口...

2020-01-19 15:14:52 107

原创 设计模式——适配器模式

适配器模式@auther lisiwen@createTime 2019/12/23​ 适配器模式(Adapter):将一个类的几口转换为客户希望的另外一个接口。Adapter模式似的原本由于接口不兼容而不能一起工作的那些 类可以一起工作。​ 适配...

2020-01-19 15:13:41 80

原创 设计模式——桥接模式

桥接模式@author lisiwen@createTime 2019/12/31​ **桥接模式(Bridge):**将抽象部分与它的实现部分分离,使它们都可以独立的变化。抽象与它的实现分离:这并不是说,让抽象与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。桥接模式的代码实现Implementor.java/** * @Project...

2020-01-19 15:12:51 106

原创 设计模式——命令模式

命令模式@author lisiwen@createTime 2020/01/02​ **命令模式(Command):**将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。代码示例:Command.java/** * @ProjectName: designpattern * @ClassName: Comma...

2020-01-19 15:12:02 82

原创 设计模式——迭代器模式

迭代器模式@author lisiwen@createTime 2019/12/26​ **迭代器模式(Iterator):**提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。迭代器代码示例Aggregate.java/** * @ProjectName: Aggregate * @ClassName: Main * @Description: A...

2020-01-19 15:10:59 92

原创 设计模式——单例模式

单例模式@author lisiwen@createTime 2019/12/30​ **单例模式(Singleton):**保证一个类仅有一个实例,并提供一个访问它的全局访问点。​ 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。...

2020-01-19 15:09:52 86

原创 设计模式——备忘录模式

备忘录模式@author lisiwen@createTime 2019/12/24​ 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态​ 备忘录模式(Memento)结构图​ Originator(发起人):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并...

2020-01-19 15:08:24 117

原创 String、StringBuffer和StringBuilder之间的区别

String、StringBuffer和StringBuilder之间的区别@author 无忧少年@createTime 2019/12/091. Java String 类——String字符串常量​ 字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。​ 需要注意的是,String的值是不可变的,这就导...

2019-12-09 20:37:09 8981 6

原创 mybatis常用标签使用文档

目录:文章目录mybatis常用标签使用文档<cache> 标签<cache-ref> 标签<resultMap > 标签<sql> 标签<insert> 、<delete>和<update>标签<select>标签mybatis常用标签使用文档@author 李思文mybatis映射文...

2019-11-04 09:21:10 565

原创 mybatis中collection嵌套使用

mybatis中collection嵌套使用@author 无忧少年@createTime 2019/10/251. 问题刚完成的项目,突然又改了需求,在为了不大改动原先代码的原则下,得使用mybatis的resultMap中的collection再嵌套一层collection实现,这个也是这次需求的难点,此次就记录一下collection 嵌套collection 的实现逻辑。2....

2019-11-04 09:12:48 5809 2

原创 设计模式——抽象工厂模式

设计模式——抽象工厂模式@author 无忧少年@createTime 2019/10/16抽象工厂模式:提供一个 创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。抽象工厂模式(Abstract Factory)结构图​ 抽象工厂模式代码示例:// 用户接口public interface IUser { void Insert(User user); ...

2019-11-04 08:52:41 79

原创 设计模式——状态模式

状态模式@author 无忧少年@createTime 2019/11/02**状态模式(State):**当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。​ 状态模式主要解决的时当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。当然如果这个状态判断非常简单,那就没必要使用状态模式了...

2019-11-04 08:48:34 124

空空如也

空空如也

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

TA关注的人

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