自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lidongxiu0714

读书以博学,实践以登高!!!

  • 博客(28)
  • 收藏
  • 关注

原创 python学习之引入模块

努力从来不晚,以前的荒废时光让人懊悔,但之后的不为所动才是失败的原因。学习python有一周的时间了,断断续续的看了点语法,从今天开始记录python的学习,大部分的资料都来自《Python学习手册第四版》,有兴趣的可以去看原版书,谢谢。python中的大部分功能都在模块中,类似java的导包和C++的include但又有不同,一个Python文件就是一个模块,不像java文件名必须和类名...

2018-09-30 15:52:10 2898

原创 一个线程多个handler会有多少个looper,looper如何区分handler,会不会导致消息错乱。

面试题:问题1:一个线程中初始化多个handler,会产生多少个looper?问题2:如果只有一个looper,looper如何区分handler,handler发送了消息会不会导致Looper错乱,最终不知道谁处理。1 一个线程中初始化多个handler,会产生多少个looper分析一下:做过android开发的都知道Handler是android的消息机制,在主线程可以直接使用...

2018-09-29 17:40:08 10288

原创 抽象类和接口区别

抽象类:一个类被abstract关键字修饰就是抽象类。定义很简短,可能会有很多朋友质疑,《java编程思想》中说含有抽象方法的类就是抽象类,我试了下只要用abstract修饰的都是抽象类,就算里面不含有抽象方法,语法层面也是正确的。下面所有关于抽象类的总结都是基于抽象类含有抽象方法。下面说一下抽象类的特点:(1)抽象类由于含有抽象方法(未实现)所以无法实例化,需要被继承(2)继...

2018-09-28 17:54:30 2710

原创 java普通for循环和增强for循环中做集合增删会不会出错?

       在遍及集合过程中对集合进行删除操作最好不要做,如果非要做可以利用迭代器,并发集合,或者同步代码。       单线程模式下直接使用迭代器提供的remove方法就行或者首先记录下标遍历完后进行删除,多线程模式下建议使用同步或并发结合。1 面试遇到的问题和迭代器没关系考察的是普通的for循环和foreach循环下面先说出观点:       普通for循环遍历集合过程中进行...

2018-09-27 11:01:10 5420

原创 如何判断一个对象是否可回收,GC回收对象的过程方式,finilized函数

面试问题:判断一个对象是否可用(存活,可回收),GC回收对象的过程方式,finilized函数了解吗,调用了finilized函数的对象一定会被回收吗,可以主动调用finilized函数吗?判断一个对象是否可用:根搜索算法(可达性分析),引用计数法(循环引用,js使用)JVM使用的根搜索算法(引自深入理解JVM):一个对象到GC Roots没有任何引用链相连,则该对象不可用,这...

2018-09-26 16:58:07 5943

原创 AndroidManifest.xml文件何时被加载?如何查看apk的AndroidManifest

1 何时被加载首先分析一波,四大组件需要在AndroidManifest文件中配置否则无法使用,类似Activity无法启动,Activity可以被其他应用利用全类名或者action启动,就算此时要启动activity的应用没有被启动呢,所以AndroidManifest在系统启动时或者应用安装完毕后已经被系统加载。从系统代码级别解释就是系统启动过程中PMS会扫描特定目录下的apk...

2018-09-26 16:07:10 5716

原创 Messenger和aidl的关系&aidl支持多线程吗,messenger呢

1 Messenger封装了Aidl,使用时不用再写aidl,其实是源码中已经写好了aidl:IMessenger.aidl.package android.os; import android.os.Message; /** @hide */ oneway interface IMessenger { void send(in Message msg); ...

2018-09-26 15:33:34 3521

原创 java集合之LinkedHashMap解析

LinkedHashMap 继承自HashMap,主要结构还是HashMap,添加了双向链表来保证插入顺序或者访问顺序。著名的LRUCache就是借助了LinkedHashMap的保持访问顺序的特性实现的。 //LinkedHashMap中保存的节点,比hashMap中的Node添加了before,after,node中还有next, //添加的两个节点的指针,组成了双向链表...

2018-09-26 14:58:51 2742

原创 HashMap实现原理和扩容及高版本优化

HashMap的实现原理面试简单解答补充面试题:为什么hashcode和equals一般同时重写。hashmap如何判断出现了碰撞,然后存储在链表中。hash算法。这里不剖析源码只简单讲解:1原理简单解析数组结构HashMap内部结构为数组加链表方式,这里可以知道HashMap解决冲突的方法是链地址法,Node<K,V>[] table,Node节点里包...

2018-09-26 10:55:36 3109

原创 android软键盘弹起面试题

软键盘弹起后遮挡布局有什么解决方案?1设置windowSoftInputMode 软键盘弹起时布局自动变化或许可以解决2监听根布局变化,获取软键盘高度,然后滚动或移动界面windowSoftInputMode中adjustResize和adjustPan什么区别?adjustResize会改变activity的高度,adjustPan会移动布局一个登陆界面,输入框和按钮,键盘弹...

2018-09-26 10:04:29 2962

原创 StringBuilder StringBuffer 如何清空

StringBuilder StringBuffer面试题一般会问两者的区别和String的区别。StringBuffer线程安全的,StringBuild线程不安全的,String的区别是String每次改变都会生成一个新的String对象效率低,StringBuffer和StringBuild则不会生成新的对象。原理是:内部继承AbstractStringBuilder,利用数组进...

2018-09-25 16:35:40 10664

原创 java内部类为什么可以访问外部类属性方法

java内部类面试题:java内部类分类:成员内部类,局部内部类,静态内部类,匿名内部类静态内部类不能访问外部类的属性方法,所以android开发过程中可以优化handler其他内部类可以访问外部类,是因为持有外部类的引用。成员内部类说明:成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,默认情况下访问的是成员内部类的方法。访问外部类方法:外部类.this...

2018-09-25 16:21:18 13127

原创 java继承中的重写和隐藏

继承可以让子类获取父类非private以外的属性方法,这个过程中会发生重写,隐藏。多态的实现就是靠继承和类的向上转型,向下转型实现的。继承部分涉及到访问修饰符请看java访问修饰符,final  private方法不能被继承,构造方法不能被继承,但是如果父类含有有参构造函数,子类必须用super调用。父类中的static方法可以被继承,但是不能重写。父类中的属性只能被隐藏不能被重写,子类重...

2018-09-25 15:36:42 3109

原创 java访问修饰符面试相关

一道面试题:java访问修饰符分类?default   private public protected 四种四种访问修饰符可以访问,不可以访问情况分析?访问控制分为四种级别:  (1)public: 用public修饰的类、类属变量及方法,包内及包外的任何类均可以访问;  (2)protected: 用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承...

2018-09-25 15:04:57 3613

原创 android 一道关于dp,sp,px 的面试题

题目:android 开发中常用的尺寸单位是什么:dp   sp    pxdp 和px的区别,两个不同大小的屏幕dp和px的表现有什么区别dp与设备密度无关,dp不同尺寸屏幕显示效果不同,但是控件尺寸大小相同,所以最终结论是dp是具体的物理尺寸,与设备密度无关。px屏幕上的点,与密度相关,密度大了,单位面积上的px会比较多,px就显得比较小。设置160px在小屏幕上占据大...

2018-09-25 14:21:41 3049

原创 android jsbridge实现原理简述

假如生活欺骗了你,假如工作到处不顺,请放松心态,提升自己,终有一天你会适应,然后。。。。。。。。。。。。。。。本篇是面试小问题专栏的开篇文章,由于是面试小问题的解答,所以所有的文章都会力求把问题说明白的同时精简字数,可能有理解不到位的地方后续会慢慢完善。h5可以作为移动端跨平台的一种方式,其他方式还有rnjs,flutter,weekx等,android或者ios为了实现和js的交互都提供...

2018-09-25 11:52:21 3869

原创 android stuido读取其他gradle配置文件和如何统一项目的依赖

1 统一项目依赖       组件化开发,插件化开发成为了项目了标配,android项目中会引入大量依赖,类似v4,v7如果组件和最终编译app的依赖版本不同,可能导致程序崩溃。如果不通过读取配置文件而是要求各个module单独维护版本统一的依赖显然不太现实,除非只有一两个人,否则某个module添加了一个依赖还要反馈给其他用户很麻烦。     Gradle中可以通过引入gradle配置文...

2018-09-25 10:51:43 6226

原创 利用Nexus搭建私服(Maven仓库)

      开发过程中利用maven搭建仓库可以很方便的解决复杂的依赖问题,Android开发中最常用的库格式为aar,jar,这些库都可以从 google(), jcenter()还有以前默认的 mavenCentral()仓库中获取,只需要简单的引用就可以使用很方便,这些成为maven的远程仓库。      有时公司内部或者部门内部会产出很多便捷的库,一方面想让不同部门的使用,一方面又想对...

2018-09-18 15:06:06 2895

原创 java快速排序算法

快速排序算法写法很多种,这里介绍一种简单的://递归方式实现快速排序//算法思想每次排序会把小于锚点的数放在左边,大于锚点的数放在右边,//排完一轮就找到了锚点的正确位置,然后递归对锚点左侧,和右侧的数组//进行相同的规则排序public static void quicksort(int[] array, int start, int end) { int leftPos = ...

2018-09-07 16:33:22 4173

原创 单向链表倒数第n项思路

算法很简单,只做记录用:倒数第n项的求法很简单,只需要两个相差n-1的链表指针一直向前走,当前面的指针的next为null时,后面走的慢的指针正好是倒数第n个。public static int findNode(Node node) { if (node == null || node.next == null) { return -1; } if (node.nex...

2018-09-07 16:22:00 2808

原创 java不用系统函数String转int

public class Demo13 { public static void main(String[] args) throws Exception { String s1 = "-092376"; String s2 = "-a92376"; String s3 = "92376"; String s4 = "923a76"; System.out.println...

2018-09-07 13:15:12 3136

原创 android&ios webView加载MarkDown 或者html代码片段

很多app详情页的新闻主体是html或者markdown片段,这里介绍一种简单的加载方式:利用marked.js(https://github.com/chjj/marked)和webView就可以实现片段加载。//bodyHtml 就是要加载的md或者html片段。private String getHtmlData(String bodyHTML) { Strin...

2018-09-06 14:24:25 3943

原创 AndroidStudio3.0debug出的apk无法利用其它方式安装。

升级AS3.0之后,debug模式下打包出的apk,拿给测试人员安装竟然提示无法安装。我自己亲自试了一下,as上可以安装,单独拿到生成的apk文件,确实无法安装。解决办法:查找stackoverflow可知,Android Studio 3.0会在debug apk的配置文件application标签里自动添加android:testOnly="true"属性,导致IDE中run...

2018-09-06 11:40:26 8533 1

原创 链表反转简单算法

链表反转java:public class Demo12 { public static void main(String[] args) { Node node1 = new Node(1, null); Node node2 = new Node(2, null); Node node3 = new Node(3, null); Node node4 = new No...

2018-09-05 17:09:45 821

原创 Retrofit Get请求中带有特殊字符(^)报400错误

转眼又是一个月,回首已经过两年,唉。修改了密码之后登陆app,发现无法登陆直接报错,赶紧查看代码log:09-05 12:50:29.909 13653-13653/com.yiche.autoreport W/System.err: retrofit2.adapter.rxjava.HttpException: HTTP 400        at retrofit2.adapter...

2018-09-05 13:22:16 5478

原创 Android本地广播和全局广播的区别及实现原理

迷茫时该如何选择?1.本地广播和全局广播1.1本地广播:         广播事件的发送和接收都在本应用,不影响其他应用也不受其他应用影响,只能被动态注册,不能静态注册,主要用法都在LocalBroadcastManager类中。1.2全局广播:         可以接收其他应用发的广播,也可以发送广播让其他应用接收,全局广播既可以动态注册,也可以静态注册,接受其他应用和系统广...

2018-09-05 10:56:18 10381

原创 Android Jni GetMethodID中函数标识的简单解释

1 GetMethodID中函数标识的简单解释:Android 中Jni可以通过FindClass,GetMethodID, CallObjectMethod等可以实现对java中方法的调用。GetMethodID中最后一个参数的写法很特殊,Jni中GetMethodID的定义:jmethodID GetMethodID(jclass clazz, const char* nam...

2018-09-03 14:42:54 20935 4

原创 Flutter pubspec.yaml配置文件说明

有烦心事,有为难事!就怕没有好心态。(资料来源于flutter官网https://flutter.io/assets-and-images/)类似android开发中的AndroidManifest.xml,Gradle配置文件,Flutter项目根目录下的pubspec.yaml文件是Flutter的配置文件。虽然都是移动开发中的配置文件,但差别还是挺大的。在Flutter中,虽然在...

2018-09-03 13:54:08 25640

空空如也

空空如也

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

TA关注的人

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