android语法
学如逆水行舟,不进则退3038
热爱生活,热爱运动
展开
-
char * 和const char *的区别
当指向字符串(常量)时,const char*和char*是没有区别的,但是const char*能更为显示地通过 const 提醒你不能通过指针对常量字符串进行修改,char* 也不能对字符串常量进行修改,但是没有显示的写上const,两者在使用上是一样的。为什么const char*就是针对字符串是用的呢,因为这是一个常量指针,字符串是常量,而且是存储在系统负责管理的常量存储区中的,编译器无权对其进行修改。对传入的参数,不会对指针指向的内容进行修改。char*指针指向的内容是可以改变的,是不固定的。原创 2023-02-27 15:41:35 · 5841 阅读 · 0 评论 -
C语言的access函数的用法
ENOENT:路径名中的目录不存在或是无效的符号连接。ELOOP : 解释路径名过程中存在太多的符号连接。EACCES: 文件或路径名中包含的目录不可访问。ENOTDIR: 路径名中当作目录的组件并非目录。检查调用进程是否可以对指定的文件执行某种操作。F_OK 测试文件是否存在。X_OK 测试执行许可权。EFAULT: 路径名指向可访问的空间外。R_OK 测试读许可权。W_OK 测试写许可权。ENOMEM: 不能获取足够的内核内存。mode:需要测试的操作模式。原创 2023-01-13 16:56:47 · 1404 阅读 · 0 评论 -
C/C++ 字符指针指向字符串的几种方法
字符指针指向字符串的方法由于字符串在内存中连续存储的特点,可以使用指针进行操作,并且指针必须是字符型的。通常将指针指向字符串的首地址,利用指针的后移可以指向后续字符。原创 2023-01-13 11:25:53 · 7290 阅读 · 0 评论 -
new和malloc的区别
/执行完该语句后,p变成了不确定的指针,在很多机器上,尽管p值没有明确定义,但仍然存放了它之前所指对象的地址,然后p所指向的内存已经被释放了,所以p不再有效。当操作系统收到程序的申请时,就会遍历该链表,然后就寻找第一个空间大于所申请空间的堆结点,然后就将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。void* 表示未确定类型的指针。空指针,其实空指针只是一种编程概念,就如一个容器可能有空和非空两种基本状态,而在非空时可能里面存储了一个数值是0,因此空指针是人为认为的指针不提供任何地址讯息。原创 2023-01-09 19:42:33 · 445 阅读 · 0 评论 -
sscanf函数使用详解
函数将返回成功赋值的字段个数;返回值不包括已读取但未赋值的字段个数。返回值为 0 表示没有将任何字段赋值。原创 2022-11-29 16:16:59 · 211 阅读 · 0 评论 -
C/C++ goto语句
【代码】C/C++ goto语句。原创 2022-11-14 10:53:34 · 527 阅读 · 0 评论 -
java判断相等的方法
是我们来看一下String类,它继承了Object类中equals()方法,但却重写了equals()方法,它首先和自己本身作比较,若相等则 返回true,然后在判断它是否属于String类型,若是,则依次比较字符串每个位置上的字符是否相等。首先会判断两个字符串的引用是否相等,也就是说两个字符串引用是否指向同一个对象,是则返回true。直接使用”==”就行了,相等返回true,否则,返回false。原创 2022-11-08 19:55:11 · 4900 阅读 · 0 评论 -
安卓系统属性 ro、persist、net
Framework中系统属性ro、persist、net原创 2022-11-08 19:32:03 · 1544 阅读 · 0 评论 -
linux修改文件/目录所属的用户和组
当然,chown 命令也支持单纯的修改文件或目录的所属组,例如 chown :group install.log 就表示修改 install.log 文件的所属组,但修改所属组通常使用 chgrp 命令,因此并不推荐大家使用 chown 命令。因此,建议大家使用冒号连接所有者和所属组。在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。chown 命令,可以认为是 "change owner" 的缩写,主要用于修改文件(或目录)的所有者,除此之外,这个命令也可以修改文件(或目录)的所属组。原创 2022-11-01 19:41:18 · 10136 阅读 · 0 评论 -
strstr()和strtol()函数的用法
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。原创 2022-10-13 15:07:03 · 435 阅读 · 0 评论 -
Java带返回值的定义和调用
格式:public static 数据类型 方法名(参数){return 数据}数据类型必须和数据是同一类型范例:}原创 2022-09-27 10:51:01 · 865 阅读 · 0 评论 -
java字符串截取
1、通过subString()方法来进行字符串截取(最常用)2、通过StringUtils提供的方法。3、split()+正则表达式来进行截取。原创 2022-09-05 21:55:21 · 807 阅读 · 0 评论 -
java字符串的拼接,常使用到的大概有4种方式
由于String是final类型的,因此String对象都是属于不可变对象,因此,在需要对字符串进行修改操作的时候(比如字符串的连接或者是替换),String总是会生成新的对象。3.使用StringBuilder的append方法。4.使用StringBuffer的append方法。2.使用String的concat方法。1.直接使用"+"号。原创 2022-09-02 14:09:47 · 258 阅读 · 0 评论 -
Handler消息传递机制
(1)Looper:每一个线程只有一个Looper,负责管理MessageQueue,会不断地从MessageQueue中取出消息,并将消息分给对应的Handler处理。(2)MessageQueue:由Looper负责管理。(3)Handler:它能把消息送到Looper管理的MessageQueue,并负责处理Looper分为它的消息。原创 2022-09-01 22:32:46 · 1719 阅读 · 0 评论 -
C++和java和定义和实例化的区别
对于第二种方式则不同,该方式使用了指针,在定义*p时在栈中开辟一个4字节的空间,new Dog()时在堆中开辟一块空间,然后将该空间的首地址赋值给*p,这样,通过*p就可以找到对象在堆中的任何成员方法了。对于第一种方式而言,dog是被存储在栈中的,占用的大小是Dog类中成员变量占用内存的和,此处不包括成员方法,因为成员方法是存放在公共存储区以便所有该类的对象都可以访问的。后会在堆中开辟对象的实际空间,然后将dog指向堆中的空间,这样我们就可以访问对象的成员变量了。中的处理却完全不同。原创 2022-08-19 15:45:24 · 446 阅读 · 0 评论 -
Android.mk中添加宏定义
1、 Android.mk中添加宏定义Android.mk中添加宏定义_一叶飘舟的博客-CSDN博客_android.mk添加宏Android.mk中添加宏定义_mb60ffdbe016b5d的技术博客_51CTO博客2、系统编译中LOCAL_CFLAGS的用法系统编译中LOCAL_CFLAGS的用法_星空梦想plus的博客-CSDN博客33、eg:在Boardconfig.mk中Andorid.mk:使用在android.mk中定义的宏:...原创 2022-04-29 11:41:06 · 2409 阅读 · 0 评论 -
errno来分析定位问题
可以通过strerror(errno)查看错误信息, errno是调试程序的一个重要方法。常见的errno错误码有以下这些:#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EIO 5 /* I/O error */#define ENXIO 6 /* No such d原创 2022-04-25 19:23:24 · 571 阅读 · 0 评论 -
Android 属性property_get/property_set
1、property_get和property_set使用方法property_get和property_set使用方法一.使用方法每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。如下面我们可以在系统中代码设置属性或命令行设置属性,用于系统中的判断,setprop WLAN.SWITCH.FLAG 1getprop WLAN.SWITCH.FLAG..原创 2022-04-25 10:58:09 · 6767 阅读 · 0 评论 -
字符串对象数组集合非空判断
String 字符串import org.apache.commons.lang3.StringUtils;//直接用字符串调用方法 str.isEmpty() 如果为null则会抛出异常 if (StringUtils.isEmpty(str)){// "" 和null均判断为空 System.out.println("string为空");}maven依赖<dependency> <groupId>org.apache.commons&l原创 2022-04-22 22:30:41 · 163 阅读 · 0 评论 -
java/c++中this关键字
1、 使用this来区分当前对象。Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用:1) 构造方法中指该构造器所创建的新对象;2) 方法中指调用该方法的对象;3) 在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法。this只能用在构造器或者方法中,用于获得调用当前的构造器方法的对象引用。可以和任何的对象引用一样来处理这个this对象。说明:(1)当实例变量和局部变量重名,JAVA平台会按照先局部变量、后实例变量的顺序寻找。原创 2022-02-21 11:22:38 · 370 阅读 · 0 评论 -
java 的接口可以引用一个变量
面向接口编程:2, 定义好了引用变量以后, 要让它引用一个对象, 这个对象就应该是实现了那个接口的类的实例了! 随便一个类, 只要它继承实现了那个接口, 那么它的实例都可以在这里被引用.3, 方法的返回类型也是要定义为接口类型, 因为, 你要记住:我们这个方法是需要返回一个有特定功能的对象! 同理, 方法的参数的类型也是如此!所谓面向接口编程, 就是说在定义引用变量的时候, 用接口来定义.补充:问题:那用抽象类来定义不是也可以吗?答:抽象类定义的引用变量只能引用继承该抽象类的对象。用原创 2022-02-18 14:10:55 · 282 阅读 · 0 评论 -
Java中@SuppressWarnings的作用
@SuppressWarnings(“unused”) 表示该属性在方法或类中没有使用。添加此注解可以去除属性上的黄色警告!!!屏蔽java编译中的一些警告信息。unused这个参数是屏蔽:定义的变量在代码中并未使用且无法访问。java在编译的时候会出现这样的警告,加上这个注解之后就是告诉编译器,忽略这些警告,编译的过程中将不会出现这种类型的警告。Java中@SuppressWarnings的作用 - 大师兄i - 博客园Java中@SuppressWarnings("unchecked")的.原创 2022-02-17 14:56:06 · 846 阅读 · 0 评论 -
Android的getInstance方法
1. 简介举个简单的例子 : 实例public static CoreApplication instance;public static CoreApplication getInstance(){if(instance == null){instance = new CoreApplication();}return instance;}2.问题一般写一个比较常用的类,都会有个getInstance方法,字面意思获取实例,但具体为啥都要写个这个,调用的时候都要xx原创 2022-02-16 19:07:08 · 1549 阅读 · 0 评论 -
java的callback函数:
回调从字面上去理解,就是类A的方法a调用类B的方法c解决问题,解决完后类B就回调类A的方法b通知类A,其实就是一个双向调用的过程。可能这么说还是偏理论了一点,受过高中写作熏陶的我们怎么忍受的了!那就举个例子,就好比你去书店买一本哈利波特,但刚好这个书店销售火爆,哈利波特这本书已经售罄了,于是你就告诉书店的老板去进货,老板进货完了就告知你书已经到了,可以来拿了。Java 回调(callback) - 简书JAVA回调机制(CallBack)详解 - Bro__超 - 博客园Java 回调函原创 2022-02-14 15:09:50 · 157 阅读 · 0 评论 -
Java Stack insertElementAt()用法及代码示例
Java.util.Stack.insertElementAt(element,index)方法用于在Stack的指定索引处插入特定元素。元素和位置都作为参数传递。如果在指定的索引处插入元素,则所有元素都被向上推一,因此容量增加,从而为新元素创建了空间。用法:Stack.insertElementAt()参数:该方法接受两个参数:element:这是需要插入堆栈中的元素。 index:这是整数类型,是指要插入新元素的位置。返回值:该方法不返回任何内容。异常:如果索引是无效数字,原创 2022-02-11 19:43:01 · 447 阅读 · 0 评论 -
Java Iterator(迭代器)
1、Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。Iterator(迭代器)是一个接口,它的作用就是遍历容器的所有元素。Iterator iter = list.iterator(); // 注意iterator,首字母小写2、Iterator接原创 2022-02-11 19:29:52 · 1384 阅读 · 0 评论 -
JAVA中——final、static
JAVA中——final、staticfinal:final修饰类:该类不可继承final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数)final修饰字段属性:属性值第一次初始化后不能被修改使用final可以提高程序执行的效率,将一个方法设成final后编译器就可以把对那个方法的所有调用都置入“嵌入”调用里。static:static修饰成员函数则该函数不能使用this对象static不能修饰构造函数、函数参数、局部成员变量static修饰成员字段则当类被虚拟机加载时按照声明先后顺序对原创 2022-02-11 18:49:07 · 198 阅读 · 0 评论 -
C++类构造函数初始化列表
构造函数初始化列表以一个冒号:开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample() { a=0; b=8.8; }};上面的例子中两个构造函数的结果是原创 2022-01-20 20:14:47 · 460 阅读 · 0 评论 -
namespace和using使用
1、namespace,声明下namespace android {namespace hardware {namespace automotive {namespace audiocontrol {namespace V1_1 {namespace implementation {2、这个是使用哪个名空间using ::android::hardware::hidl_array;using ::android::hardware::hidl_memory;using ::a原创 2022-01-18 17:23:34 · 2381 阅读 · 0 评论 -
枚举类型 (enum)和java中ordinal()方法的注意事项
枚举类型是int型的常量 默认值是从0开始依次加1 若赋值,在被赋值的成员基础上依次加1,之前未赋值的成员为默认值;原创 2022-01-11 20:12:57 · 1064 阅读 · 0 评论 -
SparseIntArray用法
//向sparseArray存入元素value,key为index sparseArray.put(index, value); sparseArray.indexOfKey(index); //查找value所在的位置,如果不存在,则返回-1 sparseArray.indexOfValue(value) //更新某个key的值 sparseArray.setValueAt(index, value); ...原创 2022-01-11 16:02:36 · 1757 阅读 · 0 评论 -
Java compareTo() 方法
compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。语法public int compareTo( NumberSubClass referenceName )参数referenceName -- 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。返回值 如果指定的数与原创 2022-01-09 14:20:06 · 145 阅读 · 0 评论 -
栈中的peek()、pop()和push()、Add()方法
peek() :返回栈顶元素,不在堆栈中删除它。pop() :返回栈顶元素,并在进程中删除它。push():在栈顶增加元素原创 2022-01-05 22:35:57 · 8298 阅读 · 0 评论 -
MAP使用containsKey和containsValue方法
1、containsKeycontainsKeyboolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。更确切地讲,当且仅当此映射包含针对满足 (key==null ? k==null : key.equals(k)) 的键 k 的映射关系时,返回 true。(最多只能有一个这样的映射关系)。 参数:key - 测试是否存在于此映射中的键 返回:如果此映射包含指定键的映射关系,则返回 true 抛出: ClassCastExcep转载 2022-01-05 22:02:13 · 850 阅读 · 0 评论