page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6473 次

3096 个回答

0 赞同

hashmap 的数据结构?

在 java 编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,hashmap 也不例外。Hashmap 实际上是一个数组和链表的结合体(在数据结构中,一般称之为 “链表散列 “)enter image description here

回答于 2022-07-29 16:02

0 赞同

快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?

Iterator 的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util 包下面的所有的集合类都是快速失败的,而 java.util.concurrent 包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException 异常,而安全失败的迭代器永远不会抛出这样的异常。

回答于 2022-07-29 16:01

0 赞同

说说 ArrayList,Vector, LinkedList 的存储性能和特性?

ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了synchronized 方法(线程安全)。 通常性能上较 ArrayList 差,而 LinkedList 使用双向链表...

回答于 2022-07-29 16:01

0 赞同

ArrayList 和 Vector 的区别?

这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是HashSet 之类的集合的最大不同处,HashSet 之类的集合不可以按索引号去检索其中的元素...

回答于 2022-07-29 16:01

0 赞同
0 赞同

给一个数 N,把 2 到 N 之间的素数输出出来?

1、这个题比上面这个难度加大了一层 2、可以限定,不让其使用子函数,增加逻辑上的复杂度 3、其他的,同样一层层考优化的方法

回答于 2022-07-28 15:27

0 赞同

怎么定位 NDK 中的问题和错误?

一般在开发阶段的话,我们可以通过 log 来定位和分析问题。 如果是上线状态(即关闭了基本的 log),我们可以借助 NDK 提供的 addr2line 工具和 objdump 工具来定位错误。详情: so 动态库崩溃问题定位(addr2line与objdump) 其它还可以使用 C/C++ 的一些分析工具。

回答于 2022-07-28 15:26

0 赞同

JNI 线程间数据怎么互相访问?

考察点和上体类似,线程本来就是共享内存区域的,因此我们需要使用 全局引用。

回答于 2022-07-28 15:26

0 赞同

解释一下 JNI 中全局引用和局部引用的区别和使用?

全局引用 通过 NewGlobalRef 和 DeleteGlobalRef 方法创建和释放一个全局引用。 全局引用能在多个线程中被使用,且不会被 GC 回收,只能手动释放。 局部引用 通过 NewLocalRef 和 DeleteLocalRef 方法创建和释放一个局部引用。 局部引用只在创建它的 native 方法中有效,包括其调用的其它函数中有效。因此我们不能寄...

回答于 2022-07-28 15:26

0 赞同

谈谈你对 JNIEnv 和 JavaVM 理解?

JavaVM JavaVM 是虚拟机在 JNI 层的代表。 一个进程只有一个 JavaVM。(重要!) 所有的线程共用一个 JavaVM。(重要!) JNIEnv JNIEnv 表示 Java 调用 native 语言的环境,封装了几乎全部 JNI 方法的指针。 JNIEnv 只在创建它的线程生效,不能跨线程传递,不同线程的 JNIEnv 彼此独立。(重要!) 注意: 在 nati...

回答于 2022-07-28 15:25