自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lhp15575865420的博客

边学习、边记录、边分享

  • 博客(49)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 线程池源码解读

线程池大家都用过,线程池的几个参数,大家也都熟悉:corePoolSize:核心线程数。核心线程会一直存活,即使啥也不干。如果ThreadPoolExecutor的allowCoreThreadTimeOut这个属性为true,那么核心线程闲置一段时间也会被销毁。maximumPoolSize:最大线程数。线程总数=核心线程数+非核心线程数。keepAliveTime:闲置线程存活时间,默认作用于非核心线程,如果allowCoreThreadTimeOut = true,则会作用于核心线程。unit

2021-06-26 14:58:56 126

原创 ReentrantLock源码解读(3)——Condition

Condition是除了object的await/notify之外的另一种信号机制,通常与ReentrantLock连用。先给给例子public class LockTest implements Runnable{ public static ReentrantLock lock = new ReentrantLock(); public static Condition condition = lock.newCondition(); @Override publi

2021-01-27 22:40:20 165 1

原创 ReentrantLock源码解读(2)——ReentrantLock源码与AQS

AQS(AbstractQueuedSynchronizer),它是java中可重入锁和其他同步组件的基础框架。先看一段ReentrantLock中的部分源码码 /** * Creates an instance of {@code ReentrantLock}. * This is equivalent to using {@code ReentrantLock(false)}. */ public ReentrantLock() { sync =

2021-01-27 22:39:24 173 1

原创 ReentrantLock源码解读(1)——CAS

进入源码前先介绍一个“无锁”技术:CAS(compare and swap)。为什么要介绍它呢,因为ReentrantLock的锁就是利用它实现的。它是一种乐光的策略,就是乐观地认为访问资源是不会冲突的,也就是所有的线程都可以不等待地进行下去。遇到冲突怎么办?检测到冲突就是一直重试,直到没有冲突为止。简单说,CAS需要你额外给定一个期望值,也就是你认为这个状态是什么样子,如果不是,就说明被人改过了,那就重新读取、设定期望值,再次尝试修改。例子public class CASTest {

2021-01-27 22:36:24 219 1

原创 ThreadLocal源码解读

列子先看一个简单使用的列子。static ThreadLocal<String> threadLocal = new ThreadLocal<>(); public static void main(String[] args) { for (int i=0;i<10;i++) { new Thread(){ @Override public void ru.

2020-08-02 15:02:54 122 3

原创 DelayQueue源码解读

简单介绍DelayQueue是一个延时阻塞队列,实现了BlockingQueue接口,是一个线程安全的队列。它可以根据用户设定的阻塞时间,阻塞队列出队这一操作一定的时间。一个例子给出一个例子import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.concurrent.DelayQueue;import java.util.concurrent.Delayed;imp.

2020-05-31 18:42:11 237 1

原创 SpringBoot文件下载

这里记录一个java后台比较常见的功能,文件上传与下载,以及返回图片直接用于游览器展示或者标签展示。

2019-09-08 16:48:33 411 1

原创 SSM框架搭建

首先这里用到的开发工具为idea,因为idea是目前应用最广的开发工具。ssm包括spring、springmvc、mybatis。如果你还不熟悉这三个框架,请先学习这三个框架。通过maven创建一个webapp项目创建如下图所示的文件和文件夹。要注意的是,java文件夹设置为source root(右键java文件夹-&amp;amp;gt;make directory as-&amp;amp;gt;source roo...

2019-03-05 10:08:03 742

原创 SpringMVC的简单使用

SpringMVC是一个服务端MVC框架,用于接收游览器请求,进行数据处理并做出响应。这里简单地使用SpringMVC写一个小例子。- 简单使用这里使用的工具是idea,目前最热门的java开发工具。首先用idea创建一个SpringMVC项目,它会帮你自动下载需要的包。因为是web项目,然后需要配置Tomcat服务。在Add configuration中配置Tomcat server...

2019-03-05 10:07:25 270 1

原创 Mybatis使用

Mybatis是一个持久层框架,支持sql查询、存储过程和高级映射。- 基本使用先看一下我的项目结构也就是比一般项目多了一个resource文件夹,用来放mybatis的配置,以及DAO配置的,如何导入相关的包。一个mybatis包,一个jdbc包,我这里用了maven来导包,当然你也可以新建一个lib文件放入相关包,并add进项目。这里注意一下resource文件夹设置为source ro...

2019-03-05 10:05:35 404 1

原创 自定义View

这篇文章分两方面描述Android中的自定义view,分别是自定义view和自定义viewGroup,它们又可以分为继承view(或viewgroup)和继承已有控件。关于自定义view,涉及到很多图形方面的知识,其中用的最多的是paint和canvas。其api较多,这里不写出,请去官网查询:graphic1. 自定义view继承已有控件这里实现一个左上角带有图片说明的图片。效果如图...

2018-11-14 17:57:56 171

原创 EventBus使用及源码分析

EventBus也可以称为事件总线,它主要用于组件间的通信,解耦发送者与接收者(订阅者)。比如activity和service之间的通信,可能我们会采用broadcast来通信,因为这样减少了耦合,但是需要引入一个broadcast,光代码量就提升很多。而如果用EventBus只需要在service里面发送事件,activity里面接收事件即可。下面说说基本使用。基本使用先导入依赖。co...

2018-08-20 11:01:23 321 1

原创 Android MVC与MVP例子

MVC架构介绍 现在网上介绍MVC的文章很多,我这里就简单介绍一下,再点出一些重点。 MVC分三层, Model:模型层,包括所有的功能处理(不仅仅是bean) View:视图层,用户视图接口 Controller:控制层,对外部事件响应,操作model。 结构图: 特点: 业务(model)与视图(view)的分离。 model的更新是通过观察者模式告知view的。...

2018-07-31 17:21:38 675 2

原创 servlet处理multipart/form-data表单

multipart/form-data提交的表单,里面包含了表单和二进制数据,不能用一般方法解析。解这里用到fileupload框架。需要导入commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar。 具体servlet代码private void getfile(HttpServletRequest req){ //设置工厂 ...

2018-06-14 22:24:13 5617 2

原创 Retrofit的使用

先说说Retrofit这个框架,它是一个网络请求框架,底部封装了OKhttp,遵循了restful设计风格。它的优点有通过注解配置网络请求的参数、支持多种数据的解析(如gson)、支持同步异步请求、支持Rxjava。 用法 1.添加依赖 除了Retrofit还导入了Rxjava和gson的包,之后会用到 compile 'com.squareup.retrofit2:retro...

2018-04-30 14:37:30 236

原创 Rxjava的使用

Rxjava是一个异步框架,它是基于观察者模式(简单来说,就是观察者监视被观察者,当被观察者进行动作的时候,被观察者做出反应)。其主要优点在于结构化,使用它可以使你的代码更加简洁。 首先导包,我是用了Retrofit里的Rxjavacompile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'也可以导专门做Rxjava的包compi...

2018-04-30 14:32:41 231

原创 Android二维码开发

首先是生成二维码和识别二维码。这里要用到一个框架core。这是Google的zxing框架中的一部分。二维码其实就是把数据存放在横向和纵向的各个像素点中。而这个框架提供了一个QRCodeWriter方法,但是这个方法返回的并不是位图,所以我们要自己生成位图。而带logo的二维码其实就是在原先的二维码图片中间加个logo(不影响识别)。识别二维码是利用框架里面的QRCodeReader方法,把二维码...

2018-03-10 13:55:17 1297

原创 Android6.0动态权限申请

在Android6.0之前只需在AndroidManifest.xml文件写明权限即可。但是在Android6.0之后也就是SDK>=23的时候,一些隐私权限需要动态申请,而且在用户同意授权之后App才能拥有该权限。如下9组权限需要动态申请。而且一组权限只要一个授权授权同意,全组都可用。  group:android.permission-group.CONTACTS    permi

2018-01-30 21:50:24 7459

原创 Android补间动画

实现了补间动画的四大效果,通过xml和Java代码两种方式来编写动画。可以让动画执行后停在原处。

2017-11-14 16:10:25 302

原创 上拉刷新和下拉刷新的实现

用recyclerview加上SwipeRefreshLayout再加上recyclerview的自定义footer实现了下拉与上拉刷新,并给出网格布局处理方法,然后对刷新做了相应优化。

2017-11-10 18:21:18 6365

原创 java反射机制

Java反射机制详解。原理、作用、实例

2017-10-31 15:32:46 271

原创 android 热点开发、WiFi热点通信

对热点进行开关和设置操作,获取热点的状态已经连接列表,热点和WiFi通信

2017-10-29 16:42:01 3797

原创 android wifi开发

一个WiFi开发的实例。实现了WiFi的开关、获取WiFi扫描列表、获取保存的WiFi列表、连接WiFi、获取WiFi连接的各种状态。利用接口回调实现活动与广播的通信

2017-10-26 18:55:01 875 2

原创 高德地图开发(二)地图上显示指定位置

根据坐标在地图上显示指定点,并给出点的具体地址

2017-10-02 14:15:23 15680

原创 高德地图开发(一)显示地图与定位

如果地图功能随处可见,应用很广,这里利用高德地图的SDK来实现地图的显示以及定位功能。如需要详细了解参考官网信息http://lbs.amap.com/api/android-sdk/summary使用高德地图你还得需要一个key。注册一个高德地图账号,在开发者平台 进入右上角的控制台,在应用管理中新建一个应用就可以获取到key了。首先官网下载SDK包http://lbs.amap.com/api...

2017-10-01 17:48:01 4290 4

原创 消息推送的实现

通过后台服务来实现服务器的消息推送

2017-10-01 13:16:50 566

原创 Android蓝牙开发

Android蓝牙开发,有打开、搜索、配对、连接、通信的功能。

2017-09-19 20:18:15 433

原创 Android折线图

使用hellochats框架里面的linechatView实现折线图

2017-08-25 12:07:14 970

原创 CollapsingToolbarLayout的使用及折叠事件监听

CollapsingToolbarLayout的基本使用,相关属性解析,折叠展开事件的监听,以及主动、动态地设置折叠或展开

2017-08-04 17:49:15 9314

原创 AppBarLayout+TabLayout+RecyclerView实现滑动隐藏导航栏。

整体布局用CoordinatorLayout,然后里面加入AppBarLayout,这个bar容器里面放入toolbar和TabBar,下面再加入一viewpager,类里面让它与TabLayout联动,RecycleView则放在viewpager里面。实现滑动隐藏导航栏,及翻页效果

2017-08-03 17:14:28 2829 1

原创 RecyclerView的简单使用

RecyclerView的简单使用,包括布局设置,增、删、改item,点击与长按事件设置

2017-08-03 13:15:56 301

原创 AppBarLayout与CoordinatorLayout实现toobar各种效果

AppBarLayout是一个Bar容器,它把里面的组件全部作为AppBar。而CoordinatorLayout则是可以协调里面view行为的一个布局。它们连用可以实现AppBar的各种效果

2017-08-02 14:22:36 916

原创 TabLayout与viewpager实现顶部导航栏

TabLayout与viewpager实现联动效果,TabLayout属性介绍,TabLayout不显示text解决办法

2017-08-01 17:45:18 1094

原创 自定义toast

Toast的自定义,并能随时关闭与开启

2017-07-31 18:30:05 265

原创 NavigationView实现侧滑效果

利用design包中的NavigationView实现侧滑并且设置了沉浸式状态栏

2017-07-30 18:57:20 950

原创 BottomSheetDialog(design包的一个组件)

design包下的一个底部弹出框组件

2017-07-30 12:46:33 517

原创 BottomNavigationView(design包提供的一个组件)

BottomNavigationView实现底部导航栏。BottomNavigationView没有动画效果解决办法

2017-07-29 20:25:48 592

原创 ExpandableListView可折叠列表

listView的一个子组件,可折叠列表。例如QQ联系人列表

2017-07-28 20:58:35 281

原创 PopupWindow悬浮框

像对话框一样的弹出组件。与对话框不同都是可以位置任意

2017-07-28 14:55:44 441

原创 Notification通知

使用系统的notification。以及自定义notification

2017-07-27 17:33:54 270

retrofit上传图片(含服务器代码)

Android通过Retrofit上传图片到servlet。servlet解析出图片然后保存起来。提示:因为没做动态权限,所以Android应用不适应6.0以上机型

2018-06-14

Android上拉、下拉刷新

通过SwipeRefreshLayout实现RecyclerView的的下拉刷新,通过给RecyclerView添加了一个footer布局实现了下拉刷新,通过实际的网络请求代码来验证刷新功能,有刷新之后滑到指定位置的处理。因为网格布局比线性布局复杂,代码中以网格布局为例,当然可以自己改为线性布局,

2017-11-09

android WiFi、热点通信

两个Android项目,一个WiFi(客户)端,一个热点(服务)端,他们之间通过socket通信。WiFi端,包含了各种状态的监听(开、关、身份验证、IP获取,连接、断开等)以及开、关、连接、断开的操作。热点端可以自己设置热点(名、密码、锁类型)以及获取连接到次热点的设备信息。注意:因6.0以上设备的隐私权限需要动态获取,所以在6.0以上设备运行时,请自行加上动态获取代码(本人在5.0机器上测试,用的是静态获取权限)。

2017-10-29

android wifi使用

一个Android使用WiFi的例子。可以开关WiFi、获取WiFi扫描结果、连接WiFi、获取WiFi连接的各种状态(身份验证,获取IP地址等)。还利用接口回调实现了活动与广播通信

2017-10-26

需求工程基础、原理和技术(完整版)

(德)Klaus Pohl著,机械工业出版社。一共6个部分(基础与框架,系统上下文,需求制品,核心活动,确认,管理),38章。本书仅供学习参考,不可用于从事任何商业活动,如造成侵权,后果自负。由于本书PDF版有174M无法上传,所以分享了一个含有百度云链接的TXT文档。

2017-10-17

Android 蓝牙通信简单实例

这是一个Android蓝牙开发的小程序,代码简单,实现了蓝牙打开、搜索、配对、连接、通信等功能。两个Android项目,一个服务器一个客户端

2017-09-19

AppBarLayout+TabLayout+ViewPager+RecyclerView的界面UI模型

该UI模式支持viewpager翻页并与TabLayout联动,RecyclerView活动隐藏顶部导航栏,在fragment处,给出接口,可以随意设置,recyclerview的事件都已实现也留了接口给开发者调用

2017-08-03

BottomNavigationView+ViewPager+Fragment底部导航栏

BottomNavigationView+ViewPager+Fragment底部导航栏。可拓展性很强,只要更改fragment就可以实现多样界面

2017-07-29

Android通讯录

一个简单的通讯录,可以拍照或图库选择照片存数据库,通过listView和CheckBox实现了批量删除

2017-07-26

员工管理系统Android版 (附设计文档)

Android客户端,socket连接服务器,json传输数据,jdbc连接MySQL数据库

2017-07-22

Java编程思想 第四版(非扫描版)

Java编程思想 第四版 非扫描版 文字可复制

2017-07-18

员工管理系统Android版

以Android作为客户端,Java服务器,socket连接。实现员工管理系统

2017-07-16

24中设计模式介绍及设计原则

主要介绍了程序设计过程中24种设计模式已经6大设计原则

2017-07-14

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

TA关注的人

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