此文无广,收集并写下来的目的是为了自己查缺补漏,如果能帮到迷茫的你,不胜荣幸。
一.Java的Object类有哪些方法
1.getClass()方法 在运行时获取,返回一个class对象。通过这个对象可以获取他的属性、方法
2.hashCode()方法 返回对象的哈希值。一般用于比较两个对象的哈希值是否相等
3.equals()方法 返回布尔类型。一般用途是比较两个对象的内存地址是否相等,在没有重写的情况下等价于"=="
4.clone()方法 返回一个对象。用途是复制一个对象,新开辟一个相同大小的空间,生成一个和源对象相等的对象
5.toString()方法 返回所属类的类名 + @ + hashCode值。这个返回值一般没有业务需求,所以一般在具体类里要重写toString方法,满足个人使用需求。
6.wait()方法 没有返回值。让当前线程进入等待状态,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法
7.notify() 方法 没有返回值。任意唤醒一个在此对象监视器上等待的线程。
8.notifyAll() 方法 没有返回值。用于唤醒在该对象上等待的所有线程。
二.为什么要有hashCode方法,hash算法的原理是什么,在Java中哪些地方用到,HashMap的源码
1.HashCode方法是为了获得HashCode,而HashCode的存在主要是为了查找的快捷,hashCode()被设计用来使得哈希容器能高效的工作。也只有在哈希容器中,才使用hashCode()来比较对象是否相等,但要注意这种比较是一种弱的比较,还要利用equals()方法最终确认。
2.Hash算法的原理是把输入空间的值映射到Hash空间内,可用于安全加密、数据校验、负载均衡等
3.HashMap源码解析请移步 HashMap底层实现和原理(源码解析)_裸睡的鱼-CSDN博客_hashmap的底层原理Note:文章的内容基于JDK1.7进行分析,1.8做的改动文章末尾进行讲解。大家可以看一下:https://www.imooc.com/article/267756一、先来熟悉一下我们常用的HashMap1、概述HashMap基于Map接口实现,元素以键值对的方式存储,并且允许使用null 建和null 值, 因为key不允许重复,因此只能有一个键为null,另外HashMap不...https://blog.csdn.net/qq_41345773/article/details/92066554
三.Java有几种锁,Synchronized与Lock有什么区别,Lock的实现原理,有没有碰到死锁的情况
1.Java锁 【面试】你知道Java里有多少种锁吗?(15种锁最全总结)_程序员小乐-CSDN博客点击上方 "程序员小乐"关注,星标或置顶一起成长每天凌晨00点00分,第一时间与你相约每日英文I hate hearing something that absolu...https://blog.csdn.net/xiaoxiaole0313/article/details/1039005852. 首先synchronized是java内置关键字,在jvm层面,Lock是个java类;synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()方法释放锁),否则容易造成线程死锁; 用synchronized关键字的两个线程1和线程2,如果当前线程1获得锁,线程2线程等待。如果线程1阻塞,线程2则会一直等待下去,而Lock锁就不一定会等待下去,如果尝试获取不到锁,线程可以不用一直等待就结束了;synchronized的锁可重入、不可中断、非公平,而Lock锁可重入、可判断、可公平(两者皆可);Lock锁适合大量同步的代码的同步问题,synchronized锁适合代码少量的同步问题。
3.Lock实现原理
四.Android源码中用到了哪些设计模式,举例说明
1.属于平时码代码途中多观察多思考才能发现android源码中使用到的设计模式(创建型) - 简书1.单例模式 1.1定义 确保某个类只有一个实例,而且自行实例化并向整个系统提供者个实例。 1.2单例的形式 饿汉模式:第一次就加载,用空间换时间。 懒汉模式:只有在调用的时...https://www.jianshu.com/p/02fe82f9f5b0
五.一个Android应用正常启动有多少个线程?
六.Binder机制的实现思想
七.简单描述Https的实现思路
郭神的