9 张雨明

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1w+

【设计模式六】原型模式简介、深拷贝浅拷贝问题

定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常。重写Object类中

2020-07-11 21:06:53

【设计模式五】模板方法模式简介

定义定义一个操作中,算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。例子1,给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务大体上可分为两部分,排序和打印AbstractSortpackage com.zhangyu.template;public abstract class AbstractSort { //定义一个待实现的抽象方法 public abstract void

2020-07-11 11:03:03

YUV格式简介、YUV444、YUV422、YUV420

YUV是一种颜色编码方法,Y表示亮度(Luma),也就是灰度值。U分量和V分量重存储了是色度(Chroma)信息,主要作用是描述了视频的色彩及饱和度,用于指定每个像素的颜色。主要用于电视系统以及模拟视频领域,它将亮度信息Y与色彩信息UV分离,没有UV信息一样可以显示完整的图像,显示出来将是黑白效果,解决了彩色电视机和黑白电视机之间的兼容问题。早期的黑白电视机只有亮度值Y,后面彩色电视的出现引入了UV分量,形成了现有的YUV格式,又称为YCbCr格式。YUV格式的优点。由于人眼对亮度敏感而对色度不敏感的特点

2020-07-04 11:20:36

Java 单链表的删除操作

测试代码package com.zhangyu;public class LinkedListTest { /** * 定义节点的结构 */ static class Node { int data; Node next; public Node(int data) { this.data = data; } @Override public

2020-07-02 17:30:26

Java 静态初始化块、普通初始化块

初始化块Java中可以通过初始化块进行数据的赋值。在类的声明中可以包含多个初始化块,当类创建实例的时候就会依次执行这些代码块。如果使用static修饰初始化块,就称为静态初始化块。需要注意的是,静态初试化块只在类加载的时候执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。例子package com.zhangyu;public class MyTest { String name; //普通初始化块 { name = "zhan

2020-07-01 17:27:55

Java 集合 Collection、Map 的整体结构图

说明1.所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。2. 集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。3. 抽象类:5个抽象类(长虚线表示),对集合接口的部分实现。可扩展为自定义集合类。4. 实现类:8个实现类(实线表示),对接口的具体实现。5. Collection 接口是一组允许重复的对象。6. Set 接.

2020-06-30 18:27:39

Java Synchronized 同步锁的基本用法

开启线程的方式 /** * 两种创建线程的方式 * Thread/Runnable(推荐) * * 调用start方法后,并不是立即执行多线程的代码,只是将这个多线程状态变为可运行状态,而不是执行状态 * * 两种启动线程方法的区别: * 1.共同点: ...

2020-06-30 12:53:06

Android Activity的4种启动模式(launchMode)和对生命周期的影响

Standard标准模式,默认模式,每次都会再任务栈顶部重新new一个ActivitySingleTop栈顶复用,如果要开始起Activity在栈顶,则复用。应用场景,IM、新闻等推送消息页面。SingleTask栈内复用,清除该Activity上面的所有其他Activity。应该场景例如APP的主界面,每次回到主界面后会清除其他的ActivitySingleInstance在整个Android内存中有且仅有一个实例,该实例独享一个任务栈。呼叫来电的界面。...

2020-06-30 08:56:04

Android AsyncTask 串行和并行测试

创建一个自己的MyAsyncTaskpackage com.zhangyu.asynctasktest;import android.os.AsyncTask;import android.util.Log;public class MyAsyncTask extends AsyncTask<String, Void, String> { private static final String TAG = "MyAsyncTask"; String name;

2020-06-29 13:26:55

Java 反射的基本介绍

类类型,类的动态加载package com.zhangyu;public class ClassTest { public static void main(String[] args) { //Test的实例对象如何表示 Test test1 = new Test();//test1就表示出来了 //Test这个类也是一个实例对象,Class类的实例对象 //任何一个类都是Class的实例对象,这个实例对象有三种表示方法

2020-06-26 17:34:51

Java try-catch-finally 执行流程

参考文献try{}里面包含可能会出错的代码?如果里面出错了,他回交给catch{}处理,catch可能把这个错误给屏蔽掉(就比如说你牙疼不能吃饭,给给力来个止疼的,不影响你做其他的事情了)。。不影响你之后的代码运行。。但是如果你try{}里面有多行代码第一行,第二行,第三行,如果第二行出错了,第三行是不执行的。如果有finally{}这里里面代码是处理后事的。比如说,你try里面有操作工作流的,那么如果出错了fianlly可以用力处理,关闭工作流对象,避免浪费资源。finally{}是必须执行的,不是管是

2020-06-24 12:29:37

Java 中 Map、HashMap、LinkedHashMap、TreeMap

结论:如果没有特殊的其他需求,例如,录入顺序,使用顺序,key顺序情况下。500万以下。一次性put所有数据,或一次性get所有数据,LinkedHashMap性能最好500万以上一次性put所有数据,LinkedHashMap比HashMap慢一点一次性get所有数据,LinkedHashMap依然很快HashMap的构造方法Map map = new HashMap()默认长度是16默认的负载因子是0.75等同于 Map map = new HashMap(16,0.75)Ha.

2020-06-23 18:00:31

Android Broadcast Receiver 广播接收者基本用法和跨进程通信

创建一个广播接收器package com.zhangyu.broadcasttest;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;public class MyReceiver extends BroadcastReceiver { private static final St

2020-06-21 22:14:58

Android startService和bindService的区别和用法

不推荐使用bindService启动IntentService是因为不会执行onHandleIntent方法1、生命周期上的区别执行startService时,Service会经历onCreate->onStartCommand。当执行stopService时,直接调用onDestroy方法。调用者如果没有stopService,Service会一直在后台运行,下次调用者再起来仍然可以stopService。执行bindService时,Service会经历onCreate->onBind

2020-06-21 15:56:58

Java 把一个字符串中的单词原地进行反转。比如“abc de fgha”,反转成“cba ed ahgf”,栈的基本用法

方案一(部分情况下不适用)使用split分割空格乎,然后通过StringBuffer进行反转。不适用的情况如,前后空格的,中间两个单词中有多个空格时,不能保证原地反转。 public String reverse(String str) { Log.e(TAG, "输入:" + str); if (TextUtils.isEmpty(str)) { return ""; } //空格分割字符串

2020-06-21 12:08:28

Android ContentProvider实现进程间通信

Manifest<provider android:name=".MyContentProvider" android:authorities="com.zhangyu.testcontentprovider" //允许外部程序访问 android:exported="true"></provider>MyContentProviderpackage com.zhangyu.tes

2020-06-19 10:32:47

Android Demo 调用360搜索接口查询图片

https://gitee.com/olleh/RealTest.gitGradledependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' test

2020-06-17 18:32:19

Android四种引用类型,强引用、软引用、弱引用、虚引用

引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)四种引用类型。这四种引用类型的引用强度依次逐渐递减。强引用:强引用在代码中普遍的存在,类似与“Object obj = new Object();”只要某个对象有强引用与之关联,JVM则无法回收该对象,即使在内存不足的情况下,JVM宁愿抛出OutOfMemory错误,也不会回收这种对象。软引用:软引用常常用来描述一些有用但是

2020-06-17 09:51:48

Android Activity的Context和Application的Context区别

Activity Context1.使用的时候需要判断是否在Activity的周期内,如果超出范围,则使用Application Context2.某些情况下必须使用Activity的Context例如dialog,startActivity等。(如果超出范围,则可以使用弱引用)3.跟UI相关的要用Activity的ContextApplication Context1.在单例中使用2.超出Activity的生命周期范围,如Thread,AsyncTask等中。...

2020-06-16 18:51:02

Java单链表的插入和删除操作

StudentNodepackage com.zhangyu.linklisttest2.linkedlist;import java.util.Objects;/** * 节点类 */public class StudentNode { int id;//学号 String name;//名字 int data;//成绩 StudentNode next;//下一个节点 public StudentNode(int id, String name,

2020-06-14 17:24:23

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。