java基础
文章平均质量分 78
Wayyyyyyyy
Java程序猿 积累 沉淀
展开
-
Spring 循环依赖和三级缓存
作者:Java程序猿阿谷链接:https://zhuanlan.zhihu.com/p/157611040来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃不掉。如果你回答得好,那么这就是你的必杀技,反正,那就是面试官的必杀技,这也是取这个标题的原因,当然,本文的目的.转载 2021-01-19 11:34:14 · 372 阅读 · 0 评论 -
CountDownLatch怎么使用?一个简单的Demo与使用注意事项
前言在工作中,大家应该比较少用到CountDownLatch,但是CountDownLatch在面试中或者多线程的相关知识点面试中还是经常被问到,所以这次跟大家复习一下CountDownLatch的简单使用。什么是CountDownLatch(线程计数器 )CountDownLatch 类位于 java.util.concurrent 包下,利用它可以实现类似计数器的功能。比如有一个任务 A,它要等待其他 4 个任务执行完毕之后才能执行,此时就可以利用 CountDownLatch.原创 2020-07-09 16:17:46 · 818 阅读 · 0 评论 -
HashMap?ConcurrentHashMap?相信看完这篇没人能难住你!
前言Map 这样的Key Value在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。HashMap众所周知 HashMap 底层是基于数组 + 链表组成的,不过在 jdk1.7 和 1.8 中具体实现稍有不同。Base 1.71.7 中的数据结构图:先来看看 1.7 中的实现。...转载 2020-07-09 13:58:04 · 86 阅读 · 0 评论 -
Java关于^的坑
在平时运算中,大家都习惯^就是“次方运算”,比如10^2 = 100,2^3=8 。但是这在Java中甚至说在计算机中,^并不是表示“次方运算”,而是表示 二进制位数运算中,如果相对应位值相同,则结果为0,否则为1,也就是计算机中异或运算符 “^”,用于逻辑运算^ 如果相对应位值相同,则结果为0,否则为1 如,(60 ^ 13)得到49,即 0011 0001 ...原创 2020-01-02 13:49:48 · 661 阅读 · 0 评论 -
Java子类能不能继承父类synchronized关键字?
今天在Github 看Java synchronized方面的知识总结时看到一个有趣的说法“子类不能继承父类的synchronized关键字”我心里的第一个想法是:为什么子类不能继承父类的synchronized关键字呢于是我决定用代码实践一下 首先,我先放上测试类主类的代码,运行哪个则注释其余的代码:package com.way.test;public cla...原创 2018-12-01 22:00:48 · 3009 阅读 · 0 评论 -
为什么重写equals()的同时还得重写hashCode()
这个问题之前我也很好奇,不过最后还是在书上得到了比较明朗的解释,当然这个问题主要是针对映射相关的操作(Map接口)。学过数据结构的同学都知道Map接口的类会使用到键对象的哈希码,当我们调用put方法或者get方法对Map容器进行操作时,都是根据键对象的哈希码来计算存储位置的,因此如果我们对哈希码的获取没有相关保证,就可能会得不到预期的结果。在java中,我们可以使用hashCode()来获取...原创 2018-11-29 11:43:46 · 158 阅读 · 0 评论 -
通过代码简单介绍Java反射
1.Java 反射概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java 反射是很多Java框架的基础和实现,所以掌握java反射对框架的理解有很大的作用 2.三种获取Class类对象的方式1.(最常用)Class.for...原创 2018-09-06 14:13:34 · 172 阅读 · 0 评论 -
java数组声明与初始化定义以及要注意的地方
平时工作中都是用List等包装类打交道比较多,用数组则比较少,今天使用数组时差点就忘记了数组的定义,所以现在来复习一下。下面其中有一些知识是来源网络,具体地址我忘了,在这里多谢一下那位兄弟吧。1.声明数组通常声明一个数组有两种形式:(1).类型名[ ] 数组名 (2).类型名 数组 [ ] 我个人偏向第一种声明方法,而第二种更像是c++的数组声明由于声明仅仅是声明,ja...原创 2018-09-04 16:14:00 · 769 阅读 · 0 评论