
Java
文章平均质量分 63
zhangphil
zhangphil@live.com
展开
-
java.lang.NullPointerException: Attempt to get length of null array
Java小数点数字和百分号数字之间的转换小数点数字和百分号(百分比)数字之间的转换在证券金融业很常见,需要经常进行两者之间相互转换。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。原创 2024-10-22 23:01:52 · 1127 阅读 · 0 评论 -
Android MediaMetadataRetriever获取视频宽高,Java
文章浏览阅读914次。【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。文章浏览阅读124次。【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。原创 2024-06-10 23:39:00 · 967 阅读 · 0 评论 -
Java JDK官方下载链接
标准发布:open JDK 22。原创 2024-05-17 23:55:51 · 1008 阅读 · 0 评论 -
Kotlin/Java HashMap异常:java.util.ConcurrentModificationException
Java并发多线程环境中,造成死锁的最简单的场景是:多线程中的一个线程T_A持有锁L1并且申请试图获得锁L2,而多线程中另外一个线程T_B持有锁L2并且试图申请获得锁L1。线程的锁申请操作是阻塞的,于是造成线程T_A和线程T_B无法正确获得想要的锁,两个线程被阻塞进入死锁状态。Java并发多线程环境中,造成死锁的最简单的场景是:多线程中的一个线程T_A持有锁L1并且申请试图获得锁L2,而多线程中另外一个线程T_B持有锁L2并且试图申请获得锁L1。此方法返回一个线程容量为n的线程池。读时候快,写/删/改慢。原创 2024-04-24 23:34:24 · 1044 阅读 · 0 评论 -
Android ViewPager2 setOffscreenPageLimit预加载Fragment,Kotlin
2、如果设置了mOffscreenPageLimit(并且,mOffscreenPageLimit通过setOffscreenPageLimit()这个API接口也只能设置 >=1 的值),ViewPager2就退化成过去老版的ViewPager了,除了把当前可见的那个Fragment加载出来外,还会根据用户设置的mOffscreenPageLimit值,加载mOffscreenPageLimit个不可见的Fragment。日志显示,只加载了当前可见的0号Fragment,没有加载1号Fragment。原创 2024-03-28 00:44:22 · 1707 阅读 · 0 评论 -
Kotlin/Java ArrayList与OOM(OutOfMemoryError)
只是把list原先的每个元素置为null,而ArrayList在内存堆上分配的内存空间并未立即释放,所以,即便调用了ArrayList的clear(),并不会立即释放ArrayList在内存堆上分配的空间,clear()只是将原先ArrayList里面的每个元素置为null,然后等待JVM的GC的垃圾回收,而JVM的垃圾回收时机是不确定的,上层应用代码无法控制。一个对象置为null,也只是告诉JVM,可以回收此对象,而JVM会不会回收、何时回收,取决于JVM,不取决于 list=null 这句代码。原创 2024-03-21 23:11:17 · 1174 阅读 · 0 评论 -
Kotlin/Java中String的equals和==
,而此时再次对s进行操作改变s的值时候,如再次给s赋值使得s=”_string类的字符串与stringbuffer类的字符串判断是否相同。每次Java/Kotlin定义/创建一个String后,如果String内存缓存池内不存在给定值比如"zhang"相同的String对象,那么此时Java将为此创建新的String对象,并存放在String缓存池内。如果String缓存池内存中有与指定值相同的String对象,那么此时Java将不创建新String对象,而直接返回已存在的String对象的引用。原创 2024-03-14 23:03:01 · 858 阅读 · 0 评论 -
Can‘t create handler inside thread Thread*** that has not called Looper.prepare()
Android非UI主线程中,若干普通Java线程使用Handler发送接收消息线程1和线程2均为普通Java线程,在Android中创建,然后在这两个普通Java线程中使用Handler发送和接收消息。import android.os._java handler 非主线程。做一个简单的关于Handler,Looper,Message的小演示,代码主界面一个Button按钮,点击发送消息(累计)给线程的Looper循环,然后在LogCat中打印出来:package zhangphil.looper;原创 2023-11-02 23:10:51 · 2174 阅读 · 0 评论 -
JDK7多线程并发环境HashMap死循环infinite loop,CPU拉满100%,Java
例如,假如在HashMap中依次、顺序添加元素:1,2,3,4,5,在遍历HashMap时输出的顺。例如,假如在HashMap中依次、顺序添加元素:1,2,3,4,5,在遍历HashMap时输出的顺。通常在初始化HashMap时候会有一个loadFactore负载因子比如0.75,当原先存储的元素size达到固有长度的0.75后,开始扩容,扩容过程用头插法把oldTable单链表的节点插入到newTable单链表,newTable单链表倒置了oldTable中的单链表。infinite loop问题。原创 2023-09-06 23:01:13 · 562 阅读 · 0 评论 -
Kotlin Java互调报错:java.lang.NullPointerException: Parameter specified as non-null is null
当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。原创 2023-08-15 23:12:30 · 581 阅读 · 0 评论 -
ArrayList浅拷贝clone,Kotlin
Java的Vector,Stack,ArrayList,LinkedList异同Collection的实现子类型是什么,它都支持iterator()函数,该函数返回一个迭代器,该迭代器即可遍历访问Collection中每一个元素。/** * * 反转一个List,关键是使用Collections工具类 * * @author Phil * */public class Demo {public static void main(String[] args)原创 2023-08-14 23:30:49 · 498 阅读 · 0 评论 -
Android快速滑动条/快速滑块/快速滚动条标准实现,Java
Android快速滑动条/快速滑块标准实现,Java。原创 2023-10-22 23:04:02 · 848 阅读 · 0 评论 -
Java反射类private私有变量Map并赋值
Java反射改变Android属性在某些情况下,Android体系里面的某些对象没有对外提供针对某个属性或者类,方法公开的get或者set方法,但是项目需要对这些需要修改和调整。就需要使用Java的反射机制修改Android的属性。Java反射类Class,反射方法Method以及反射变量Fieldimport com.orhanobut.logger.Logger;Java反射类Class,反射方法Method以及反射变量Field_zhangphil的博客-优快云博客。原创 2023-07-26 23:11:43 · 849 阅读 · 0 评论 -
Android GlideApp FixedPreloadSizeProvider RecyclerViewPreloader,mix Java&Kotlin
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。原创 2023-07-25 23:08:58 · 244 阅读 · 0 评论 -
Android GlideApp FixedPreloadSizeProvider RecyclerViewPreloader preload scroll smooth,Java
【代码】Android Paging 3,kotlin(1)在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬而未决:比如用户的头像,往往用户的头像是从服务器端读出的一个普通矩形图片,但是现在的设计一般要求在APP端的用户头像显示成圆形头像,那么此时虽然Glide可以加载,但加载出来的是一个矩形,如果要Glide_android 毛玻璃圆角。《Android图片加载与缓存开源框架:Android Glide》Android Glide是一个开源的图片加载和缓存处理的第三方框架。原创 2023-07-23 23:09:38 · 175 阅读 · 0 评论 -
android Glide加载gif动图和本地视频,Java
droid Glide加载gif动图和本地视频,Java。原创 2023-07-28 23:35:15 · 1535 阅读 · 0 评论 -
Objects isNull requireNonNullElse requireNonNullElseGet requireNonNull,Java
当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。当a不为null时,执行大括号里的语句(it肯定不为null)如果a == null ,则为 null。= null,则a.b()如果 a 不是 b,则为 null。原创 2023-06-23 23:33:29 · 481 阅读 · 0 评论 -
Android load all photos into RecyclerView,support pinch to zoom by ScaleGestureDetector,Java(3)
Android RecyclerView的StaggeredGridLayoutManager实现交错排列的子元素分组先看实现的结果如图:设计背景:现在的产品对设计的需求越来越多样化,如附录文章2是典型的联系人分组RecyclerView,子元素排列到一个相同的组,但是有些时候,UI要求把这些元素不是垂直方向的,而是像本文开头的图中所示样式排列,这就需要用StaggeredGridLayoutMa。在处理大图的浏览查看动作过程中,往往还有其他额外的事情需要处理,典型的以微信。原创 2023-05-16 23:07:45 · 290 阅读 · 0 评论 -
Android以aar包形式引入hunter-timing,Java(4)
Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)_zhangphil的博客-优快云博客。Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)Android 引入hunter-timing监测UI主线程函数运行时耗时,Java(2)同时重载Application,Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)_zhangphil的博客-优快云博客。原创 2023-06-01 23:02:15 · 495 阅读 · 0 评论 -
Android以aar包形式引入hunter-debug,Java(3)
Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)_zhangphil的博客-优快云博客。Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)Android 引入hunter-timing监测UI主线程函数运行时耗时,Java(2)同时重载Application,Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)_zhangphil的博客-优快云博客。原创 2023-05-15 23:03:28 · 505 阅读 · 0 评论 -
Android 引入hunter-timing监测UI主线程函数运行时耗时,Java(2)
Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)_zhangphil的博客-优快云博客。Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)Android 引入hunter-timing监测UI主线程函数运行时耗时,Java(2)同时重载Application,原创 2023-05-10 23:02:35 · 353 阅读 · 0 评论 -
Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)
Android 引入hunter-debug监测代码运行时函数耗时和参数及返回值,Java(1)原创 2023-05-09 23:02:41 · 597 阅读 · 0 评论 -
Unable to make field private final java.lang.String java.io.File.path accessible: module java.base d
【代码】Unable to make field private final java.lang.String java.io.File.path accessible: module java.base d。原创 2023-05-08 23:06:23 · 24116 阅读 · 15 评论 -
Android基于JNA集成调用第三方C/C++的so库
Android基于JNA加载第三方.so库报错:java.lang.UnsatisfiedLinkError Native library (com/sun/jna/android-aarch64/l_zhangphil的博客-优快云博客。注意Native.load()里面对应的so库名,so库名一般以libxxx.so开头,但是在Native.load里面,不要带上lib和结尾的.so后缀名,即去掉开头lib和结尾的.so。写上层Java代码。Android基于JNA集成调用第三方C/C++的so库。原创 2023-05-03 23:35:33 · 1931 阅读 · 0 评论 -
Android基于JNA加载第三方.so库报错:java.lang.UnsatisfiedLinkError Native library (com/sun/jna/android-aarch64/l
基于Windows平台,Android NDK(JNI)开发技术》【摘要】本文介绍如何基于Windows平台,在Eclipse中使用Android NDK技术实现“Android平台上的JNI ( Java Native Interface ) ”开发。新增的getStringCpp()是新增的一个方法,因为没有实现所以报红。解压后,里面是一个libjnidispatch.so,把libjnidispatch.so放到Android项目的libs\arm64-v8a\里面即可。原创 2023-04-29 23:18:54 · 1880 阅读 · 0 评论 -
Android LoaderManager CursorLoader加载全部图片RecyclerView BigImageView呈现,Java(2)
【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。Android设置头像,手机拍照或从本地相册选取图片作为头像_android 头像拍照_zhangphil的博客-优快云博客。Android图片添加文字水印并保存水印文字图片到指定文件_zhangphil的博客-优快云博客。原创 2023-04-22 23:44:27 · 590 阅读 · 0 评论 -
Android添加C++/CPP项目代码(2)
基于Windows平台,Android NDK(JNI)开发技术》【摘要】本文介绍如何基于Windows平台,在Eclipse中使用Android NDK技术实现“Android平台上的JNI ( Java Native Interface ) ”开发。新增的getStringCpp()是新增的一个方法,因为没有实现所以报红。以上完成后,就可以在Java层像使用普通Java函数一样使用getStringCpp()其中,loadLibrary()里面填写的即是(2)里面的xxx.cpp的xxx名字。原创 2023-04-19 23:07:23 · 1422 阅读 · 0 评论 -
Android 13根据Uri反向解析图片真实文件路径,Java
Android 13根据Uri反向解析图片真实文件路径,Java。原创 2023-04-05 23:45:37 · 749 阅读 · 0 评论 -
Android多窗口切换EditText自动弹出软键盘,Java
Android屏蔽隐藏自带输入键盘若是Activity,在AndroidMainfest.xml配置Activity属性:android:windowSoftInputMode="stateAlwaysHidden|stateHidden"比如activity从前台切换到后台,然后再切换到前台,要求activity在前台时候EditText自动唤起软键盘。Android屏蔽隐藏系统自带输入键盘_android 屏蔽系统键盘_zhangphil的博客-优快云博客。原创 2023-04-09 00:04:54 · 544 阅读 · 0 评论 -
Android ViewPager2 load once when fast scroll many page,Java
ViewPager2和Fragment新的可见性及懒加载解决方案,旨在解决ViewPager(ViewPager2)只有当前Fragment唯一可见时候网络刷新或绘图。注意:过去的setUserVisibleHint()已被废弃,开发者不要再使用基于setUserVisibleHint()解决Fragment可见性和懒加载(或延迟加载)的场景。新方案用最新的ViewPager2替代过去旧版的ViewPager,再结合Fragment的resume和pause生命周期实现。写一个demo例子,测试的主类M。原创 2023-04-02 23:14:48 · 283 阅读 · 0 评论 -
Android LoaderManager AsyncTaskLoader cancelLoad不deliverResult,Java
android LoaderManager与AsyncTaskLoader,java(1)_zhangphil的博客-优快云博客。android ,LoaderManager.LoaderCallbacks与AsyncTaskLoader, Java(2)_zhangphil的博客-优快云博客。android LoaderManager与AsyncTaskLoader,java(1)_zhangphil的博客-优快云博客。原创 2023-04-12 23:03:19 · 654 阅读 · 0 评论 -
android ContentObserver实时监测媒体图片增删改,java(1)
【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。android根据图片资源的drawable id转化为Uri,java_zhangphil的博客-优快云博客。android根据图片资源的drawable id转化为Uri,java_android drawable转uri_zhangphil的博客-优快云博客。原创 2023-04-21 23:08:03 · 1289 阅读 · 0 评论 -
Android LoaderManager AsyncTaskLoader加载全部图片RecyclerView BigImageView呈现,Java(1)
【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。Android设置头像,手机拍照或从本地相册选取图片作为头像_android 头像拍照_zhangphil的博客-优快云博客。Android图片添加文字水印并保存水印文字图片到指定文件_zhangphil的博客-优快云博客。原创 2023-04-23 23:05:50 · 609 阅读 · 0 评论 -
Android 13手机图片存储File路径转Uri,Java
android根据图片资源的drawable id转化为Uri,java_zhangphil的博客-优快云博客。android根据图片资源的drawable id转化为Uri的工具方法。Android 13手机图片存储File路径转Uri,Java。原创 2023-03-27 23:12:04 · 812 阅读 · 0 评论 -
android 13 LoaderManager AsyncTaskLoader读取手机图片 ,Java
【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。Android设置头像,手机拍照或从本地相册选取图片作为头像_android 头像拍照_zhangphil的博客-优快云博客。Android图片添加文字水印并保存水印文字图片到指定文件_zhangphil的博客-优快云博客。原创 2023-04-01 23:43:37 · 513 阅读 · 0 评论 -
android 13读取本机所有图片名和存储绝对路径,Java
【Android设置头像,手机拍照或从本地相册选取图片作为头像】像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1,让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。Android设置头像,手机拍照或从本地相册选取图片作为头像_android 头像拍照_zhangphil的博客-优快云博客。Android图片添加文字水印并保存水印文字图片到指定文件_zhangphil的博客-优快云博客。原创 2023-03-30 23:17:50 · 1732 阅读 · 0 评论 -
android ,LoaderManager.LoaderCallbacks与AsyncTaskLoader, Java(2)
android LoaderManager与AsyncTaskLoader,java(1)_zhangphil的博客-优快云博客。android LoaderManager与AsyncTaskLoader,java(1)原创 2023-03-24 23:05:44 · 393 阅读 · 0 评论 -
android LoaderManager与AsyncTaskLoader,java(1)
android LoaderManager与AsyncTaskLoader,java(1)原创 2023-03-18 23:16:19 · 330 阅读 · 0 评论 -
android MutableLiveData与AndroidViewModel避坑小提示,Java
Google I/O 2017 Android官方新体系架构之:LifecycleGoogle官方在2017 I/O大会中引入一些列Android新的体系架构内容,其中有一个是Android的Lifecycle。(4)当potsValue()之后,getValue()不一定会取到在postValue()的数据,只有当主线程setValue()之后,才能取到postValue()的值。可以简单的理解为,postValue()最终的数据呈现是setValue()实现。原创 2023-05-27 23:23:01 · 1104 阅读 · 0 评论 -
Android AsyncTaskLoader,Java
【代码】Android AsyncTaskLoader,Java。原创 2023-03-23 23:15:21 · 344 阅读 · 0 评论