摘要: 成员变量其赋值和取值的顺序具有不确定性,可以在方法调用前赋值,也可以在方法调用后赋值,其具体顺序是在运行时发生的,编译器确定不了; 而局部变量,赋值、取值顺序确定。所以局部变量赋值使用,是一种设计约束,可以减少犯错的可能性。同时局部变量存放到栈帧的局部变量表中,可控的赋值和销毁有利于局部变量表空间复 阅读全文
posted @ 2022-05-03 23:13 FOEVERYANG 阅读(88) 评论(0) 推荐(0) 编辑
摘要: java是面向对象的编程语言,那么让我们来回答一下下面的问题: 什么是对象; 对象和类有什么不同; 什么是面向对象的编程; 什么是面向对象的编程语言; 面向对象编程的基本特性有哪些,请分别说明; 如果你是一个工作多年的java程序员,你肯定对这些问题不陌生并且有自己的独特理解,但是如何将大脑中的概念 阅读全文
posted @ 2022-05-03 22:32 FOEVERYANG 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 类加载 Java是运行在Java的虚拟机(JVM)中的,在初步学习Java时,我们都知道,编写的Java源代码会被编译器编译成.class的字节码文件。然后ClassLoader负责将这些class文件给加载到JVM中去执行。 JVM中提供了三层的ClassLoader: Bootstrap cla 阅读全文
posted @ 2022-04-17 19:30 FOEVERYANG 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLo 阅读全文
posted @ 2022-04-01 16:40 FOEVERYANG 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 先看依赖结构图 按照锁的划分ReentrantLock是可重入锁; 所谓重入锁,指的是以线程为单位,当一个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,而其他的线程是不可以的。 首先上一下测试代码 private static final Lock lock=new ReentrantLoc 阅读全文
posted @ 2022-04-01 16:08 FOEVERYANG 阅读(85) 评论(0) 推荐(0) 编辑
摘要: B树(balance tree)和B+树,可以认为是N叉多路平衡排序查找树。 这里的N是相对于二叉树中的二来说的,B树和B+树的典型应用场景是数据库引擎的索引结构。但是从理论上讲,二叉树查找速度和比较次数都是最小的,为什么不用二叉树呢? 因为我们要考虑磁盘IO的影响,它相对于内存来说是很慢的。数据库 阅读全文
posted @ 2022-03-09 17:54 FOEVERYANG 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 要了解SpringSession首先要知道什么事HttpSession以及其存在的问题: 什么是 HttpSession 是 JavaWeb 服务端提供的用来建立与客户端会话状态的对象。 什么是 Session 共享 是指在一个浏览器访问多个 Web 服务时,服务端的 Session 数据需要共享。 阅读全文
posted @ 2020-07-09 14:28 FOEVERYANG 阅读(989) 评论(0) 推荐(0) 编辑
摘要: 基于实践说规范 网上看了一些OAuth 2.0的授权方法,尽管讲解的没有什么逻辑性错误,但是存在一个问题,那就是单纯的讲解协议规范却脱离了实际的应用,缺少干货,所以才有了这篇文章,内容基于实际业务进行讲解,力求基于实践说规范 OAuth 2.0 OAuth 引入了一个授权层,用来分离两种不同的角色: 阅读全文
posted @ 2020-07-06 16:14 FOEVERYANG 阅读(1194) 评论(0) 推荐(2) 编辑
该文被密码保护。 阅读全文
posted @ 2020-04-23 16:25 FOEVERYANG 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 开篇明意 ThreadLocal是JDK包提供的线程本地变量,如果创建了ThreadLocal<T>变量,那么访问这个变量的每个线程都会有这个变量的一个副本,在实际多线程操作的时候,操作的是自己本地内存中的变量,从而规避了线程安全问题。 ThreadLocal很容易让人望文生义,想当然地认为是一个“ 阅读全文
posted @ 2019-11-22 17:21 FOEVERYANG 阅读(1310) 评论(0) 推荐(1) 编辑