自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kubectl常用命令

命令详情1、Help2. getget命令用于获取集群的一个或一些resource信息,kubectl可以列出集群所有resource的详细。resource包括集群节点、运行的pod,ReplicationController,service等kubectl get [(-o|--output=)json|yaml|wide|go-template=...|go-template-file=...|jsonpath=...|jsonpath-file=...] (TYPE [NAME | -l

2021-06-02 10:18:14 1814 1

原创 kubernetes 服务使用

概述Kubernetes Service 定义了这样一种抽象:逻辑上的一组 Pod,一种可以访问它们的策略 —— 通常称为微服务。 Service 所针对的 Pods 集合通常是通过选择算符来确定的,并将运行在一组 Pods 上的应用程序公开为网络服务的抽象方法。定义服务Service 在 Kubernetes 中是一个 REST 对象,和 Pod 类似。Service 定义可以基于 POST 方式,请求 apiserver 创建新的实例,但名称必须是合法的 DNS 标签名称。有选择符例如,假定有

2021-06-02 10:12:07 398

原创 CentOS 7下mysql 8修改datadir之后提示权限问题

背景之前默认安装mysql的时候安装在系统盘,生成binlog的时候导致系统盘空间不足,需要把mysql移动到其它盘。操作1、停止 MySQL 8.0 服务,使用下面的指令service mysqld stop2、将默认的数据目录移至目标位置mv /var/lib/mysql/ /home/3、建立软连接ln -s /home/mysql /var/lib/4、启动服务service mysqld start问题出现下面的错误[root@localhost /]#

2020-06-14 23:03:56 4498 2

原创 使用Protocol Buffer打造spring的http请求分发

前言对于Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,使用过spring的都很熟悉,使用容器来控制相关的对象的生命周期和对象间的关系。扩散下思维,可以使用一个容器来存储相关的http的controller类,根据http的请求参数来遍历这个容器执行哪个类哪个方法。但是如何是http调用这个容器呢?spring还提供了事件监听(事件监听概念这里不做说明)的实现,实现一个监听,利用...

2020-03-24 10:18:20 751

原创 nginx的Connection refused

问题描述nginx的错误日志中突然出现大量的的Connection refused问题,日志如下:2020/03/19 09:52:53 [error] 20117#20117: *7403411764 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx...

2020-03-19 22:00:53 14308 1

原创 Nginx connect() failed (110: Connection timed out)

背景在线上环境中,客户反馈经常会出现Connection timed out问题,对报错的原因进行排查,并最终定位到问题并进行总结。错误日志2020/03/17 12:32:30 [error] 46678#46678: *7328557653 connect() failed (110: Connection timed out) while connecting to upstream,...

2020-03-17 14:42:13 12596

原创 二次封装elastic-job-lite

1、概述什么是elastic-job-lite,它是定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务,具体可以点击链接进入官网Elastic-Job-Lite查看,本文主要使用elastic-job-lite和spring进行二次封装,搭建自己的分布式定时任务程序。设计思路是利用spring的自动装载和ApplicationListener特性,在运行时扫描注册相关标注为...

2020-01-05 17:15:43 543

原创 Java反射知识总结

在很多情况下,我们知道如何编写反射相关类或者方法,但是无法口述反射是什么,里面的机制是什么,下面我先如浅入深介绍反射。1、定义反射 (Reflection) 是 Java 的特征之一,它允许运行中动态加载Java 程序获取自身的信息,并且可以操作类或对象的内部属性,是一种功能强大且复杂的机制,可以用在下面四个方面:在运行时分析类的能力在运行时查看对象实现通用的数组操作代码利用Meth...

2019-09-03 22:55:24 765 1

原创 Only fullscreen activities can request orientation

问题当我们把targetSdkVersion升级到27,buildToolsVersion和相关的support library升级到27.0.2后,在Android 8.0(API level 26)上,Activity出现了一个莫名其妙的crash,异常信息如下:java.lang.RuntimeException: Unable to start activity ComponentIn...

2019-09-02 21:28:47 824

原创 重温Acticity和Fragment生命周期

重温下Android和Fragment生命周期,理解生命周期方法的作用,什么时候调用,可以做一些什么操作。1、Android生命周期1.1 生命周期图1.2 生命周期函数说明onCreate:Activity正在创建,生命周期的第一个方法,需要setContentView加载layout。这里不建议耗时操作,只做layout和控件初始化。此方法传递一个 Bundle 对象,可以获取上一...

2019-08-31 08:31:38 934 1

原创 设计六大原则总结

1、单一职责原则(SRP)定义:就一个类而言,应该仅有一个引起它变化的原因为什么需要单一职责呢?如果一个类承担的职责过多,就等于把这些职责耦合在一起了,一个职责的变化可能会引起其它职责的变化,当变化发生时,设计会遭到意想不到的变化。我们看看下面简单的类图,UserDiscount类具有两个方法,一个是获取等级类型,一个是计算折扣价格。有两个不同的类在使用UserDiscount,Orde...

2019-08-30 08:07:49 988 1

原创 虚拟机类加载机制

很多人觉得会写Java代码就行,Java底层怎么运行的不需要知道,但其实并不是这样,随着经验的积累,你需要了解越来越多的底层原理。我们先来看看下面的代码,看看class是怎样加载的。public class BaseClass { static { System.out.println("BaseClass Init"); } public static...

2019-08-19 22:55:30 878

原创 Java内存和OOM情况处理

JVM在执行Java程序时过程中会把内存划分为几个数据区域,报考方法区、虚拟机栈、本地方法栈、堆、程序计数器等。如下图所示程序计数器:当前线程所执行的字节码的行号指示器,每条线程都需要一个独立的程序计数器;执行的是java方法,该记录是正在执行的虚拟机字节码指令地址,执行的是native方法,计数器值为空(Undefined),无OOM情况。虚拟机栈:方法执行并创建栈帧,存储局部变量表,操...

2019-08-13 22:27:00 982

原创 Android多平台推送

1、概述android push集成了小米,华为,魅族,vivo和oppo五大厂家的push sdk,方便Android各项目集成push。2、Push类图3、Push时序图4、使用姿势配置global.gradle和build.gradle在project的build增加配置allprojects { repositories { maven {ur...

2019-07-27 16:13:21 1673 4

原创 对象具体还是抽象?

在开发中,我们经常会把变量设置为私有(private),不想使用者依赖这些变量,但很多程序员也会给对象自动添加get/set方法,将私有变量公之于众。具体点public class User { private int userId; private String userName;}抽象点public interface User { int getUserI...

2019-07-09 23:22:02 1104

原创 Java运算符

&(按位与运算符)&(按位与)的运算规则是将两边的数转换为二进制位,然后运算最终值,运算规则即(两个为真才为真)1&1=1 , 1&0=0 , 0&1=0 , 0&0=0// 按位与int i = 3 & 5;System.out.println(i); // 13的二进制为0000 0011,5的二进制为0000 0101,那...

2019-05-15 15:31:42 860

原创 Android Room使用

简介Room库在SQLite上提供了一个抽象层,允许在充分利用SQLite的功能的同时进行更健壮的数据库访问。可以在运行的app设备上创建一个应用数据缓存,这个缓存作为app的唯一数据来源,不管用户是否有连接网络,都允许用户在app中查看相关信息。Room有三个主要的组成部分:Database,Entity,DAO。Database:数据库容器,并作为到应用程序的持久关系数据的底层连接的...

2019-05-06 11:44:18 4196

原创 Android Navigation使用

Android Navigation使用 简介Navigation导航编辑器旨在简化Android开发中导航的实现,可以帮助我们很好的处理Activity和fragment之间通过FragmentTransaction交互的复杂性,也可以很好的处理页面的转场效果;Deeplink的支持,绕过activity直接跳到fragment;并且传递参数更...

2019-03-07 17:10:00 2108

原创 Android LiveData使用

Android LiveData使用 LiveData是一个可观察的数据持有者类。 与常规observable不同,LiveData是生命周期感知的,当生命周期处于STARTED或RESUMED状态,则LiveData会将其视为活动状态,这意味着它尊重其他应用程序组件的生命周期,例如Activity,Fragment或Service。LiveDa...

2019-03-07 17:05:00 941

原创 Android Service解析

Android Service解析 Android Service是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件,它分为两种工作状态,一种是启动状态,主要用于执行后台计算;另一种是绑定状态,主要用于其他组件和Service的交互。需要注意的两点:两种状态是共存的,即Service可以是启动状态也可以同时是绑定状态防止ANR风险,...

2019-03-07 17:04:00 861

原创 Activity的生命周期和启动模式

Activity的生命周期和启动模式 一、Activity生命周期onCreate:Activity正在创建,生命周期的第一个方法,需要setContentView加载layout。onRestart:Activity正在重新启动,当前Activity从不可见重变为可见的姿态下,onRestart就会被调用。onStart:Activity...

2019-03-07 17:03:00 843

原创 Android Navigation使用

简介Navigation导航编辑器旨在简化Android开发中导航的实现,可以帮助我们很好的处理Activity和fragment之间通过FragmentTransaction交互的复杂性,也可以很好的处理页面的转场效果;Deeplink的支持,绕过activity直接跳到fragment;并且传递参数更安全。在Android Studio3.2可以使用。基本使用引用相关依赖imple...

2019-03-07 16:58:35 1564

原创 Android BrocastReceiver解析

简介BroadcastReceiver(广播接收器)是Android四大组件之一,是一个用来响应系统范围内的广播组件,可以从Android系统和其它app发送或接收广播消息,类似于发布 - 订阅设计模式。其特点是异步的,广播发送者不会关心有无接收者接收。可应用于不同组件之间的通信、多线程通信和系统在特定情况下的通信。原理对于不同的广播类型,以及不同的BroadcastReceiver注册方...

2019-02-27 10:42:47 1380

原创 [kapt] An exception occurred: java.lang.NullPointerException

符号:   类 DataBindingComponent位置: 类 XXXBindinge: XXXBinding.java: 错误: 找不到符号@Nullable DataBindingComponent componentat java.io.File.<init>(File.java:277)    at android....

2019-01-29 11:28:02 3408 2

原创 策略模式(Strategy)

1、概念策略模式定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。2、模式结构环境类:也叫上下文,对策略进行二次封装,目的是避免高层模块对策略的直接调用。抽象策略类:通常情况下为一个接口,当各个实现类中存在着重复的逻辑时,则使用抽象类来封装这部分公共的代码,此时,策略模式看上去更像是模版方法模式。具体策略类:具体策略角色通常由一组...

2019-01-18 17:21:13 856

原创 Android LiveData使用

LiveData是一个可观察的数据持有者类。 与常规observable不同,LiveData是生命周期感知的,当生命周期处于STARTED或RESUMED状态,则LiveData会将其视为活动状态,这意味着它尊重其他应用程序组件的生命周期,例如Activity,Fragment或Service。LiveData具有以下优点:UI和数据保持一致:遵循观察者模式,生命周期状态更改时,LiveD...

2019-01-17 21:13:17 3512 3

原创 Android Service解析

Android Service是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件,它分为两种工作状态,一种是启动状态,主要用于执行后台计算;另一种是绑定状态,主要用于其他组件和Service的交互。需要注意的两点:两种状态是共存的,即Service可以是启动状态也可以同时是绑定状态防止ANR风险,主线程运行的Service在执行耗时操作,则应在服务内创建新线程来完成这项工作,这可以...

2019-01-14 22:14:33 887

原创 Java四种引用

Java中提供了一个Reference抽象类,此类定义所有引用对象共有的操作,与垃圾收集器密切配合实现的。主要是为了决定某些对象的生命周期,有利于JVM进行垃圾回收。而继承此类的有四种引用,分别是StrongReference(强引用),SoftReference(软引用),WeakReference(弱引用),PhantomReference(虚引用),强度按照上面的顺序依次减弱。下面来看下四种...

2019-01-11 12:48:41 1241

原创 Android使用OkHttp WebSocket

什么是WebSocketWebSocket是一种在单个TCP连接上进行全双工通信的协议。它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,客户端和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Web...

2019-01-07 10:57:12 16729 2

原创 Activity的生命周期和启动模式

一、Activity生命周期onCreate:Activity正在创建,生命周期的第一个方法,需要setContentView加载layout。onRestart:Activity正在重新启动,当前Activity从不可见重变为可见的姿态下,onRestart就会被调用。onStart:Activity正在启动,这时Activity已经可见了,但是还没有出现在前台。onResume:Ac...

2019-01-06 23:03:15 715

原创 Retrofit2 原理解析

Retrofit是什么官网介绍是A type-safe HTTP client for Android and Java,是一个 RESTful 的 HTTP 网络请求框架的封装,但网络请求不是Retrofit来完成的,它只是封装了请求参数、Header、Url、返回结果处理等信息,而请求是由OkHttp3来完成的。入门Retrofit入门非常简单,首先需要在build.gradle引用相关...

2018-12-27 10:21:23 1091

原创 Android Lifecycle使用

引言Lifecycle 是官方提供的架构组件之一,目前已经是稳定版本,Lifecycle 组件包括LifecycleOwner、LifecycleObserver。Lifecycle 组件是执行操作以响应另一个组件(Activity或者Fragment)的生命周期状态的更改。 Lifecycle 生成更易于组织、更轻量级,更易于维护的代码。不使用Lifecycle在使用MVP模式中,如果需要...

2018-12-15 21:43:50 3126 3

原创 使用Retrofit2+RxJava2+ProtoBuf实现网络请求

引言Retrofit 是一个用于 Android 和 Java 平台的类型安全的,底层使用OkHttp实现网络请求框架。Retrofit 通过将 API 抽象成 Java 接口而让我们连接到 REST web 服务变得很轻松。RxJava 提供一套异步编程的 API,这套 API 是基于观察者模式的,而且是链式调用的。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以...

2018-12-14 10:52:48 1377

原创 ConstraintLayout使用

引言ConstraintLayout是一个ViewGroup,允许您以灵活的方式定位和调整小部件的方法,项目中的布局嵌套问题对项目性能有着不小的威胁,布局能实现扁平化的话会让软件性能得到很大的提升,而ConstraintLayout就是为了解决布局嵌套问题,提示项目的性能。官文有详细对比ConstraintLayout的性能优势。使用方式:implementation 'com.andr...

2018-12-07 10:18:01 887

原创 职责链模式(Chain of Responsibility)

1、概念职责链模式为为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它,属于行为型模式。2、模式结构抽象处理者(Handler)角色:定义出一个处理请求的接口;如果需要,接口可以定义 出一个方法以设定和返回对下家的引用具体处理者(ConcreteHandler)角色:具体处理者接到请求后,可以选择将请...

2018-12-03 10:30:56 682

原创 状态模式(State)

1、概念状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它所属的类,属于行为型模式。2、模式结构环境角色(Context):定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境对象的现有状态。抽象状态角色(State):定义一个接口,用以封装环境(Context)对象的一个特定的状态所对应的行为。具体状态角色(Concrete...

2018-11-30 11:49:30 4114

原创 解释器模式(Interpreter)

1、概念解释器模式给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子,属于行为型模式。但其在实际的系统开发中使用的很少,因为他会引起效率、性能以及维护等问题![解释器模式](https://img-blog.csdnimg.cn/2018112910503821.jpg?x-oss-process=image/watermark,type_ZmFuZ3...

2018-11-29 10:51:07 947

原创 JNI和NDK基础

引言JNI是Java Native Interface(Java本地接口),是为了方便Java调用C和C++等本地代码所封装的一层接口。NDK是Android提供的一个工具集合,通过NDK可以在Android中更加方便地沟通JNI来访问本地代码。两者之间的关系:JNI是实现目的,NDK是在Android实现JNI的手段。使用NDK有如下好处:提供代码的安全性可以很方便的地使用目前已有...

2018-11-28 16:16:10 967

原创 备忘录模式(Memento)

1、概念备忘录模式在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便恢复到原先保存的状态,属于行为型模式。2、模式结构发起人角色(Originator):记录当前时刻的内部状态,负责定义哪些属于备份的状态,负责创建和恢复备忘录数据备忘录角色(Memento):负责存储Originator发起人对象的内部状态 ,在需要的时候提供发起人需要的内部状态备忘录管理...

2018-11-28 10:25:26 891

原创 中介者模式(Mediator)

1、概念中介者模式用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互,属于对象行为型模式一种。2、模式结构Mediator: 抽象中介者,定义一个接口,该接口用于与各同事对象之间进行通信 ConcreteMediator: 具体中介者,抽象中介者的子类,通过协调各个同事对象来实现协作行为,它维持了对各个同事对象...

2018-11-26 10:32:00 916

空空如也

空空如也

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

TA关注的人

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