- 博客(106)
- 资源 (5)
- 收藏
- 关注
原创 设计模式----工厂模式(工厂方法)
定义:工厂方法模式 是一种常用的对象创建型设计模式,此模式的核心精神是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。特点:工厂方法模式是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模...
2020-06-29 19:20:18
177
原创 java基础十二 -- 反射
Java 反射应用一、通过反射获取对象的方式二、获取默认的构造函数,实例化对象三、获取其他构造函数,实例化对象四、获取、设置 字段五、调用方法1.通过反射获取对象的方式public void getObjectTest() throws ClassNotFoundException { //反射获取对象的方法: Class cls=null; //方式...
2019-05-27 22:56:43
243
原创 java基础十一---Socket
一、UDP:无连接通信。特点:1.传输效率高 2.安全性低,不保证可到的数据传输。开发流程:发送端(客户端):1.建立udp服务 DatagramSocket ds=new DatagramSocket()2.封装数据包(DatagramPacket ) byte[] buff="udp test" .getBytes(); Da...
2019-05-26 11:32:47
275
原创 java基础十---IO字节流OutputStream
outputStream 这个抽象类是表示字节输出流的所有类的超类 常用函数: close() 关闭此输出流并释放与此流相关联的任何系统资源。 flush() 刷新此输出流并强制任何缓冲的输出字节被写出。 write(byte[] b) 将 b.length字节从指定的字节数组写入此输出流。子类:1.FileOutp...
2019-05-19 22:01:08
294
原创 java基础十---IO字节流InputStream
InputStream 这个抽象类是表示输入字节流的所有类的超类。 需要定义InputStream子类的应用InputStream必须始终提供一种返回输入的下一个字节的方法。常用函数: 1.read(byte[] b, int off, int len) 从输入流读取最多 len字节的数据到一个字节数组。 2.close() 关闭此输...
2019-05-19 21:58:27
249
原创 java基础十---IO字符流Writer
一、Writer:用于写入字符流的抽象类。 子类必须实现的唯一方法是write(char [],int,int),flush()和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率,附加的功能或两者。常用函数: 1.append(CharSequence csq) 将指定的字符序列附加到此作者。 2.write(String str) ...
2019-05-15 22:33:13
224
原创 java基础十---IO字符流Reader
一、Reader :用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率,附加的功能或两者。常用函数:close() 关闭流并释放与之相关联的任何系统资源。 read(char[] cbuf, int off, int len) 将字符读入数组的一部分。已知...
2019-05-13 22:54:42
273
原创 java基础十---IO流
简介: IO流主要分为两大类:字符流、字节流。一、字符流:实现了Reader 和 Writer 抽象类,只能用于处理字符数据。二、字节流:实现了InputStream 和 OutputStream 抽象类,可以处理任意的数据,包括图片数据、视频、文本等。备注: 图片来自于网络...
2019-05-13 22:36:42
216
原创 java基础八---集合Map
Map集合 HashMap、TreeMap遍历集合: 方式一:hashMap.keySet() 方式二:hashMap.entrySet() ,可以在遍历的过程中,修改集合内容 方式三:foreach // for(Map.Entry<String,String> map:hashMap.entrySet()) HashMa...
2019-05-03 21:40:04
202
原创 java基础---比较器 Comparator和Comparable
共同点: 都是接口,都可以用来比较大小。不同点: 1.包名不同: Comparator在 java.lang 包。 Comparable在 java.util 包 2.实现的接口名称不一样: Comparator 需要实现 public int compar...
2019-05-03 11:15:21
229
原创 设计模式-抽象工厂
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。特点:一个抽象工厂类,多个产品抽象类。一个工厂类可以产生一系列产品族的产品。抽象工厂支持多个产品,这也是和简单工厂、工厂方法的最大区别。优点:解耦。缺点:代码结构复杂,不一样维护第一步:定义产品接口:抽象工厂支持多个产品,所以我们定义两个产品接口。//扫描头产品接口public interface...
2019-04-27 14:48:35
160
原创 java基础九---泛型
1.自定义泛型类,如果需要使用泛型变量的情况就可以定义泛型类。泛型类的局限性:类实例化之后就已经确定了类型,无法再使用其他类型。使用泛型方法就可以解决这个局限性。/** * 泛型类的定义 */public class GenericClass<T> { private T data; public T method1(){ return ...
2019-04-25 22:20:29
176
原创 java基础八---集合Collection
一.集合的概念1.什么是集合集合是一种容器, 长度可变, 可以存储任意类型的对象. 基本数据类型也可以装入集合, 但其实内部是先自动装箱成包装类对象, 然后再存入集合的二.集合的分类1.CollectionList: 可重复, 有存储顺序,有索引 ArrayList 底层数据结构是数组, 增删慢, 查找快,线程不安全,效率高。 LinkedList 底层数据结构是链表,...
2019-04-22 21:38:30
229
原创 java基础七---线程2 生产者和消费者方式二
第一步:创建实体对象/** * 商品实体类 */public class GoodsEntity { private String name; public String getName() { return name; } public void setName(String name) { this.name = n...
2019-04-12 22:22:16
204
原创 java基础七---线程2 生产者和消费者方式一
第一步:先创建商品GoodsEntity实体对象/** * 商品实体类 */public class GoodsEntity { private String name; public String getName() { return name; } public void setName(String name) { ...
2019-04-12 21:56:59
195
转载 VirtualBox主机与虚拟机文件夹共享
https://zycao.com/virtualbox-ubuntu-vboxsguestadditions.html自由草»Virtualbox中的Ubuntu虚拟机,安装增强功能时Could not mount the media/drive '...virtualBox5.2/VBoxGuestAdditions.iso' (VERR_PDM_MEDIA_LOCKED).今...
2019-04-02 20:26:51
336
转载 java 基础七---线程1
一、开启新线程 1.继承Thread定义类继承Thread 重写run方法 把新线程要做的事写在run方法中 创建线程对象 开启新线程, 内部会自动执行run方法public class Demo2_Thread { /** * @param args */ public static void main(String[] ...
2019-03-27 20:01:08
196
转载 java 基础六---异常处理
一、异常的体系Throwable 其实应该分三种 RuntimeException RuntimeException 和其所有的子类,都不会在编译的时候报异常,而是在运行时报异常,这时候我们就需要回头看看我们的代码是否有问题,比如角标越界,空指针等 Exception 除了 RuntimeException 和其所有子类,其他所有的异常类都是在编译的时候必须要处理的,要么t...
2019-03-27 19:58:31
436
转载 java 基础五---抽象类和接口
1:抽象类(abstract)(1)只抽取了很多类的方法的声明,为了保证不出问题,方法声明用abstract修饰。(2)抽象类的特点 A:一个类如果有了抽象方法,那么这个类必须是抽象类。抽象类里边可以没有抽象方法。 B:抽象类是不能够被实例化的。不能够创建对象的。 C:如果一个类继承抽象类,那么,它要么重写抽象类中的所有抽象方法,要么本身也是抽象类。(3)抽象...
2019-03-23 14:37:36
213
原创 java 基础---关键字
一、访问修饰符(1)public: 用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问;(2)protected: 用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问(3)default: 如果一个类、类属变量及方法没有用任何修饰符,则其访问权限为default(默认访问权限)。 ...
2019-03-23 09:43:55
227
原创 java 基础四---继承
一、继承的关键字:extends二、继承的定义:继承就是子类继承父类中的非私用的行为和属性。三、继承的特点:1、java只支持单继承。 2、子类可以直接访问父类中的非私有的属性和行为。 3、子类可以覆盖父类的属性和行为。四、继承的优点:1、提高了代码的复用性。五、继承的缺点:1、增强了代码的...
2019-03-23 09:14:18
514
原创 java 基础三---数据类型转换
一、 byte[] 和 char[] 相互转换1.byte[] 转 chaar[]public static char[] bytesTochars(byte[] c,int size) { if(c==null || c.length==0) return null; char[] b=new char[...
2019-03-23 09:12:49
298
原创 排序算法1
一 、快速排序:快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。* 快速排序之左右指针* 选择最左端的为基准值(pivot)* 从右向左遍历,移动hi指针,找到...
2019-02-20 10:51:45
159
转载 java 基礎---堆栈
转载:https://www.2cto.com/kf/201302/190704.html简单的说: Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即...
2019-01-16 22:32:50
188
转载 java 基礎一---運算符
1. 算術運算符:除号:整数在使用除号操作时,得到的结果仍为整数(小数部分忽略)。取模:模数(%右边的数)的符号忽略不计,结果的正负取决于被模数(%左边的数)。自增:符号在前就是先运算后取值,符号在后则是先取值后运算。 a . 放在操作数前面,则先自加或自减,再参与运算; b. 放在操作数后面,则先参与运算,再自加或自减。 c. 示...
2019-01-05 17:39:00
299
1
原创 java 基礎二---進制轉換
<一> 二進制和十進制的相互轉換十進制轉二進制方法一:十進制除二得到餘數,商繼續除2,直到商為0。將餘數從下網上排列得到的就是二進制數.比如: 19 轉二進制為:10011(將餘數從下網上排列),二進制的高位在左,低位在右。十進制轉二進制方法二:二進制的八位分別對應十進制的數如下:256 128 64 32 16...
2019-01-03 21:47:02
782
转载 Beyond Compare 30天评估期已过解决方案
https://www.cnblogs.com/Lxk0825/p/9669037.html解决方法:1.修改文件 修改C:\Program Files\Beyond Compare 4\BCUnrar.dll ,这个文件重命名或者直接删除,则会新增30天试用期,再次打开提示还有28天试用期。2.修改注册表 ①在搜索栏中输入 regedit,打开注册表 ②...
2018-12-20 19:46:54
2332
1
原创 class的jar 和 dex的jar互相转换
jar文件转dex:1. cmd进入到android sdk build-tools目录下面随便找个文件比如:19.1.0,将要转换的old.jar拷贝到当前目录下,2. 执行命令:dx --dex --output=new.jar old.jarold.jar是class文件的jar包 ,new.jar是dx工具产生的dex二进制jar包!dex转jar:1.下载转换工...
2018-12-20 19:41:35
4497
1
转载 Android 存储路径相关知识小结
https://blog.youkuaiyun.com/liujigangisgood/article/details/40044709
2018-10-11 11:07:38
168
转载 Android Studio导入整个Android系统源码
本文章转自https://blog.youkuaiyun.com/QQxiaoqiang1573/article/details/72903237】https://www.jianshu.com/p/abd8d7a074fd简介偶然发现一个神器idegen,通过它我们可以用Android Studio阅读整个系统源码,非常方便。话不多说直接来看怎么使用idegen,导入系统源码到Android S...
2018-09-03 15:15:53
395
原创 设计模式---适配器模式(对象结构型模式)
定义:将一个类的接口,转换成客户期望的另外一个接口。适配器让两个原本不兼容的接口可以合作无间。优点:可以让任何两个没有关联的类一起运行 提高了类的复用,想使用现有的类,而此类的接口标准又不符合现有系统的需要。通过适配器模式就可以让这些功能得到更好的复用。 增加了类的透明度,客户端只关注结果 使用适配器的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。 ...
2018-08-06 20:11:40
298
原创 设计模式-观察者模式
定义:在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。角色:主题接口:抽象主题提供一个接口,可以 增加和删除观察者角色。 具体主题:它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。在集体主题的内部状态改变时,所有登记过的观察者发出通知。 观察者接口:为所有的具体观察者定义一个接口,在得到主题通知时更新自己。 ...
2018-08-06 19:52:49
201
原创 设计模式----工厂模式(简单工厂)
一、简单工厂定义:简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。特点:工厂类直接实现,一个产品接口,一个工厂类可以产生多种产品 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建...
2018-08-04 16:28:46
248
原创 jni学习3--java调用jni函数示例
对第三个参数 jboolean *isCopy说明如下: 当从JNI函数GetStringUTFChars函数中返回得到字符串B时,如果B是原始字符串java.lang.String的一份拷贝, 则isCopy 被赋值为JNI_TRUE。如果B是和原始字符串指向的是JVM中的同一份数据,则isCopy 被赋值为JNI_FALSE。 当isCopy 为...
2018-03-23 09:51:32
612
原创 Jni学习2--基础数据类型
第一部分: 基础数据类型对比Java数据类型C语言数据类型C对应javaJin数据类型Jni对应Cint 4byte 32位int 4byte 32位一致 Jin 32位Int 32位short 2byte 16位short 2byte 16位一致 Jshort 16位Short 16位char 2byte 16位char 1byte 8位 short Jchar 16位unsigned sho...
2018-03-22 15:58:38
353
原创 Jni学习1--静态注册和动态注册
1.jni 静态注册第一步:新建java类: System.loadLibrary后面会讲到第二步:通过javah 命令生成.h文件 (固定命令) (包名)C:\MyNDKTest\mylibrary\build\intermediates\classes\release>javah...
2018-03-19 17:17:49
329
转载 Android 混淆编译1
http://www.360doc.com/content/16/0930/09/26794451_594811550.shtmlAndroid混淆那些事,看这篇就够了简介作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被反编译,也难以阅读。混淆概念虽然容易,但很多初学者也只是网上搜一些成型的混淆规则粘贴进自己项目,并没有对混淆有个深...
2018-03-13 20:04:14
240
原创 NDK-创建工程
如果创建的是 application工程,则编译之后无法生成.jar \ .aar文件所以需要创建library模块。 第一步创建:在原有的app project 工程里面new Module 选择library 下一步。。finish 第二步:编译libraay工程,生成aar增加两个测试类然后build-> make module‘mylibrary’ 或者使用rebuild...
2018-03-09 20:30:07
576
原创 NDK 调试错误
1.CMake Error: CMake can not determine linker language for target: 可能是CMakeLists.txt-->add_library(.............)里面的cpp文件路径找不到。2.no static or non-static method检查JNINativeMethod method_table[] 定义的函数...
2018-03-09 10:21:15
1850
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人