- 博客(32)
- 收藏
- 关注
原创 linux系统安装mysql8(详细教程)
作者:ChenZhen版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。这里我用的发行版是centos7 不同版本用的指令可能会有些不同。
2023-10-26 12:58:18
1039
原创 Linux安装JDK1.8(看这一篇就够了) 附安装包下载地址
微信关注公众号:大数据面试宝典,回复888进入学习交流群。领取免费需学习资料,还可以向博主提问哦~
2023-10-26 12:19:47
663
原创 JVM的运行原理
由于JVM的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现,因此在任何一个确定的时刻,一个处理器(多核处理器则指的是一个内核)都只会执行一条线程中的指令。因此为了切换线程后能恢复到正确的执行位置,每条线程都需要独立的程序计数器,各条线程之间计数器互不影响,独立存储。我们就把类似这类区域称之为"线程私有"的内存。
2023-10-25 23:55:04
146
原创 JVM性能调优详解
前面我们学习了整个JVM系列,最终目标的不仅仅是了解JVM的基础知识,也是为了进行JVM性能调优做准备。这篇文章带领大家学习JVM性能调优的知识。
2023-10-25 23:33:40
84
原创 JVM内存结构
为了更容易管理方法区,从 JDK 1.8 开始,移除永久代,并把方法区移至元空间,它位于本地内存中,而不是虚拟机内存中。例如下图中的JVM指令,当我执行到地址为0的指令时,程序计数器就会存下下一条指令的地址,也就是地址3。要注意的是,程序计数器时线程私有的,每一个线程都有一个程序计数器,只有这么设计,当CPU因为时间片轮转等原因切换线程的时候,才能保存当前线程的执行进度。运行时常量池,常量池是 *.class 文件中的,当该类被加载,它的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址。
2023-10-18 02:56:02
33
原创 JVM内存模型和结构详解(五大模型图解)
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一个虚构出来的计算机,有着自己完善的硬件架构,如处理器、堆栈等。
2023-10-18 00:49:28
68
原创 jvm G1 深度分析
本文首先简单介绍了垃圾收集的常见方式,然后再分析了G1收集器的收集原理,相比其他垃圾收集器的优势,最后给出了一些调优实践和相关参数列表。
2023-10-18 00:31:09
93
原创 Java面试题大汇总
整理这些面试题源于在微信群和几个刚入职的小伙伴们的一次讨论,很多小伙伴谈了自己的面试经历和体会,很多人最初鄙视刷题党,觉得开发技能最重要,但在短暂的面试过程中很挫败。转而去看面试题,但是网上面试题太多但又不全,查找很不方便,多是看过的又看,看十道才能看到面生的题目,极大的浪费了求职期间的宝贵时间。93,Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分别是做什么的?48、垃圾回收器的基本原理是什么?
2023-10-13 12:11:21
39
原创 Java面试题总结 - Java集合篇(附答案)
这样一来,当集合添加新的元素时,先调用这个元素的hashcode()方法,就一下子能定位到他应该放置的物理位置上。(2)List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set 的Object必须定义equals()方法 ,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想要的值。
2023-10-12 00:04:53
75
原创 Java面试题入职总线---总目录
?????——>领取专属粉丝福利????专栏简介:Java攻城狮们的面试福音,全程干货,原价99.9¥,限时49.9¥??火爆订阅中,Java最详细面试汇总,由深到浅讲解,专栏最终文章数不低于50篇,专栏持续更新,面试官绞肉机??博主简介:白大锅,从事Java领域多年,Java领域优质创作者、阿里云专家博主、华为云享专家,热衷Java、Js三十年??粉丝福利:文末公众号可领取众多面试资料/简历模板/以及博主私人微信。
2023-10-11 17:48:29
31
原创 Java面试经验总结
最近3个月一口气面了十几家公司的Java开发岗,大大小小的面试笔试加起来快20场,收获很多。本人即将毕业,在一家国企实习做java开发,感觉自己很水,刚开始面试时发现自己掌握的东西与外面企业流行的技术有些代差,所以一边面试一边总结,感觉面试时问的东西明显和自己平常了解的不太一样,所以给自己做了一个总结,希望对以后的面试有所启发。
2023-10-11 13:34:53
35
原创 Java进阶--IO流
我们把数据的传输,可以看做是种数据的流动,按照流动的向,以内存为基准,分为输input 和输出output ,即流向内存是输流,流出内存的输出流。Java中I/O操作主要是指使java.io包下的内容,进输、输出操作。输也叫做读取数据,输出也叫做作写出数据。
2023-10-11 11:45:06
30
1
原创 Java学习路线总结,搬砖工逆袭Java架构师
?作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师、博客专家??,专注Java硬核干货分享,立志做到Java赛道全网Top N。??本文收录于,,目前已经700+订阅,CSDN最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。??姐妹篇,,包含面向对象、基本数据类型、数组、继承和多态、泛型、枚举等Java基础知识点。??姐妹进阶篇,
2023-10-10 13:09:02
122
2
原创 Java多线程实现的四种方式
线程实现方式2:通过实现Runnable接口,实现run方法,接口的实现类的实例作为Thread的target作为参数传入带参的Thread构造函数,通过调用start()方法启动线程。b:创建Callable实现类的实现,使用FutureTask类包装Callable对象,该FutureTask对象封装了Callable对象的Call方法的返回值。后面两种可以归结成一类:有返回值,通过Callable接口,就要实现call方法,这个方法的返回值是Object,所以返回的结果可以放在Object对象中。
2023-10-10 12:23:23
37
1
原创 Java中JVM虚拟机详解
它等价于C语言中的栈, 栈的内存地址是不连续的, 每个线程都拥有自己的栈。方法区域存放了所加载的类的信息(名称、修饰符等)、类中的静态变量、类中定义为final类型的常量、类中的Field信息、类中的方法信息,当开发人员在程序中通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区域,同时方法区域也是全局共享的,在一定的条件下它也会被GC,当方法区域需要使用的内存超过其允许的大小时,会抛出OutOfMemory的错误信息。
2023-10-10 10:00:29
172
1
原创 C++多线程中的join, detach, joinable
thread是C++11中提供多线程编程的模块,使用的时候需要包含头文件。首先我们先来看一下简单的hello world的多线程的代码(win10下vs2019)这个创建的方式就是以函数作为一个入口,创建了一个子线程,那么创建的语句就是第11行代码所示,所传入的参数就是入口的函数名。在创建了这个子线程之后,这个子线程就开始运行了,同时主线程也不停的往下运行,当碰到t.join()这句代码的时候,就表示主线程需要等待子线程运行结束回收掉子线程的资源后,再往下运行,否则就会产生一种情况:当子线程还没有运行完主线
2023-10-09 23:49:15
178
1
原创 C++11多线程知识点总结
原子性,顾名思义,指的就是不可分割的操作,多个操作要么一起执行,要么就都不执行。有了之前的概念,我们可以想象,当几个线程或者进程在并发执行时,如果我们不加任何干预措施,那么他们的执行顺序是由系统当时的环境来决定的,所以不同时间段不同环境下运行的顺序都会不尽相同,这便是异步(有差异的步骤)。一提到多线程一般大家的第一感觉就是可以提升程序性能,在实际的操作中往往遇到性能的问题,都尝试使用多线程来解决问题,但多线程程序并不是在任何情况下都能提升效率,在一些情况下恰恰相反,反而会降低程序的性能。
2023-10-09 23:48:26
145
1
原创 C++11多线程join()和detach()的理解
每一个程序至少拥有一个线程,那就是执行main()函数的主线程,而多线程则是出现两个或两个以上的线程并行运行,即主线程和子线程在同一时间段同时运行。主线程先运行结束子线程先运行结束主子线程同时结束在一些情况下需要在子线程结束后主线程才能结束,而一些情况则不需要等待,但需注意一点,并不是主线程结束了其他子线程就立即停止,其他子线程会进入后台运行。
2023-10-09 23:47:29
1341
1
原创 2023年最新最全Java面试八股文整理,不全你来打我
注:篇幅有限,资料已整理成文档,需要的小伙伴点击下方小卡片,我是乐于分享干货的后端打工人,持续输出学习干货和面试经验。
2023-10-09 23:08:34
663
4
原创 Java面经整理
不能,因为static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的abstract。ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。**在添加大量元素前,应用程序可以使用操作来增加 ArrayList 实例的容量。**这可以减少递增式再分配的数量。它继承于,实现了ListCloneable这些接口。在我们学数据结构的时候就知道了线性表的顺序存储,插入删除元素的时间复杂度为O(n)
2023-10-09 22:47:20
49
1
原创 Java面试官最爱问的volatile关键字
该问题涉及到Java内存模型(JVM)和它的内存可见性特性,这里将前面系列《Java内存模型(JMM)详解》和《Java内存模型相关原则详解》中的部分内容整理出来回答。Java虚拟机规范试图定义一种Java内存模型(JMM),来屏蔽掉各种硬件和操作系统的内存访问差异,让Java程序在各种平台上都能达到一致的内存访问效果。Java内存模型是通过变量修改后将新值同步回主内存,在变量读取前从主内存刷新变量值,将主内存作为传递媒介。可举例说明内存可见性的过程。
2023-09-15 18:24:13
24
1
原创 Java面试--进程间的通信方式
有些进程希望完全控制另一个进程的执行(如 Debug 进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。用于通知接收进程某个事件已经发生,主要作为进程间以及同一进程不同线程之间的同步手段。套接字也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同机器间的进程通信。名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。一个进程需要将它的数据发送给另一个进程。
2023-09-15 18:00:55
54
1
原创 Dubbo详解,用心看这一篇文章就够了【重点】
Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用) 分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。简单的说,Dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有Dubbo这样的分布式服务框架的需求。并且本质上是个远程服务调用的分布式框架(告别模式中的WSdl,以服务者与消费者的方式在Dubbo。
2023-09-14 21:16:07
1163
1
原创 Java线程池面试题
java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。
2023-09-14 19:01:10
31
1
原创 Java线程面试题合集(含答案)
新的优先级较高的线程抢占(preempt)了其他线程。并发容器使用了与同步容器完全不同的加锁策略来提供更高的并发性和伸缩性,例如在ConcurrentHashMap中采用了一种粒度更细的加锁机制,可以称为分段锁,在这种锁机制下,允许任意数量的读线程并发地访问map,并且执行读操作的线程和写操作的线程也可以并发的访问map,同时允许一定数量的写操作线程并发地修改map,所以它可以在并发环境下实现更高的吞吐量。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。
2023-09-12 16:57:47
25
原创 Java线程池面试题
java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。
2023-09-12 16:57:12
30
原创 牛客网最热门的 Java 面试题库(附答案),终于整理好了
网上有太多的 Java 面试题库了,但是大部分潦潦草草,没有知识储备得很难看下去,看完后也不会留下印象。有没有这样的题库?
2023-03-01 21:56:27
519
原创 Java最新面试题大全
定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。(expires字典会保存所有设置了过期时间的key的过期时间数据,其中,key是指向键空间中的某个键的 指针,value是该键的毫秒精度的UNIX时间戳表示的过期时间。键空间是指该Redis集群中保存的所有键。第二:使用volatile关键字的话,当线程2进行修改时,会导致线程1的工作内存中缓存变量stop的缓存行无效(反映到硬件层的话,就是CPU的L1或者L2缓存中对应的缓存行无效);
2023-03-01 21:33:18
97
原创 Java 面试题经典 77 问(含答案)!
25、数组(Array)和列表(ArrayList)有什么区别?6、Java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?37、Java堆的结构是什么样子的?38、串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?21、快速失败(fail–fast)和安全失败(fail–safe)的区别是什么?70、什么是JSP指令(Directive)?1、什么是Java虚拟机?23、hashCode()和equals()方法的重要性体现在什么地方?
2023-02-17 22:15:25
165
1
原创 Java中两个字符串进行大小比较
compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序)1、如果字符串相等返回值02、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串)3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度.二:字符串是否相等比较只能使用equals()方法,不能使用“==”。参考:ht
2022-12-22 18:36:22
12539
原创 2019中原银行java实习面试
大二结束了,暑假如果能找一个IT的实习职位就再好不过了。笔者坐标郑州,中原银行总行所在地,该银行在暑期有招收暑期实习生的计划,在其官网上发布后,又去郑州大学总部进行了宣讲,总行招人共分三类职位,信息技术类、数据类(最低申请要求为研究生以上学历)以及职能业务类。投递了信息技术类的简历,虽然中间有些波折,但最后好歹是收到了简历通过筛选的通知,被通知于7月3号进行一面,形式为视频面试。期末备考一个月,没怎么敲代码,慌的要死,7月2号考完最后一课,连夜恶补之前学的框架原理等知识。
2022-11-27 22:23:06
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人