自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 接口隔离原则、迪米特原则(学习笔记)

系统有更高的灵活性------接口隔离原则【一】定义客户端不应该依赖它不需要的接口。另一种定义是:类间的依赖关系应该建立在最小的接口上。接口隔离原则将非常庞大、臃肿的几口拆分成更小的和更具体的接口,这样客户将会只需要知道他们感兴趣的方法。说白了就是让客户端依赖的接口尽可能地小。【二】例子//将图片缓存到内存中 private void put(String url, Bitmap bitmap){ FileOutputStream fileOutputStrea

2020-05-29 02:15:39 193

原创 里氏替换原则、依赖倒置原则(学习笔记)

构建扩展性更好的系统---里氏替换原则【一】定义如果对每一个类型为S的对象O1,都有类型为T的对象O2,使得以T定义的所有程序员P在所有的对象O1都代换成O2时,程序P的行为没有发生变化,那么类型S时类型T的子类型。直截了当的定义:所有引用基类的地方必须能透明地使用其子类对象。我们知道,面向对象语言的三大特点时继承、封装、多态。里氏替换原则就是依赖于继承、多态这两大特性。通俗点讲就是,只要父类能出现的地方子类就可以出现,使用者根本就不需要知道是父类还是子类,但是反过来就不行了,最终总结.

2020-05-28 00:09:27 423

原创 让程序更稳定、更灵活-----------开闭原则(学习笔记)

【一】定义: 软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有的代码进行修改时,可能会将错误引入原本已经经过测试的旧代码中,破坏原有系统。因此当软件需要变化时,我们应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。当然,在现实开发中,只通过继承的方式来升级、维护原系统只是一个理想化的愿景,因此在实际的开发过程中,修改原有代码、扩展代码往往是同时存在的。【二】例子经过第一轮重构之...

2020-05-13 23:54:41 190

原创 优化代码第一步---------单一职责(学习笔记)

【一】定义: 就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数、数据的封装。【二】例子:ImageLoader需求:实现图片的加载并缓存起来public class ImageLoader { //图片缓存 LruCache<String,Bitmap> mImageCache; //线程池,线程池数量为cpu的数量 ExecutorService mExecutorService =...

2020-05-12 23:59:29 302

原创 网络编程(二)

【URL&URLConnection】为什么IE浏览打印的只是一个主体数据<html> <head> <title>这是我的网页</title> </head> <body> <h1>欢迎光临</h1> <f...

2020-04-03 22:51:24 127

原创 JAVA基础(四十)正则表达式

【概述】/** 正则表达式。** 正则表达式用于操作字符串数据。* 通过一些特定的符号来体现的。* 所以我们为了掌握正则表达式,必须要学习一些符号。** 虽然简化了,但是阅读性差。* ***/public class RegexDemo { /** * @param args */ public ...

2020-02-11 10:57:40 289

原创 JAVA 基础(三十九)反射机制

【定义】JAVA反射机制是在运行状态中,对于任意一个类(class文件),都能够知道这个类的所有属性和方法。对于任意一个对象,都能够调用它任意一个方法和属性;这种动态获取信息以及动态调用对象的方法的功能称为java语言的反射机制简单来讲就是动态获取类中信息,就是java反射,可以理解为解剖【应用场景】比如说现在我们有一个已经写好的应用软件,已经可以独立运行了。软件如果...

2020-02-11 10:56:44 86

原创 TCP练习

【文本转换】public class TransClient { /** * @param args * @throws IOException * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostEx...

2020-02-09 14:22:49 106

原创 JAVA网络编程

【网络模型】OSI 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP --------应用层--------、传输层、网际层、----主机至网络层-- 【网络通讯要素】IP地址端口号传输协议【网络分层】1.物理层主要定义物理设备标准,如网线的接口类型,光纤的接口类型、各种传输介质的传输速率等。它的主要作...

2020-02-09 14:22:14 244

原创 编码表

这篇博客讲得更加详细:https://www.cnblogs.com/davidwang456/p/7766956.html【由来】计算机早期只能识别二进制数据,早期由来是电信号,为了方便应用计算机,让它可以识别各个国家的文字(也就是让计算机和生活中的文字产生对应关系)。就将各个国家的文字用数字来表示,并一一对应,形成一张表。这就是编码表的由来。ASCII:美国标准信息交交换码...

2020-02-02 11:27:57 331

原创 File相关练习

【深度遍历文件夹】public static void main(){ File dir = new File("e:\\demodir"); listAll(dir,0);}public static void listAll(File dir,int level){ System.out.println(getSpace(level)+dir.getN...

2020-02-02 11:25:39 181

原创 JAVA基础(三十八)File

【概念】1.将文件和文件夹封装成了对象,方便对文件和文件夹的属性信息进行操作File对象可以作为参数传递给流的构造函数【构造方法】//可以将一个存在或者不存在的文件或者目录封装成file对象File file=new File("c:\\a.txt");File file2=new File("c:\\","a.txt");File f=new File("c:\\")...

2020-02-02 11:24:43 176

原创 IO流相关练习

【文件切割】public class SplitFileDemo { private static final int SIZE = 1024 * 1024; /** * @param args * @throws Exception */ public static void main(String[] args) throws Exc...

2020-02-02 11:22:44 93

原创 JAVA基础(三十七)IO流

【分类】按操作数据分为两种:字节流和字符流字节流的两个顶层父类:1.inputstream 2.OutputStream字符流的两个顶层父类:1.Reader 2.Writer这些体系的子类都以父类名作为后缀。而且子类名的前缀就是该对象的功能记住:如果操作文字数据,建议优先考虑字符流。而且要将数据从内存写到硬盘上。要使用字符流中的输出流Writer...

2020-02-02 11:21:18 170

转载 Json解析防止NAN的方法

https://blog.csdn.net/baidu_31093133/article/details/78203312

2019-11-09 09:13:21 3695

原创 JAVA基础(三十六)calender、date、math、system

【Calender日历】日历类需要根据键来取值Calendar c=Calendar.getInstance();获取年份int year=c.get(Calendar.YEAR);月份int month=c.get(Calendar.MONTH)+1;天int day=c.get(Calendar.DAY_OF_MONTH);weekint week=c.ge...

2019-06-01 16:22:59 111

原创 JAVA基础(三十五)集合相关工具类

【Arrays工具类】数组转成集合Arrays.asList();可以使用集合的方法操作数组中的元素注意:数组的长度是固定的,所以对于集合的增删方法是不可以使用的集合转成数组使用的就是Collection接口中的toArray方法。集合转成数组:可以对集合中的元素操作方法进行限定。不允许对其进行增删长度最好指定为集合的sizeString[]arr=list.t...

2019-05-03 13:49:58 78

原创 JAVA基础(三十四)集合

【集合的由来】 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定。就使用集合容器进行存储【集合框架的构成及分类】1、集合的顶层Collection |--List:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。 |--Set:元素不能重复,无序。 Map | ...

2019-04-17 01:40:09 126

原创 java基础(三十三)基本数据类型包装类

【概念】 基本数据类型对象包装类 为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作。 用于描述该对象的类就称为基本数据类型对象包装类 byte Byteshort Shortint  Integerlong  Longfloat Floatdouble Doublechar  Characterboolean ...

2018-12-29 00:52:55 116

原创 java基础(三十二)String类

【概念】字符串是一个特殊的对象字符串一旦初始化就不可以被改变String s="abc";String s1="abc";String s2=new String("abc");此时 s==s1; 这个表达式是true 因为这两个指向的地址一样s==s2,这个表达式是false,因为他们指向的地址一样s="abc";是在字符串常量池中创建对象,如果常量池中已经...

2018-12-16 19:56:34 157

原创 java基础(三十一)Stringbuffer和StringBuilder

【StringBuffer】构造方法:StringBuffer();构造一个不带字符串的缓冲区,初始化容量为16个字符.当超过16个字符时他会复制一个新的字符数组,然后把原来的字符串赋值过去(Stringbuffer内部用字符数组实现)。StringBuffer(int capacity);构造一个不带字符串,但具有指定容量的字符串缓冲区。初始化一个刚刚好的,就不用做多余复制数组的动作...

2018-12-13 00:11:00 89

原创 java基础(三十)多线程三 线程间的通信

【等待唤醒机制】涉及的方法:1.wait():让线程处于冻结状态,被wait的线程会被存储到线程池中2.notify();唤醒线程池中的一个线程(任意的线程)3.notifyAll();唤醒线程池中所有的线程这些方法都必须定义在同步中。因为这些方法是用于操作线程状态的方法必须要明确到底操作的是哪个锁上的线程即:调用的时候,锁.wait();...ps:这些方法...

2018-12-01 18:40:22 84

原创 java基础(二十九)多线程二 线程安全

【线程安全问题现象】例:class Demo implements Runnable{    private int num=100;    public void run(){    while(true){        if(num&gt;0){            try{            Thread.sleep(10);            ...

2018-12-01 18:38:50 96

转载 ConstraintLayout的详细使用

 &lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/ap...

2018-11-14 10:25:15 131

app上架到谷歌

https://blog.csdn.net/shuijianbaozi/article/details/71122554

2018-11-13 10:47:55 320

转载 git命令大全

Git常用命令使用大全查看、添加、提交、删除、找回,重置修改文件git help &lt;command&gt; # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- &lt;file&gt; # 抛弃工作区修改git co . # 抛弃工作区修改git add &lt;file&gt; # 将工作文件修改提交到...

2018-11-08 15:10:02 88

原创 java基础(二十八)多线程一

【概念】进程:正在运行的程序叫做进程。比如,我开了一个QQ,那么QQ在内存中就占了一块内存。线程:进程是不直接执行的,执行程序由线程来执行。进程只是负责分配内存控件。线程是执行路径(控制单元)。一个进程中可以多执行路径,称之为多线程一个进程中至少要有一个线程而多线程的运行是由cpu来切换处理的,这个切换的时间是很短的。其实应用程序的执行都是cpu在做着快速切换完成的。这...

2018-10-04 18:49:14 93

原创 java基础(二十七)包

包与包之间的类进行访问,被访问的包中的类必须是public的,被访问的包中的类的方法也必须是public修饰符权限:          public      protected     default   private同一类中    ok           ok            ok         ok同一包中    ok           ok        ...

2018-09-02 16:39:28 88

原创 java基础(二十六)异常

【什么是异常】异常:是在运行时期发生的不正常情况。。在java中用类的形式对不正常的情况进行了描述和封装对象。描述不正常的情况的类,就称为异常类。以前正常流程代码和问题处理结合,现在将正常流程代码和问题处理代码分离,提高阅读性。其实异常就是java通过面向对象的思想将问题封装成了对象。用异常类对其进行描述。不同问题用不同的类进行具体的描述。比如角标越界。空指针等等。类中包含...

2018-09-02 15:32:16 100

原创 java基础(二十五)Object

Object的概念object是所有类的根类object是不断抽取而来,具备着所有对象都具备的共性内容object相关API1.equals(object obj)用于判断两个对象是否相同,比较的是地址,地址相同就返回true;1.1.equals覆盖public class Person{private int age;public Person(int ag...

2018-09-01 17:20:02 110

转载 Android service复习

https://blog.csdn.net/magicmhd/article/details/80861333

2018-08-03 10:48:00 101

原创 java基础(二十四)多态

在java中一个对象有多种形态存在,叫做多态例如:   class animal{}class cat extend animal{}表现形式animal x=mew Cat();x  这类事物既具备猫额形态,又具备动物形态。这就是对象的多态简单的说:就是一个对象对应着不同类型多态在代码中的体现:父类或者接口的引用指向子类对象多态的好处:    提高了代码的扩展性,前期定义的代码可以使用后期的内容...

2018-07-14 21:01:56 156

转载 三种封装json数据的方式

https://blog.csdn.net/surpass0728/article/details/79372775

2018-06-13 17:27:23 9105

原创 外部拦截法解决HorizontalScrollView嵌套Recyclerview滑动冲突

package com.growatt.shinephone.view;import android.content.Context;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.MotionEvent;import android.widg...

2018-06-13 16:05:55 2501

原创 java基础(二十三)接口

对于接口当中常见的成员:而且这些成员都有固定的修饰符1.全局常量:public static final2.抽象方法:public abstract接口中的成员都是公共的权限interface Demo{ public  stati final int NUM=4; public abstract void show1(); public abstract void show2();}如果不写这些...

2018-06-10 17:44:34 115

转载 git上传代码

https://blog.csdn.net/tenkywoo/article/details/64924192生成SSH密钥过程:1.查看是否已经有了ssh密钥:cd ~/.ssh如果没有密钥则不会有此文件夹,有则备份删除2.生存密钥:$ ssh-keygen -t rsa -C “[email protected]”按3个回车,密码为空。Your identific...

2018-06-10 17:42:14 120

原创 java基础(二十二)抽象类

特点:1.方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。    抽象方法必须定义在抽象类中。该类必须也被abstracts修饰。2.抽象类不可以被实例化,因为调用抽象方法没有意义,也就是不能new对象3.抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化 否则还是抽象类tips:1.抽象类中有构造函数吗?有,用于给子类对象进行初始化2,抽象类可以不定义抽象方法吗...

2018-06-09 16:19:49 197

转载 Android:三种对话框比较

https://blog.csdn.net/androidstarjack/article/details/73824885

2018-06-07 13:51:49 226

转载 android:Intent中的几种Flag

https://blog.csdn.net/liuhe688/article/details/6761337

2018-06-07 12:22:19 193

原创 java基础(二十一)final关键字

final关键字1.final是一个修饰符,可以修饰类,方法,变量2.final修饰的类不可以被继承3.final修饰的方法不可以被覆盖4.final修饰的变量是一个常量,只能赋值一次继承的弊端:打破了封装性用final关键字修饰类不可以被继承为什么要用final修饰变量。其实在程序中如果一个数据是固定的,那么直接使用这个数据就可以了,但是这样阅读性差,所以给该数据起个名称,而且这个变量名称的值不...

2018-06-07 01:19:11 142

你需要的资源

用来解决\.gradle\caches\transforms-1\files-1.1路径报错的文件

2018-05-20

空空如也

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

TA关注的人

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