自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 (二)Java常用设计模式之——观察者模式
原力计划

当一个对象的状态等值发生改变时,需要告知其他对象,这就需要用到观察者模式。一个被观察者可以对应多个观察者。以下面的例子,主要有四个类,分别是:抽象的观察者Observer 这里用一个接口来表示,通常用接口或者抽象类抽象的被观察者Subject具体的观察者 UseObserver 重写父类接口中的方法具体的被观察者 UseSubject 继承自Subject下面就来看具体的实例来方便理解这一设计模式:首先创建Observer.class,在这里定义一个getMessage()方法,后面用于

2020-06-18 13:48:17 97

原创 (一)Java常用设计模式之——Builder(建造者模式)
原力计划

建造者模式的目的就是将复杂的对象的构造与表示过程分离,以便相同的构造过程可以创建不同的表示。单纯这样讲可能比较难懂,直接来看下面的例子。现在有一个people类,由name, gender, region 三个参数,不同people的这几个的值是不一样的。如果不使用builder模式。那么很可能在创建很多对象的时候代码量很多且冗余,而且假如想要创建一个region都是上海的人们,那么就要在每创建一次对象的时候赋值一次,十分不灵活,但是如果使用builder模式,这些问题就都可以得到解决。下面是一个bu

2020-06-17 15:46:35 51

原创 (四) java关键字之 final 用法解析

1. final变量2. final方法3. final类1. final 变量final关键字时常用于修饰变量,比如 final int age = 21,起到一种类似于是C语言中的宏定义的作用,这里变量一旦声明,就不能再进行更改。final修饰的变量必须要在定义的时候就赋予初始值,或者可以先定义然后再构造方法中赋初值。而若是static 和 final一同修饰的变量,那么需要在定义的时候赋值,且通常为大写字母用下划线连接。也可以在有参的方法中将参数类型用final修饰,被final修饰的参数也

2020-06-09 12:25:56 29

原创 (三) java关键字之 this和super
原力计划

首先从区别上来讲1、本质来说,this是指向本类对象的一个指针,而super是Java中的一个关键字;2、同样是指向对象,this是指向本类中的对象,而super是引用父类中的引用;再从使用上来说1、this和super都是方法层面的,因此不能在静态中使用,包括静态方法,静态成员,静态块;具体原因见这里2、在子类的构造方法中调用父类构造方法时,super()必须位于子类构造方法的第一行,否则就会报错,这是因为构造方法在一开始初始化时就会被调用,为了防止子类构造方法调用父类中的成员,因此必须要先对父

2020-06-07 22:45:03 57

原创 (二) java关键字之 static用法解析
原力计划

static是在Java中经常用到的一个关键字,被static修饰的变量和方法是独立于任何的实例存在的,因此它可以在任何对象创建之前访问,而无需引用任何对象。就比如下面Java中的main函数就是static修饰的,这是因为要在加载一个方法的时候首先加载main函数。public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!");

2020-06-06 16:53:43 75

原创 (一) java 关键字之 synchronized用法解析
原力计划

synchronized同步锁,用synchronized修饰的方法,当有线程执行到这个方法时,都要检查以下有没有别的线程正在使用这个方法。以确保每刻始终只有一个线程执行这个方法。根据synchronized作用的范围不同,可以分为以下两种:1、作用于方法2、作用于代码块...

2020-06-05 10:18:46 181

转载 单例模式详解

单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

2020-06-01 11:13:11 61

原创 快速准确获取开发版SHA1的值

使用百度地图的时候需要获取到开发版SHA1的值,最常见的方法就是用命令行,但是我对于命令行并不熟悉,并且操作起来也十分不便捷。以后再需要获取SHA1时,只需要运行下面的代码就可以了public static void sHA1(Context context) { try { PackageInfo info = context.getPackageManager().getPackageInfo( context.getP

2020-05-26 18:46:21 56

原创 open failed: EACCES (Permission denied)错误解决亲测有效

前两天在使用Android studio练习通过手机上传照片时,明明在mainifest中已经获取了读取和写入的权限,但还是产生了open failed: EACCES (Permission denied) 的错误。上网找了很多解决办法,其中经验贴中出现最多的就是说要在Java文件中再次检查权限,也就是添加下面的代码if (Build.VERSION.SDK_INT >= 23) { int REQUEST_CODE_PERMISSION_STORAGE = 100;

2020-05-18 14:58:45 343

原创 安卓开发常用的网络请求:HttpUrlConnection和OkHttpClient

这篇文章主要来介绍以下两种安卓开发中常用的网络请求一 HttpUrlConnection二 OkHttpClient一 HttpUrlConnection其实对于网络请求,大部分只要分清楚请求的需要和要实现的功能,然后根据功能添加到之间的代码中就可以了,代码部分基本上是没有大的变化的。下面就是一个 HttpUrlConnection的POST请求为例 URL url; try{...

2020-04-30 19:21:04 96

原创 添加support-v4依赖时遇到的坑

前几天我在自己练习时,尝试用了一下下拉刷新SwipereFreshLayout和安卓抽屉DrawerLayout,在添加依赖时都添加了support-v4的包,并且都没有报错,但是在运行时候都提示了找不到依赖的错误。上网找资料看博客包括书上也都是添加的android.support-v4的包的依赖,试了好久,实在想不到哪里出问题了,然后打开project structure重新查看添加的包,在...

2020-04-02 15:59:17 248

原创 File使用过程中常用到的一些小问题

File()是在编写程序时遇到频率相当高的东西,下面就简单从我日常最长用到的几个方面简单介绍一下,以后可能会有继续的边用边补充。1. 创建文件提到创建文件,很多人第一反应想到的就是File file = new File(),不过需要明确的是,这里的file并没有被创建,而只是创建了一个File对象。 File dayFile = new File(equiFile, day...

2020-03-16 23:35:47 31

原创 RxJava基础(一. RxJava和观察者模式)

RxJava基础篇的理解 Observable.interval(10, 10, TimeUnit.SECONDS, Schedulers.trampoline()) .map(new Function<Long, String>() { @Override public...

2020-03-14 19:46:34 59

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