面试问题
文章平均质量分 69
向上的狼
目前大四, 自学编程,非计算机专业,在这里分享我的学习路程.
展开
-
锁与CAS详解
一. 悲观锁与乐观锁乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官。乐观锁和悲观锁是两种思想,主要是解决并发场景下的数据争夺的问题。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如果别人修改了数据则放弃操作,否则执行操作。 悲观锁:悲观锁在操作数据时比较悲观,认转载 2022-04-29 11:47:25 · 452 阅读 · 0 评论 -
java中的局部变量和成员变量在内存中的位置
首先在这里先问大家一个问题: "java中的基本数据类型一定存储在栈中的吗?".其实答案是不然的, 并不是;基本数据类型是放在栈中还是放在堆中,这取决于基本类型在何处声明,下面对数据类型在内存中的存储问题来解释一下:一:局部变量在方法中声明的变量,即该变量是局部变量,每当程序调用方法时,系统都会为该方法建立一个栈帧,其所在方法中声明的变量就放在栈帧中,当方法结束系统会释放该栈帧,其对应在该方法中声明的变量随着栈帧的销毁而结束,这就局部变量只能在方法中有效的原因.1.1 在方法中声明的变.转载 2021-12-04 09:55:23 · 2541 阅读 · 0 评论 -
java中基本数据类型跟Object的关系
Java中基本数据类型和Object之间的关系我知道大家是不是都听说过Object是所有类型的基类, 但是这句话其实并不是正确的, 因为java中基本数据类型跟Object是没有任何关系的.这里举一个例子这里在进行调用swap方法时, 是不能直接将int类型传给swap(Object obj)方法的, 因为Object其实跟基本数据类型没有一点关系, 这个时候a就发现我们类型不匹配, 所以就自动包装成了Integer类型了, 这个时候就能跟Object产生联系了, 才能成功调用swap方法了原创 2021-11-15 19:30:07 · 1321 阅读 · 1 评论 -
数据结构|数组为什么检索这么快?
一: 文章开头问一下各位几个问题问题1: 数组到底哪里快?查找快吗?可能有的同学第一反应利用数组进行查找的话,时间复杂度为O(1)呀。但是你仔细想想,这样说对吗?即使我们对一个已经排好序的数组通过二分查找法进行查找,时间复杂度也为O(logn)。我们更准确的说法是,数组通过角标进行随机访问的时间复杂度为O(1)。那么接下来进入我们要探讨的问题2: 为什么数组能支持随机访问呢?换而言之,为什么数组能直接通过角标访问元素呢?答案:数组占用的内存空间是连续的 数组中都为同一类型的元素二..转载 2021-11-09 18:50:02 · 1378 阅读 · 0 评论 -
字符串常量池, class常量池, 运行时常量池的区别与联系
简介:这几天在看Java虚拟机方面的知识时,看到了有几种不同常量池的说法,然后我就去CSDN、博客园等上找资料,里面说的内容真是百花齐放,各自争艳,因此,我好好整理了一下,将我自认为对的理解写下来与大家共同探讨:在Java的内存分配中,总共3种常量池:1.字符串常量池(String Constant Pool):1.1:字符串常量池在Java内存区域的哪个位置?在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中; 在JDK7.0版本,字符串常量池被移到转载 2021-08-23 11:57:25 · 414 阅读 · 0 评论 -
JVM的5种垃圾回收算法、垃圾回收机制与总结
垃圾回收算法(1)引用计数算法比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。(2)复制算法从根集合节点进行扫描,标记出所有的存活对象,并将这些存活的对象复制到一块儿新的内存(图中下边的那一块儿内存)上去,之后将原来的那一块儿内存(图中上边的那一块儿内存)全部回收掉现在的商业虚拟机都采用这种收集算法来回收新生代。适用场合:1: 存活对象较少的情况下比较高效.原创 2021-08-22 13:00:11 · 4989 阅读 · 0 评论 -
带你了解父子类的静态代码块(static)和非静态代码块的执行
类中还存在两种特殊的代码块,即非静态代码块和静态代码块,前者是指直接由{ }括起来的代码,后者是指由static{ }括起来的代码。package com.Block;class Parent{ static String name="hello"; { System.out.println("parent Bolock 3"); } static { System.out.println("parent static blo原创 2021-07-24 17:28:11 · 591 阅读 · 0 评论