版权声明:本文为博主原创文章,未经博主允许不得转载。
原文链接:https://mp.csdn.net/mdeditor/80458877
-
Android 中的dp、px、dip的先关概念
dp、px、dip、dpi sp相关概念
字节跳动技术团队适配方案 -
Android 四大组件有哪些、各自的作用
-
Activity的生命周期以及四种启动模式,在那些情况下使用
-
概述一下Android 的事件分发机制
-
Android 中的几种引用,以及区别
Android 四种引用比较与源码分析 -
Handler、Looper、Messge之间的关系
Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系 -
Listview缓存机制、常见的ListView的优化
ListView异步加载图片乱序问题,原因分析及解决方案
Android ListView工作原理完全解析,带你从源码的角度彻底理解 -
ListView和RecycleView的区别,谈谈对它们缓存区理解
.RecyclerView 必知必会,Android ListView 与 RecyclerView 对比浅析–缓存机制;
ListView工作原理完全解析;
RecyclerView剖析 -
Android 动画有哪些类,它们的特点和区别是什么
Android 动画有哪些类,它们的特点和区别是什么 -
谈谈对Android 布局优化的了解
-
常见的内存泄漏情况、做过哪些内存性能优化
-
遇到过哪些Fragment的问题、如何处理的
-
描述一下View的绘制原理、做过什么复杂的自定义View
-
Android 图片框架中常用的内存缓存和磁盘缓存是什么
-
Java 线程安全的单例写法;(优先)
Java 线程安全的单例写法及volatile、原子性、可见性 -
Android 中触发Gc 的几种情况,Gc的原理和策略
4种GC方法+分代回收+触发GC情况+内存申请过程
Android垃圾回收机制 -
谈谈对常用加密算法的理解
可以说说自己用过的加密算法 https用到的加密算法 -
TCP和UDP区别,http和https区别,https如何保证数据安全
TCP的三次握手与四次挥手理解
一文看懂https如何保证数据传输的安全性的(推荐) -
ConcurruenthashMap 和 SynchronizedMap
HashMap、ConcurrentHashMap和SynchronizedMap – 哈希表在Java中的同步处理 。
我总结主要两点:1.锁的数量 SynchronizedMap 一个锁锁住整个hash表,阻赛线程,降低性能,ConcurrentHashMap 多个锁 每个锁锁一个桶。2.并发修改异常 ConcurrentHashMap使用了一种不同的迭代方式。在这种迭代方式中,当iterator被创建后集合再发生改变就不再是抛出ConcurrentModificationException,取而代之的是在改变时new新的数据从而不影响原有的数据,iterator完成后再将头指针替换为新的数据,这样iterator线程可以使用原来老的数据,而写线程也可以并发的完成改变。SynchronizedMap 直接会抛出ConcurrentModificationException -
SparseArray 相比 hashMap 性能优化点在哪
SparseArray 源码解析及hashMap性能对比 -
ClassLoader加载机制
-
java中String类为什么不可变?
- String 池,缓存Test,另一个引用修改成 TEST,由于缓存在多个对象之间共享,因此始终存在风险,其中一个引用的操作会影响所有其他引用。
- 字符串作为参数,打开网络连接,文件路径,反射机制所需要的String参数等将会引起各种安全隐患
- 缓存的哈希值,将会发生变化,每次都取计算新的哈希码,无法正确获取存储的值
- String 可变会导致线程安全问题
- 最重要的是 如果字符串可变,java 类加载机制将不保证类被正确加载。
-
java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
只有在调用线程拥有某个对象的独占锁时,才能够调用该对象的wait(),notify()和notifyAll()方法。在Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity
假设wait(),notify(),notifyAll()方法不需要加锁就能够被调用。此时消费者线程调用wait()正在进入状态变量的等待队列(可能还未进入)。在同一时刻,生产者线程调用notify()方法打算向消费者线程通知状态改变。那么此时消费者线程将错过这个通知并一直阻塞。因此,对象的wait(),notify(),notifyAll()方法必须在该对象的同步方法或同步代码块中被互斥地调用。
-
new 一个对象的过程中发生了什么?
new 一个对象的过程中发生了什么?
附:
大厂Java面试题