![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 71
张启露
意志在于磨练,成功在于坚持
展开
-
Android Java 多线程常见问题
对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态 方法或者一个类的 class 对象上的。我们知道,类的对象实例可以有很多个,但 是每个类只有一个 class 对象,所以不同对象实例的对象锁是互不干扰的,但是 每个类只有一个类锁。但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存 在的,类锁其实锁的是每个类的对应的 class 对象。类锁和对象锁之间也是互不 干扰的。可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。原创 2022-09-14 15:12:28 · 675 阅读 · 0 评论 -
Android 之 Java 基础 泛型笔记
是为了参数化类型(在不创建新的类型的情况下,通过泛型指定 的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的 数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被 称为泛型类、泛型接口、泛型方法。泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参 数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时 传入具体的类型(类型实参)。......原创 2022-08-16 11:27:16 · 575 阅读 · 0 评论 -
Java中 == 号与equals()方法区别详解
== 号与equals()方法区别这个问题在面试中经常被问到,如果你了解的不透彻,很容易被问蒙。下面我们来一起看看吧。1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.引用数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的...原创 2018-08-20 18:44:27 · 1104 阅读 · 0 评论 -
Java多线程——synchronized使用详解
一 前言Java多线程是面试必考的知识点,哈哈,说的有点太绝对了,题外话不说那么多了,今天我们就来了解一下Java多线程中的synchronized。synchronized相信大家都看过或者用过,synchronized是Java中的关键字,synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性,Java中每一个...原创 2018-06-12 17:58:58 · 51673 阅读 · 6 评论 -
Java集合——LinkedList源码分析
一 前言上一篇我们介绍了ArrayList源码解析有想看的同学可以点击这个链接ArrayList源码解析。平时我们或多或少都用过LinKedList,但是对其原理不是很了解,我们就来一起学习吧。二 源码解析1. LinkedList概述LinkedList是一个实现了List接口和Deque接口的双端链表。 有关索引的操作可能从链表头开始遍历到链表尾部,也可能从尾部遍历到链...原创 2018-05-27 18:46:10 · 510 阅读 · 0 评论 -
Java集合——ArrayList源码解析
一 前言最近去2家大厂面试被虐了,被虐也在意料之中,自己也没有怎么准备,决定回来好好学习,注重细节,多读源码,切勿眼高手低。给我最大感觉是大厂特别重视基础知识,对这些基础知识的深入理解,我们平时做项目的时候,都是会用一些容器,控件,框架,对源码有点了解,但是没有深入解读,半懂不懂,这样在面试官对知识点的层层深入时,就力不从心,结局你懂得,所以我们还是要多注重细节,多读源码。 不说那么多了,我...原创 2018-05-20 17:49:09 · 653 阅读 · 1 评论 -
Java集合——HashMap底层实现与原理源码分析——JDK1.8
一 概述HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着...原创 2018-04-24 20:06:01 · 953 阅读 · 0 评论 -
Java 集合详解
Java 集合详解1.集合了解集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身。集合的长度可变。2.集合层次关系 观看上图需要注意一下 实线边框的是实现类 折线边框的是抽象类 点线边框的是接口2.1 Collection接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产...原创 2018-04-23 17:02:53 · 1901 阅读 · 0 评论 -
Java HashMap和HashTable的区别
一 定义比较public class Hashtable extends Dictionary implements Map, Cloneable, Serializablepublic class HashMap extends AbstractMap implements Map, Cloneable, SerializableHashtable继承于Dictionary字典,实现Map接口。原创 2017-06-06 11:56:50 · 470 阅读 · 0 评论 -
Java ArrayList、LinkedList、Vector的区别
一 概述ArrayList、LinkedList、Vector三者比较容易混淆,为了更好的理解和使用,我做了一下总结,先看2张图。我们可以看出ArrayList、LinkedList、Vector都实现了List的接口。 List,正如它的名字,表明其是有顺序的。当讨论List的时候,最好拿它跟Set作比较,Set中的元素是无序且唯一;List是有序的Collection,使用此接口能够精确的控制原创 2017-06-05 19:34:51 · 12095 阅读 · 0 评论 -
排序算法之简单选择排序
一 概述设所排序序列的记录个数为n,i 取 1,2,…,n-1 。 从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小(或最大)的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。二 性能分析在简单选择排序过程中,所需移动记录的次数比较少。 最好情况下,即待排序记录初始状态就已经是正序排列了,则不需要移动记录。 最坏情况下,即待排序记录初始状态是按第一条原创 2017-05-27 10:40:45 · 3106 阅读 · 0 评论 -
JAVA 注解(Annotation)详解
先来看一个Java注解的思维脑图一 注解(Annotation)基本概念和分类1.1 注解(Annotation)基本概念Annotion(注解)概念:Java 提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法。概念有点难懂,等会看具体的例子。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。原创 2017-03-20 18:07:42 · 850 阅读 · 0 评论 -
Java中String、StringBuffer、StringBuilder的区别详解
一 Java 中字符串的不变性String 字符串常量,字符串长度不可变。 字符串的不变性:String 对象创建后则不能被修改,是不可变的。 你肯定在想不对吧,字符串可以重新赋值修改。下面我们就来详细说说。 重新赋值修改字符串其实是创建了新的对象,所指向的内存空间不同。 我们来看个图,更容易理解一点String str1 ="Hello World"声明了一个字符串对象, str1 存放了原创 2017-04-05 15:23:25 · 1451 阅读 · 0 评论 -
JAVA反射系列之 Class 类你了解吗
一前言反射中我们经常看到这样的代码 Class.forName("classname"),这个 Class 是啥?是不是感觉很模糊,说不上来,下面我们来一起了解一下。二 Class 详解先来看个问题 类是对象吗? 类的对象是什么? 这个问题有点奇怪,思考一下。 答案是:类是对象,类是Java.lang.Class类的实例对象。万事万物皆对象。Class 类的构造原创 2017-03-02 15:10:59 · 482 阅读 · 0 评论 -
JAVA代理-静态代理和动态代理详解
一 前言代理在我们Java和Android学习中经常用到,例如Android插件化用到了大量的代理。代理包含静态代理和动态代理,我先来了解一下静态代理。二 静态代理2.1 什么是静态代理代理和被代理对象在代理之前就是确定的,他们都实现相同的接口或者继承相同的抽象类。2.2 实现静态代理方式(1)继承法:代理类直接继承被代理类,实现其原有方法,并添加一些额外功能。 (2)聚合方法:代理类实现相同的功原创 2017-03-13 15:58:33 · 1607 阅读 · 0 评论