学习日志
文章平均质量分 73
zhyue28
这个作者很懒,什么都没留下…
展开
-
Android存储路径解析
本文讲的是Android存储路径,当需要存储文件或者清除缓存时可以看一下,下面是原文链接,复制一份以防意外彻底搞懂Android文件存储—内部存储,外部存储以及各种存储路径解惑前言:对于任何一个应用来说,无论是PC端应用还是Android应用,存储肯定是必不可少的。对于很多做Android开发的同学来说,可能认为文件存储很简单,调用一些诸如getFilesDir,getExternalSto...转载 2019-11-19 09:46:36 · 496 阅读 · 0 评论 -
android之清理缓存实现
android之清理缓存实现一. 清理缓存首先要搞清楚清理哪些东西,app本身的功能比如录像,录音,更新都会产生文件,需要清理app的默认缓存地址cache二. 搞清楚要清理的文件夹位置首先app自身的功能就要看自己把它放在了什么位置默认缓存地址:getActivity().getExternalCacheDir();这个位置是在storage/emulated/0/Andro...原创 2019-11-18 15:47:38 · 721 阅读 · 0 评论 -
Retrofit和rxjava请求图片
Retrofit和rxjava请求图片有这么一个接口,返回的是一张图片,图片传输的时候其实是字节数组的形式,这里就不能用json来解析了,用到rxjava的一个功能.先定义接口,要注意get请求,下载图片配合@Streaming使用/** * 获取二维码 * @return */ @Headers("Content-Type:image/png; c...原创 2019-11-13 16:01:58 · 701 阅读 · 1 评论 -
android网络请求
工具包配置:OKHttp,Retrofit,gson用到上面这几个工具包,Okhttp是发送网络请求的,Retrofit是基于okhttp,使用更方便,gson是用来解析json请求数据。要先配置: implementation("com.squareup.okhttp3:okhttp:4.1.0") implementation group: 'com.google.code...原创 2019-10-20 11:32:19 · 365 阅读 · 0 评论 -
JAVA变量和数据类型
变量变量: 存数的,代词,指代的就是它所存的那个数声明:int a; //声明一个整型的变量,名为aint b,c,d; //声明三个整型的变量,名为b,c,d命名:只能包含字母、数字、_和$符,并且不能以数字开头严格区分大小写不能使用关键字可以中文命名,但不建议建议"英文的见名知意"、“驼峰命名法”初始化:第一次赋值使用:变量的使用必须与数据类型匹...原创 2019-02-27 21:54:18 · 220 阅读 · 1 评论 -
JAVA运算符
算术运算符:+,-,*,/,%,++,–%: 取模/取余,余数为0即为整除++/- -:自增1/自减1,可在变量前也可在变量后单独使用时,在前在后都一样 ``` a++; ++a; ```被使用时,在前在后不一样a++的值为a----(a–的值为a)++a的值为a+1–(--a的值为a-1)int b = a++; //b的值为aint c = ++a; //c的...原创 2019-02-28 23:10:42 · 118 阅读 · 2 评论 -
数组
在数组之前了解下数据结构,所谓数据结构就是将数据按照某种特定的结构来保存.设计良好的/合理的数据结构会导致好的算法.数组:1. 相同数据类型元素的集合2. 是一种数据类型(引用类型)3. 数组的定义:int[] arr = new int[10];4. 数组的初始化: 三种方式int[] arr = new int[4]; //0,0,0,0注意,当数组以这种方式声明时,虽...原创 2019-03-04 22:22:38 · 127 阅读 · 0 评论 -
CSS选择器
选择器通配符欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入通配符适用于整个页...原创 2019-02-25 20:29:02 · 134 阅读 · 0 评论 -
JAVA分支结构
分支结构分支结构有两类:if和switchifif(){}if(){} else{}if…else 的嵌套if(){}else if(){}…switchswitch相比if有效率高,结构更清晰的优点,但是有它特有的要求:对具体的值做判断,值的类型可以为:byte,short,int,char,String(1.7版本之后)值的个数三固定的。当满足这两个条件是,...原创 2019-03-01 22:09:36 · 236 阅读 · 1 评论 -
JAVA循环结构
循环:反复执行一段相同或相似的代码.有while和for两种语句循环的三要素:循环变量的初始化循环的条件(以循环变量为基础)循环变量的改变(向着循环的结束变)循环变量: 在整个循环过程中反复改变的数while和do-while语句:while(){}///////////do{}while();//注意后面有分号while结构:先判断后执行,有可能一次都不执行d...原创 2019-03-01 22:31:36 · 209 阅读 · 1 评论 -
JAVA方法/函数
方法(函数)封装一段特定的业务逻辑功能尽可能独立,一个方法只干一件事方法可以被反复调用多次减少代码的重复,有利于代码的维护,有利于团队的协作方法的定义:修饰词 返回值类型 方法名(参数列表){ 方法体}方法的调用:无返回值: 方法名(有参传参);有返回值: 数据类型 变量 = 方法名(有参传参);return:return 值;1.结束方法的执行2.返回...原创 2019-03-05 20:01:57 · 151 阅读 · 0 评论 -
JAVA基础概述
java开发环境java编译运行过程java编译运行过程编译期: .java文件经过编译,生成.class字节码文件运行期: JVM加载.class并运行.class名词解释JVM:java虚拟机加载并运行.class文件JRM:java运行环境包含JVM和运行java所必需的环境(java系统类库)JDK:java开发工具包包含JRM和开发java所必须的命令...原创 2019-02-26 20:22:54 · 213 阅读 · 1 评论 -
方法的重载和构造方法
方法的签名:方法名+参数列表合起来叫做方法的签名方法/函数的重载(overload):发生在同一个类中,方法名相同,参数列表不同,方法体不同编译器在编译时会根据方法的签名自动绑定调用的方法主要是方便调用该方法例void sayHi(){}void sayHi(int a){}void sayHi(String name,int a){}////////////调用时根据传进...原创 2019-03-08 19:35:01 · 323 阅读 · 1 评论 -
排序算法练习
排序算法:把乱序的数组按照一定的顺序排列.排序算法有很多,这里练习的是选择排序法和冒泡排序法.int[] a= {1,5,9,3,6,2};以上面这个数组为例,数组长度为6,元素分别为a[0]-a[5]选择排序法选择排序法 是对 定位比较交换法(也就是冒泡排序法) 的一种改进。选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个...原创 2019-03-03 19:43:37 · 641 阅读 · 0 评论 -
小项目-猜字符游戏
项目要求:系统自动生成5个不重复字母,用户来猜,若猜对了给出提示和分数,若没猜对,则说明猜对的字符数以及有多少个字符的位置是正确的。用户想结束游戏输入EXIT即可。以这个项目为例学习开发一个项目的步骤分析需求,设计数据结构:变量char[] chs; //随机字符数组char[] input; //用户输入的字符数组int[] result; //对比的结果int score;...原创 2019-03-06 19:31:55 · 567 阅读 · 0 评论 -
常量和抽象方法、抽象类
static final常量:必须声明同时初始化class A{ public static final PI = 3.14;}类名点来访问,不能被改变int x = A.PI;命名规则:常量名所有字母都大写,多个单词之间用_分隔好处:编译器在编译时将常量直接替换为具体的值,效率高使用场景:数据永远不变、并且经常使用时设置为常量,方便以后做改动。抽象方法和抽象类:抽象...原创 2019-03-14 19:19:51 · 870 阅读 · 0 评论 -
JAVA对象和类
对象和类简单理解:真实存在的单个的个体都可以称作对象,某些相似的对象可以归为一类,把他们共同的特点和行为抽出来,就是一个类。在java中:对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行为和状态。类中可以包含:对象所共有的属性/特征---------...原创 2019-03-07 20:25:22 · 110 阅读 · 1 评论 -
打飞机小游戏
射击游戏需求:所参与的角色:英雄机、子弹、小敌机、大敌机、小蜜蜂、天空对象间的关系:英雄机可以发射子弹(单倍火力(0)、双倍火力(>0))子弹可以射击敌人(小敌机、大敌机、小蜜蜂)打掉小敌机,玩家得1分打掉大敌机,玩家得3分打掉小蜜蜂,英雄机得奖励(1条命、40火力值)发射一次双倍火力,则火力值减2英雄机、子弹、小敌机、大敌机、小蜜蜂都在天空上飞敌人撞到英雄...原创 2019-03-07 20:35:54 · 259619 阅读 · 1 评论 -
接口
接口:是一种数据类型(引用类型),类似于class语法:interface InterName只能包含常量和抽象方法interface Inter1{ public static final double PI = 3.14;//只能定义常量 double PI = 3.14;//这句和上句一样的效果,在接口里默认有public static final public abstr...原创 2019-03-19 19:17:29 · 139 阅读 · 0 评论 -
二进制和位运算
2进制什么2进制?计算机为什么使用2进制逢2进1的计数规则电子设备设计成处理2进制,其成本最优。计算机如何解决人类和计算机直接的机制矛盾所有编程语言都是一种人和计算机之间的翻译工具,人的数组语言翻译成二进制给计算机读取,然后把计算机的二进制数据翻译成人类的语言呈现出来。16进制16进制用于缩写(简写)2进制,将2进制从后向前 每4位数转换为1位16进制。补码补码: 将固定位数的...原创 2019-03-15 20:03:26 · 6953 阅读 · 1 评论 -
引用类型数组
什么叫引用类型数组?基本类型数组的元素中放的都是基本数据类型(int等)。引用类型数组的元素中放的是从基本类型构造而来的类和其他复杂数据类型的地址。两种类型数组的图解基本类型数组:arr是引用,放在栈内存中,new的部分属于对象,在堆内存中。arr里存的是对象的地址。引用类型数组:第一句话:stus是引用类型数组的变量(简称引用),存在栈内存,里面放的是对象实体的地址,new ...原创 2019-03-11 19:48:26 · 5292 阅读 · 5 评论 -
继承
作用:代码复用通过extends来实现继承class A{}class B extends A{}超类(父类):内部属性和行为是所有派生类所共有的。派生类(子类):派生类所特有的属性和行为派生类继承超类后,派生类具有:超类的+派生类的属性和行为一个超类可以具有多个派生类一个派生类只能有一个超类---------单一继承具有传递性(父传子,子传孙)su...原创 2019-03-11 20:17:01 · 90 阅读 · 1 评论 -
多态
多态:意义:同一类型的引用,在指向不同的对象时,有不同的实现----行为的多态:cut()、run()、step()、getImage()…同一个对象,被造型为不同的类型时,有不同的功能----对象的多态:我、水…向上造型/自动类型转换:超类型的引用指向派生类的对象能造型成为的类型有: 超类+所实现的接口能点出来什么,看引用的类型强制类型转换,成功的条件只有如下两种:...原创 2019-03-20 20:52:03 · 116 阅读 · 0 评论 -
向上造型和方法的重写
向上造型:class A{}class B extends A{}A a = new B();//向上造型超类型的引用(A a)指向派生类的对象(new B)就是向上造型引用(a)能点出来什么,看引用的类型(B)方法的重写(Override):重新写、覆盖发生在父子类中,方法名称相同,参数列表相同,方法体不同重写方法被调用时,看对象的类型重写要遵循"两同两小一大"原则:-...原创 2019-03-12 20:12:55 · 561 阅读 · 1 评论 -
面向对象的三大特征
面向对象三大特征:1.封装:类:类中封装的是对象的属性和行为方法:方法中封装的是特定的业务逻辑功能实现访问控制修饰符:封装的是具体的访问权限2.继承:作用:代码复用超类:所有派生类所共有的属性和行为接口:部分派生类所共有的行为派生类:派生类所特有的属性和行为特点:单一继承、多接口实现,传递性3.多态:意义:行为的多态(所有抽象方法都是多态的)对象的多态(所有...原创 2019-03-21 19:15:09 · 95 阅读 · 0 评论 -
内存管理图解
内存管理:由JVM管理,JVM会把内存分成5部分:寄存器、外部方法区、方法区、堆、栈,这里主要看后三种堆:堆中存储的是new出来的对象(包括实例变量)垃圾:垃圾就是指没有任何引用所指向的对象垃圾回收器(GC) 会不定时到内存中清扫垃圾,回收过程是透明的(看不到的),不一定一发现垃圾就立刻回收,调用System.gc()可以建议虚拟机尽快调度GC来回收内存泄漏:不再使用的内存没有...原创 2019-03-21 20:36:20 · 654 阅读 · 1 评论 -
成员内部类和匿名内部类
成员内部类:定义: 一个类可以定义在另一个类的内部,定义在类内部的类称之为Inner(内部类),其所在的类称之为Outer(外部类)内部类通常只服务于外部类,对外不具备可见性内部类对象通常是在外部类中创建的内部类中可以直接访问外部类的成员(包括私有的)这是因为内部类中有个隐式的引用指向了创建它的外部类对象eg: 外部类名.this.class Aoo{//Oute...原创 2019-03-18 19:36:46 · 226 阅读 · 0 评论 -
反射
包的概念package语句定义类时需要指定类的名称,包是用来解决命名冲突问题的,package语句必须写在java源文件的开头,语法为:package 包名,包名一般都用小写;如package test;包名也可以有层次结构,在一个包中可以包含另一个包,语法为:package 包名1.包名2…包名n;公司或组织对包的命名要按照一定规范:域名反写 . 项目名称 . 模块名称...原创 2019-03-13 20:20:25 · 95 阅读 · 0 评论 -
JAVA核心API
JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口)就是一些写好的、可供直接调用的功能。JDK API包含的类库功能强大,经常使用的有:字符串操作、集合操作、文件操作、输入输出操作、网络操作、多线程等等。经常使用的包有:...原创 2019-03-25 20:02:54 · 313 阅读 · 1 评论 -
String及其常用API
String是不可变对象String属于java.lang包,定义时使用了final修饰,对象不可改变,不可被继承字符串的引用可以重新赋值字符串地城封装了字符数组及针对字符数组的操作算法java字符串中任何一个字符(无论中文还是英文)对应16位(两个字节)的定长Unicode编码。例子:String常量池java为了提高性能,静态字符串(字面量、常量、常量连接的结果)在常量池...原创 2019-03-25 20:48:16 · 3353 阅读 · 1 评论 -
RandomAccessFile
RandomAccessFile(java.io.RandomAccessFile)java提供了一个可以对文件随机访问的操作,访问包括读和写操作,类名为RandomAccessFile.该类的读写是基于指针的操作。RandomAccessFile(File file,String mode)RandomAccessFile(String filename,String mode)其中构...原创 2019-03-30 11:40:54 · 683 阅读 · 0 评论 -
正则表达式
正则表达式:正则表达式是一串特定字符,组成一个“规则字符串”,这个“规则字符串”是描述文本规则的工具。正则表达式就是记录文本规则的代码。一些特定语法:注意:\d,\s,\w这些在代码中需要用转义字符:如\d.使用时需要两个反斜杠,因为.表示.但是.在java中也是特殊字符,所以要写成\.X{n,m}表示X的个数从n到m,包含n和m在内注意正则表达式中()和[]作用不同,小括号表...原创 2019-03-26 19:19:13 · 195 阅读 · 1 评论 -
线程和进程
线程和进程进程进程是操作系统中运行的一个任务(一个应用程序运行在一个进程中)进程(process)是一块包含了某些资源的内存区域。操作系统利用进程把它的工作划分为一些功能单元。进程中所包含的一个或多个执行单元称为线程(thread)。进程还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问。线程只能归属于一个进程并且它只能访问该进程所拥有的资源。当操作系统创建一个进程后,该进程...原创 2019-04-04 17:30:22 · 146 阅读 · 0 评论 -
Object和包装类
Object在java类继承结构中,java.lang.Object类位于顶端Object是java提供的一个类,任何类型如果没有副类型,则默认继承Object,所以可以说 任何类都继承ObjectObject类型的引用变量可以指向任何类型对象。Object中封装了许多可以共用的API,比如toString,equals 等toStringObject类中的重要方法,用于返回对象...原创 2019-03-27 20:33:13 · 152 阅读 · 1 评论 -
List
Listjava.util.List 线性表List是Collection常用的子接口,是一个可重复集合并且有序。其单独提供了一套可以通过下标操作元素的方法常用实现类:java.util.ArrayList: 使用数组实现,查询效率号,增删元素慢java.util.LinkedList: 使用链表实现,增删元素效率好(首尾增删元素最快),查询效率慢。在对性能没有特别苛刻的要求时...原创 2019-04-10 19:01:03 · 113 阅读 · 0 评论 -
IO流
IO流java IO 标准的输入和输出什么是输入:输入是一个从外界进入到程序的过程,是用来读取数据的什么是输出:输出是一个从程序发送到外界的过程,是用来写出数据的什么是流:java以统一的标准的读写形式定义了一套API,成为“流”。使用流可以读取任意设备(网络,文件,键盘,控制台等等)java将流按照功能以方向的形式分为两类:输入流:input,是外界到我们写的程序的方向,使用输...原创 2019-04-01 19:28:21 · 357 阅读 · 0 评论 -
FileAPI
File文件就是持久保持数据的存储单元,任何数据如果需要持久保存,就需要存储到文件中java.io.File 用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。File API的方法可以实现:创建文件/文件夹,查看文件的属性,删除文件/文件夹,文件/文件夹改名等关于路径的表示,可以用“/” “\”或是Files.separatorFile内的方法...原创 2019-03-28 19:21:56 · 599 阅读 · 1 评论 -
HTTP协议
HTTP协议:超文本传输协议浏览器与服务端之间传输数据的协议,底层的传输协议为TCP。HTTP则为应用层协议,负责定义传输数据的格式。简而言之TCP负责传输,HTTP负责格式HTTP协议分为1.0与1.1两个版本。现在常用为1.1版本。协议规定客户端与服务端通讯方式为:一次请求一次响应。即:客户端发起请求,服务端接收到请求后向客户端发送响应。服务端不会主动发送内容给客户端...原创 2019-04-11 19:23:20 · 179 阅读 · 0 评论 -
聊天室小项目
客户端java.net.Socket 套接字Socket封装了TCP连接和通讯的细节,使用它可以通过两条流的读写完成与远端计算机的数据交互实例化Socket时需要传入两个参数:服务端计算机的IP地址服务端应用程序打开的服务端口我们通过IP可以找到网络上的服务端计算机,通过端口连接到该机器上的服务端应用程序实例化Socket的过程就是连接的过程,若服务端没有响应,这里会抛出异常...原创 2019-04-08 17:54:07 · 183 阅读 · 0 评论 -
MAP散列表
mapjava.util.Map 查找表接口Map体现的样子是一个多行两列的表格,其中左列称为key,右列称为value。所以也叫做键值对Map总是根据key来获取对应的value,所以将查询条件作为key,将查找的内容作为value保存,以便后期存取。常用实现类:java.util.HashMap 散列表/哈希表。散列表是当今查询速度最快的数据结构,不受数据量影响查询速度。jav...原创 2019-04-12 20:10:40 · 314 阅读 · 0 评论