首页
学习
活动
专区
工具
TVP
发布

指尖下的Android

专栏作者
67
文章
239228
阅读量
13
订阅数
Java Lambda 和 Kotlin Lambda 的区别
Java 匿名内部类在编译时会创建一个 class ,增加类的加载开销,运行时该内部类无论是否用到外部参数每次都会生成该类的实例。jdk 1.8 后 lambda 的实现是在当前类增加一个私有静态方法,减少了类的开销
萬物並作吾以觀復
2021-11-24
2.4K0
Kotlin 类扩展实现原理
在 Kotlin 中当项目集成第三方 SDK 的时候,如果需要为其中某个类新增方法来可以通过 className.methodName(){}, 即 类名.方法名 的形式来扩展函数,那么同样和 Java 一样是 JVM 语言的 Kt 为什么就可以实现这种功能呢,以下为一个例子,借助它来详细探讨一下实现原理及细节。
萬物並作吾以觀復
2021-07-20
3580
Kotlin 和 Java 关于局部变量的区别
众所周知,在 Java 方法内将局部变量作为参数传递到方法后,如果该参数是基本数据类型,那内部的赋值修改不会同步到外部,如果是引用数据类型,对于对象的赋值也是不会同步到外部的,但是对于对象的属性修改是会同步的,这是因为 Java 是值传递,修改的是副本,但是副本指向的属性地址是相同的。
萬物並作吾以觀復
2021-05-17
8920
Error: Java exception was raised during method invocation
项目中有用到 @JavascriptInterface 来JS 、Java 通讯,但是 H5 报了一个异常,我在一个通讯方法里申请动态权限,后发现需要切换到主线程才行,其实是所有的 UI 操作都要切换到主线程,否则会抛出异常,后改为以下代码解决问题
萬物並作吾以觀復
2019-06-15
5.3K0
Java 参数传递是值传递还是引用传递?
首先把结论表明,Java 的参数传递是值传递,因为有部分细节让人引起误解以为是引用传递,故我们写两个例子来举例探讨。
萬物並作吾以觀復
2019-05-10
2.8K0
可能是全网最简单透彻的安卓子线程更新 UI 解析
相信下面的代码大家看过很多遍了,在 onCreate() 生命周期里开启一个线程来更新 UI ,居然没有闪退和异常( 在大概率情况下是没有问题的 )
萬物並作吾以觀復
2019-05-09
1.1K0
Android面向切面AOP架构设计简析
按照惯例,谈一个框架时我们先说明一下这东西到底是啥、干什么的,首先AOP面向切面和我们通常意义上写的代码不太一样,Java是OOP面向对象,所有的代码都是符合某个功能的,是分门别类好的,但是我们在实际的安卓开发过程中OOP的设计思想是比较难处理一些问题的,比如模块埋点、鉴权以及一些简单但是重复性比较高的代码,如我们要查看个人资料页面就必须先登录,查看个人消息也需要登录。
萬物並作吾以觀復
2018-10-10
7060
Java是值传递还是引用传递?
代码很简单,图一中调用静态方法IntValues(int t),毫无疑问是传递值,因为如果是引用传递,那么二者打印的值是一致的。很明显,a--之后,t的值没有发生改变。
萬物並作吾以觀復
2018-09-13
1.3K0
Java自定义注解在安卓开发中的简单运用
java中有很多框架都用到了注解包括java的Api也是,想一些网络框架的@GTE,@POST,@PATH等等,java中的@Override注解是可以被继承的,它是可以在代码编译期告诉JVM类之间的继承关系,那到底注解是怎么实现的呢,首先你要定义一个注解,然后通过反射来实现你所要的功能。
萬物並作吾以觀復
2018-09-13
1.6K0
Java设计模式之观察者模式
观察者模式就是一个对象的状态或行为发生改变会随之影响其他对象的状态与行为,总之就是对象之间的联动,一个对象发生改变,其他对象也马上发生变化。
萬物並作吾以觀復
2018-09-13
4490
Java &、&&、|、||、^、<<、>>、~、>>>等运算符
无符号右移运算符和右移运算符的主要区别在于负数的计算,因为无符号右移是高位补0,移多少位补多少个0。
萬物並作吾以觀復
2018-09-13
162.2K4
JNI命令行下编译错误解决方案
我的android sdk路径为(前面有环境变量路径一定要加;) ;E:\Program Files\Android\Android Studio\plugins\android\lib\android.jar; 第三步,编译java文件 javah 完整包名+类名 例如: javah com.jni.demo.jni_01 com.jni.demo为完整包名,因为jni的语法实现需要用到完整包名,它会自动在项目的相对路径下寻找相应的类文件 jni_01是含有native方法的类
萬物並作吾以觀復
2018-09-13
3990
JNI之路径初探---6
本篇文章讲解JNI下属性的内存释放问题,众所周知,JAVA有四大引用,1,强引用2,弱引用3,软引用4,虚引用。JNI有三大引用,1,普通全局引用2,弱全局引用3,局部引用。 1,Native方法执行完最后一行代码完毕后,方法内的所有局部对象全部自动释放内存。 2,弱、普通全局引用是跨线程、方法的,不同的是全局引用必须手动调用(env)->DeleteGlobalRef(env, 引用);才能释放内存,而弱全局适用于包装那些使用不频繁的属性,它是不稳定的,因为它不会阻止垃圾回收机制释放其内存,只要内存不够,弱引用就可能被释放。 3,引用的比较用(env)->IsSameObject(env, obj_1, obj_2),特殊的一点如果比较的是NULL,NULL是JVM下的对象,如果你比对的对象是null,尽管"相同",但是会不同。
萬物並作吾以觀復
2018-09-13
2820
JNI之路径初探---4
本篇文章讲解如何处理JNI下返回字符串乱码 JNI代码,图内有注释 JAVA代码 代码比较简单,也不再详细说明,适合有C、C++和JNI基础的同学学习。
萬物並作吾以觀復
2018-09-13
2970
JNI之路径初探---3
这里讲一下如何拿到类中方法和属性的签名: 1,cmd进入命令行 2,cd 命令切到当前项目的src路径 3,javap -s -p 包名+类名(xxx.xxx.xxx.类名)
萬物並作吾以觀復
2018-09-13
3070
JNI之路径初探---2
上一篇博客写的是Java调用C、C++的例子,本篇就演示一下C、C++怎么调用Java的属性和方法。
萬物並作吾以觀復
2018-09-13
4360
JNI之路径初探---1
首先要明白,什么是JNI,我们做安卓开发为什么要学习JNI,学习JNI能干嘛? JNI全称Java Native Interface (Java本地接口) 那么这个所谓的Java本地接口到底是干什么的呢?
萬物並作吾以觀復
2018-09-13
5730
由单例模式的双判空所展开的思考
相信很多朋友对于单例模式都很熟悉,一般常见的就七八种,百度一大堆,这里聊一下双判空情况下的单例模式。 双判空单例是由单判空所演变而来的,是原来的一些程序员为了提升效率,主要是在JDK版本比较低的时候,锁是比较低效的,双判空从逻辑上可以解决线程的吊起、等待、调度等开销。但是双向判空的单例由于java虚拟机内存分配模型的问题,它并不能实现多线程安全了。
萬物並作吾以觀復
2018-09-13
6040
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档