0%

参考Android达摩院的ArrayMap文章。
ArrayMap是Android中存储的一个数据结构。是Android专门针对内存优化而设计的,用于取代Java API中的HashMap。为了进一步优化key是int类型的Map,Android再次提供了效率更高的数据结构SparseArray,可避免自动装箱过程。对于key为其他类型则使用ArrayMap。HashMap的get和put方法的时间复杂度是O(1)是以牺牲大量内存为代价而才得以实现的,SparseArray和ArrayMap性能略低于HashMap,但是更节省内存,用在移动端是权衡的结果。

阅读全文 »

一、反射机制的定义
JAVA反射机制是在运行状态_中,对于任意一个类 (class文件),都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

阅读全文 »

1,什么是java的接口回调?有什么作用?
回调是一种向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口。
学习自回调
先看代码:

阅读全文 »

一、正则表达式

定义:正则表达式是一个特殊的字符串序列,一个字符串是否与我们所设定的这样的字符序列,相匹配。
正则表达式的作用:它的作用:快速检查文本,实现一些替换文本的操作。比如:

  • 1,检查一串数字是否是电话号码形式
  • 2,检测一个字符串是否符合email的格式
  • 3,把一个文本里指定的单词替换为另外一个单词
    阅读全文 »

沈向洋博士和微软总裁的书,相信是一本很好的科普文章,看看也做做笔记,理解理解人工智能,给自己扫个盲把。
我向诸君提出这一问题:机器能否思考? —-阿兰.图灵

阅读全文 »

一、HashMap

hashmap在元素size超过负载因子对应数的时候就会扩容,但是其实还有一种情况也会扩容,那就是链表上Node数量大于等于8且tab数组长度小于64的时候的时候。
HashMap的结构是哈希表,底层维护了一个Node数组(Jdk 8之后,之前是HashMap.Entry数组),它是集合框架里非常常用的集合类,和ArrayList一样,使用非常频繁,HashMap的初始容量是16,加载因子是0.75,当在一个位桶发生哈希冲突(也叫哈希碰撞)的时候,添加的元素会依次存放在该位置的最后一个元素后面(形成链表),链表数量大于8且HashMap元素大小小于64时,这条链表就会转成就会转成红黑树,注意一定两个条件都满足才会转成红黑树,不要忽略了64这个数,平时很多博客说链表大于8就转红黑树大概是因为在工程上链表大于8了基本上HashMap存储的元素大于64,否则说明这个HashMap的hash函数设计的不好,基本上算出来的值都是同一个,也就是说产生了哈希碰撞。而实际上HashMap的hash函数是已经高度优化了的,所以某条链表节点数大于8而总节点数小于64发生的概率极低,当然要知道这个逻辑。

阅读全文 »

面向对象概念

和java一样,类(class)和对象是面向对象的体现,它是一种设计思想现实生活在计算机世界的映射。类的最基本作用就是封装代码,在一个类里可以定义很多个类。

1,类的定义

阅读全文 »

一、pyhton项目组织架构—包和模块和类

python组织架构:包–>模块–>类。而类中有函数和变量。一个包可以包含很多模块,一个模块可以包括很多类。和java、c++不同,python中一个文件经常有多个类。java和c++中一般一个文件只有一个类,包可以理解就是一个文件夹(java中是jar包的概念)。

阅读全文 »

python进阶学习

前面学习python的基本语法和基本数据类型,现在开始进入编程阶段(之前的学习是学习基本的语法和数据结构),用代码编辑器或专业的IDE来编写并执行python程序。

阅读全文 »