自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (1)
  • 收藏
  • 关注

原创 View和ViewGroup的事件分发

一:首先来看下面一段代码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.image); button = findViewById(R.

2020-05-31 23:49:37 369

原创 AndroidStudio中忽略大小写设置

在androidstudio中设置忽略大小写,无论大写还是小写都能提示。一:老版本只需要直接在Code Completion 中设置 Case sensitive completion 为 None即可。 二: 新版本(3.4.1之后),去掉code completion中的match case前面的勾即可...

2020-05-31 10:58:43 1731

原创 AndroidStudio快捷键

Android Studio常用快捷键(最全)1. Ctrl+D: 集合了复制和粘贴两个操作,如果有选中的部分就复制选中的部分,并在选中部分的后面粘贴出来,如果没有选中的部分,就复制光标所在的行,并在此行的下面粘贴出来。2. Ctrl+空格: 输入代码时按此组合键会列出与之相匹配的类、方法名、成员变量等,起智能提示的作用。在编辑XML文件一样有用。3. Ctrl+向下箭头 或Ctrl+向上箭头:在有自动匹配下拉列表时,此快捷键会自动关掉下拉列表,光标移动到下/上一行。4. 自动匹配下拉列表的排

2020-05-31 09:07:49 325

转载 Cursor的关闭问题

    最近在工作中处理了一些内存泄露的问题,在这个过程中我尤其发现了一些基本的问题反而忽略导致内存泄露,比如静态变量,cursor关闭,流关闭,线程,定时器,反注册,bitmap等等,我稍微统计并总结了一下,当然了,这些问题这么说起来比较笼统,接下来我会根据问题,把一些实例代码贴出来,一步一步分析,在具体的场景下,用行之有效的方法,找出泄露的根本原因,并给出解决方案。    现在,就从cursor关闭的问题开始把,谁都知道cursor要关闭,但是往往...

2020-05-27 14:12:57 7041 1

转载 ANR-实战

想必做过Android开发的童鞋都遇到过anr(Application Not Responding)。一般的做法就是去/data/anr/trace.txt取对应的 文件。然后,再从这一堆庞大的堆栈信息找到自己想要的结果。但是拿到一堆arn堆栈信息很抓狂,如何从这庞大的堆栈信息找到自己的问题代码呢?这篇文章,给大家分享下如何取定位anr问题。首先看下堆栈信息07-26 17:51:04.442: E/ActivityManager(2258): ANR in com.pafinancialtech.z

2020-05-26 15:34:42 392

原创 字符串与数组的相互转换

一:chars[]数组与字符串之间的相互转换String strStringType="my string"; //创建一个字符串变量strStringTypechar[] chrCharArray; //创建一个字符数组chrCharArraychrCharArray = strStringType.toCharArray(); //将字符串变量转换为字符数组strStringType= String.valueOf(chrCharArray ); //将字符数组转换为字符串...

2020-05-26 13:26:26 303

原创 递归-练习题

这里主要利用递归解决阶乘、斐波那契数列、汉诺塔、杨辉三角的存取、字符串回文判断、字符串全排列、二分查找、树的深度求解在内的八个经典问题一:阶乘问题,求解n! 思路:n!=n*(n-1)*(n-2)....*1;找到f(n)与f(n-1)之间存在的关系,由于是阶乘,故很容易得出f(n)=n*f(n-1); 找到递归结束的条件,很明显这里当n==1时f(1)=1;是递归结束的条件;public static int factorial(int n){ //当n==1...

2020-05-25 08:21:34 1310

原创 递归-简介

一:递归与循环的区别,举例说明 递归:你打开面前这扇门,看到屋里面还有一扇门。你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它。若干次之后,你打开面前的门后,发现只有一间屋子,没有门了。然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门。 递归也有点类似你在百度上面查一个词的解释,发现解释里面又有另外一个新的名词你不知道,于是又开始查这个新的名词,新的名字里面又有你不知道的新名词,...

2020-05-23 19:48:47 5061

转载 排序-java十大排序

最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,经本人调试无误后才发出,如有错误,请各位前辈指出。0、排序算法说明0.1 排序的定义对一序列对象根据某个关键字进行排序。0....

2020-05-21 22:22:29 156

转载 排序-插入排序

一、基本思想通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入。插入排序非常类似于整扑克牌。在开始摸牌时,左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的牌从右到左地进行比较。无论什么时候,左手中的牌都是排好序的。如果输入数组已经是排好序的话,插入排序出现最佳情况,其运行时间是输入规模的一个线性函数。如果输入数组是逆序排列的,将出现最坏情况。平均情况与最坏情况一样,...

2020-05-21 21:48:56 106

转载 算法的时间复杂度和空间复杂度(转载)

算法的时间复杂度和空间复杂度一、算法效率的度量方法1.事后统计方法这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。2.事前分析估算方法在计算机程序编写前,依据统计方法对算法进行估算。经过总结,我们发现一个高级语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:算法采用的策略,方案编译产生的代码质量问题的输入规模机器执行指令的速度由此可见,抛开这些与计算机硬件、软件有关的因素,一个程序的运行时间依赖于算

2020-05-21 14:43:02 940

转载 (转载)java快速排序原理

高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数...

2020-05-21 11:25:30 184

原创 排序-快速排序

一:原理 以一个数为基准,我们叫它base数,将数组中的元素以base为参考,大于base的放在base的右边,小于base的放在base的左边,这样就可以找到base在数组中正确的位置。二:代码分析 public static void fastSelcet(int[] arry,int low,int high){ //由于low和high会参与后面的计算,值会发生变化,而我们后面递归的时候需要用到初始的low和high值,故这里先赋值记下...

2020-05-21 11:22:48 90

转载 位运算符

(&和|运算时候1当成true,0当做false)一:&//与运算 &  规则 :都为1时才为1        System.out.println( 7 & 9);   &...

2020-05-20 14:27:28 169

转载 原码,反码和补码

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3...

2020-05-20 13:48:54 137

转载 AndroidStudio中导入源码

准备工作:修改Android Studio(以下简称AS)的内存配置 因为在导入源码时需要消耗大量内存,所以先修改IDEA_HOME/bin/studio64.vmoptions(x86的机器修改studio.vmoptions)中-Xms和-Xmx的...

2020-05-20 10:15:02 1069

原创 基本数据类型-Integer.parseInt(String s)

一:如何不用Integer.parseInt(string)方法将字符串"-123"变成int整型123; 我们来看下Integer.parseInt的源码 public static int parseInt(String var0) throws NumberFormatException { return parseInt(var0, 10); }public static int parseInt(String var0, int v...

2020-05-20 00:05:27 1535

转载 Java中子类对父类私有方法覆盖的问题

最近在学习到Java的继承和多态时遇到了这样的一个问题:关于继承链中子类对父类的私有方法是否可以覆盖的问题,在此记录一下自己对这个问题解决以后的一些心得。首先要明确:子类是不能够覆盖(重写)父类的私有方法的。比较直观的理由是,子类要能够重写父类的方法的前提条件是继承,子类对父类的私有方法并不继承,也没有访问权限,自然也是不能重写的。接下来看一个例子:public class Test { public static void main(String[] args) { new A().printP.

2020-05-18 11:10:47 1370

转载 java基本数据类型

Java 基本数据类型 及 == 与 equals 方法的区别 </h1> <div class="clear"></div> <div class="postBody">    Java数据类型分为基本数据类型与引用数据类型。    1 基本数据类型byte:Java中最小的数据类型,在内存中占1个字节(8 bit),取值范围-128~127,默认值0short:短整型,2个字节

2020-05-18 10:47:25 134

原创 equals与==的区别

一、对象类型不同1、equals():是超类Object中的方法。2、==:是操作符。二、比较的对象不同1、equals():equals是Object中的方法,在Object中equals方法实际"ruturn (this==obj)",用到的还是"==",说明如果对象不重写equals方法,实际该对象的equals和"=="作用是一样的,都是比较的地址值(因为"=="比较的就是地址值),但是大部分类都会重写父类的equals方法,用来检测两个对象是否相等,即两个对象的内容是否相等,例如S

2020-05-18 10:41:18 26138 4

原创 集合-TreeSet

一:简介 TreeSet是Set集合的子类,可以对集合中的元素进行排序,如果如果在TreeSet中存入字符串,那么输出时,字符串元素是安排自然顺序进行排序的。 TreeSet可以对元素进行排序,故要么存入的元素具备比较性(如String,那是因为String实现了Comparable接口),要么在创建TreeSet时给它一个比较器二:需求 在TreeSet中存入Student对象,希望安排年龄进行排序,那么Student对象必须要实现Compara...

2020-05-18 09:44:17 270

原创 集合-HastSet

一:简介 HashSet是Set集合的子类,可以实例化,不能存相同的元素,底层是哈希表结构 HashSet中的元素是无序的(存入和取出顺序不同),原因是HastSet中的元素是按照哈希值来存储的,每一个元素都有一个哈希值(底层算法算的哈希值,元素调用hashcode即可获取到哈希值),按照哈希值的大小来排序,故存入和取出的顺序是不同的,当两个元素的哈希值相同时,HashSet再去判断两个元素是否是同一个元素,这里调用的是元素的equals方法,如果相同则存不进去,如果不同则在此元素的...

2020-05-18 00:42:18 208

原创 集合-ArrayList练习

一:去掉ArrayList中重复的元素 public static ArrayList singalElement(ArrayList list){ //首先创建一个临时容器 ArrayList<String> tempList = new ArrayList<String>(); Iterator<String> iterator = list.iterator(); while(iterato

2020-05-17 23:47:54 182

原创 IO流-FileWirter的使用

看如下代码package com.thundersoft.myjava;import java.io.File;import java.io.FileWriter;import java.io.IOException;public class MyClass { public static void main(String[] args) { FileWriter fw = null; FileWriter ff = null; ch

2020-05-17 17:06:00 176

原创 IO流-简介

一:概念IO流:input和output的简称,用来处理设备之间数据的传输。java对数据的操作是通过流的方式Java用于操作流的对象都在IO包中流按照操作数据分为两种:字符流和字节流流按流向分为:输入流和输出流二:字符流的由来ascii 由于计算机只能识别二进制数据 ,故早期的流都是二进制的,像媒体文件等所有的文件都是可以通过字节流来处理的,后来人们将文本类的文件单独分离出来,这些文本文件经常使用,就弄了个字符流,以美国为例,将abcd等26个字母和一些其他...

2020-05-16 23:49:05 143

转载 make update-api

关于make update-api命令何时需要执行make update-api命令添加系统API或者修改@hide的API后,需要执行 make update-api,然后再make修改公共api后,需要 make update...

2020-05-16 12:58:04 619

原创 ubuntu下编译源码报错

一:编译报错 make build update-api failed  解决办法:在代码根目录下执行如下命令source build/envsetup.sh make update-api 执行全编命令 执行make update-api的原因1.make update-api #如果你在Android源码中添加了自定义的包、类、方法或者你修改了Android源码中标识为@hide的方法、类,你需要这些内容对 Application可见并且需要编译进SDK的Document中的话,这个命

2020-05-16 12:56:15 1147

原创 字符串String是一个特殊的对象

1:字符串是一个特殊的对象java中所有字符串文字都被视为String类的一个实例对象,例如"abc"就代表一个实例对象,当我们定义一个字符串String s="abc"时,其实是单独开辟了一个空间,叫做字符串常量池,将此字符串对象存在了常量池。2:字符串一旦被初始化就不可以被改变String str = "abc"; 对于这么一个实例对象,str是类类型变量,是一个指针,而“abc”作为一个对象已经在内存中开辟了空间,叫做常量池,如果此时str ="gkl";那么"gkl"作为一个对象实例,内.

2020-05-15 10:12:55 770

转载 AndroidStudio中快速生成log的TAG快捷键

转载自:https://blog.csdn.net/qq_28193019/article/details/91050915 ...

2020-05-13 15:56:17 1629

转载 ubuntu下AndroidStudio中try ,catch快捷键问题

1、windows系统下,只需选中需包含的代码块,按快捷键Ctry+Alt+T即可;2、Ubuntu下由于快捷键已经被占用,故需要自行重新设定,设定过程如下:点击file--->setting--->keymap在右侧搜索栏中搜索surround,选中Surround With...,先点击右键,选择Remove Ctrl+Alt+T,然后再设置可行的快捷键即可。 原文链接:http://blog.csdn.net/kooktao

2020-05-13 11:20:08 302

原创 面试错题总结

一:输出语句中字符串的拼接问题 如下程序运行后输出为public class MyJava { public static void main(String[] args){ char m = 'a'; int n = 2; System.out.println(m+n+"java"); //输出"99java" System.out.println("java"+m+n); ...

2020-05-12 11:47:51 122

转载 ubuntu中AndroidStudio创建快捷方式

创建、编辑Studio.desktop文件1.1 在根目录下执行以下命令:通过sudo gedit /usr/share/applications/Studio.desktop的话1.2 输入以下内容:[javascript] view plain copy[Desktop Entry]  Name = Studio  comment= android studio &nbsp.

2020-05-12 10:49:45 938

转载 java基础知识点

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~本套Java面试题大全,全的不能再全,哈哈~一、Java 基础1. JDK 和 JRE 有什么区别?JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运...

2020-05-08 17:33:28 235

原创 面向对象之继承

java虽然不支持多继承,但是支持多实现(interface)和多层继承(A继承B,B继承C)子类方法覆盖父类方法必须保证子类方法权限大于等于父类方法权限子父构造函数1:是否能继承子类不能继承父类的构造函数,不存在这个概念2:是否能覆盖父类的构造函数不存在覆盖,覆盖要求函数名和返回值一致,只存在参数的不同,而子父的构造函数名都不一样,所以不存在覆...

2020-05-08 16:29:49 105

原创 CSND上转载别人的文章,看懂这一篇就够了

以https://blog.csdn.net/qq_32521381/article/details/105944973为例;第一步:首先在网页上右键选择"检查"(也可以直接按F12),如下图(这里以Chrom浏览器为例):点击“检查”之后就会出现如下见面:第二步:快速找到文章内容所对应的div模块 我们在Elements界面按“Ctr...

2020-05-07 17:57:18 173

原创 java关键字

this关键字this代表它所在函数所属对象的引用;哪个对象在调用this所在的函数,this就代表哪个函数;作用:解决成员变量和局部变量同名的问题; 当定义类中功能时,该函数内部需要调用该函数的对象时,这时可以用this来表示这个对象构造函数之间相互调用需要使用this,且必须放在构造函数的第一行;必须放在第一行的原因:先执行其它初始化,再执行自身初始化...

2020-05-07 17:57:03 92

原创 面向对象之多态

1:多态的体现父类引用指向子类对象父类引用可以接收子类对象2:多态的前提类与类之间必须有关系,要么继承要么实现通常还有一个前提:存在覆盖3:多态的好处多态大大提高了程序的扩展性4:多态的弊端提供了扩展性,但是只能使用父类的引用访问父类中的成员5:强制将父类引用转换为子类对象,称为向下转型父类引用接收子类对象,称为向上转型多态至始至终都是子类对象...

2020-05-06 11:25:51 74

原创 接口简介

接口简单介绍 :可以理解为一个特殊的抽象类,即是一个所有方法都是抽象的抽象类, 成员变量固定修饰符: public static final 方法的固定修饰符: public abstract 在接口中 public static final abstract修饰符可以省略,系统会自动加上。一般不推荐省略 接口...

2020-05-06 11:02:31 99

原创 抽象类简介

一:抽象类特点抽象方法一定在抽象类中 抽象方法和抽象类都必须被abstract关键字修饰 抽象类不能创建对象,因为调用抽象方法是没有意义的 抽象类中的抽象方法要被使用,必须有子类继承它并复写所有抽象方法后才能调用,若只覆盖部分抽象方法,则子类还是抽象类注意:抽象类中可以不一定有抽象方法,这样做的作用仅仅是不让该类拥有实例对象。 抽象类的子类不必实现它的所有抽象方...

2020-05-06 10:56:02 114

原创 二维数组

定义:数组里面的套数组,外数组的每一个元素都是一个数组(数组地址)一:动态初始化int[][] arry = new int[3][4];//定义了一个含有三个元素的数组,这三个元素又分别是3个包含4个元素的数组。二:静态初始化int[][] arry= {{2,3,5,6},{4,6,2},{4,7}};或int[][] arry = new int[3][]...

2020-05-06 10:46:40 751

空空如也

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

TA关注的人

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