自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 秋招马上要来啦 给大家分享一下我的学习笔记

秋招马上就要开始了,最后有很多同学私信问我秋招应该如何做准备?由于学生在学校没有机会接触到实际项目,在学习方向,内容,就业的标准方向都不是很明确,现在公司招人的标准越来越高,而大学里面的内容过于基础,且偏重理论,所以学到的往往和公司需要的技术不匹配。很多学生虽然在学校很努力地学习,但是临近毕业,才发现自己所学内容并不能找到一份满意的工作。那么从现在开始就要不断地刷题了,当然简历的投放也是非常重要的。以下就是我应对秋招大厂的学习笔记,已经反复看了几十遍。内容包括:Java 基础:mysql八股文、jv

2022-05-20 16:50:15 161

原创 经典 Kafka 架构调优最常见的5个问题

导语本文是一篇kafka的干货向内容,作者详细的梳理了kafka架构调优的5个经典问题,不论在工作中还是在找工作面试中都是非常经典的问题,希望大家能熟读本篇文章!正文Kafka 架构调优5问了解Kafka超高并发网络架构是如何设计吗?我们知道 Kafka 网络通信架构使用到了 Java NIO 以及 Reactor 设计模式。我们先从整体上看一下完整的网络通信层架构,如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ay3ie4tz-16530364666

2022-05-20 16:48:34 398

原创 一文了解JVM全部垃圾回收器,从Serial到ZGC

现代的商用虚拟机的都是采用分代收集的,不同的区域用不同的收集器。常用的7种收集器,其适用的范围如图所示Serial、ParNew、ParallelScavenge用于新生代;CMS、SerialOld、ParalledOld用于老年代。并且他们相互之间以相对固定的组合使用(具体组合关系如上图)。G1是一个独立的收集器不依赖其他6种收集器。ZGC是目前JDK11的实验收集器。下面来看看各个收集器的特性Serial收集器Serial,是单线程执行垃圾回收的。当需要执行垃圾回收时,程序会暂停一切手上

2022-05-19 08:03:13 198

原创 java中级面试题 含答案

一、Java笔试题基础1. Java中的异常有哪几类?分别怎么使用?检出异常,非检出异常。检出异常需要try…catch才能编译通过。非检出异常不用try…catch也能编译通过。RuntimeException是非检出异常,不需要try…catch也能编译通过。IoException,SQLException等等其他所有异常都是检出异常,必须要try…catach才能编译通过。2. 常用的集合类有哪些?比如List如何排序?分两种,一种实现Set接口,一种是实现List接口的。Set:Tre

2022-05-19 07:59:52 2105

原创 java高频152道面试题,具体的内容。(值得收藏)

具体面试题下面一起来看 152 道面试题,具体的内容。一、Java 基础1.JDK 和 JRE 有什么区别?2.== 和 equals 的区别是什么?3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?4.final 在 java 中有什么作用?5.如何将字符串反转?6.String 类的常用方法都有那些?7.抽象类必须要有抽象方法吗?8.普通类和抽象类有哪些区别?9.抽象类能使用 final 修饰吗?10.接口和抽象类有什么区别?11.File

2022-05-18 17:31:30 187

原创 SpringBoot:实现MyBatis分页

综合概述想必大家都有过这样的体验,在使用Mybatis时,最头痛的就是写分页了,需要先写一个查询count的select语句,然后再写一个真正分页查询的语句,当查询条件多了之后,会发现真的不想花双倍的时间写 count 和 select,幸好我们有 pagehelper 分页插件,pagehelper 是一个强大实用的 MyBatis 分页插件,可以帮助我们快速的实现MyBatis分页功能,而且pagehelper有个优点是,分页和Mapper.xml完全解耦,并以插件的形式实现,对Mybatis执行的流

2022-05-18 17:30:42 125

原创 从高级程序员-资深程序员-技术总监,我都为你整理好了学习路径

我把程序员到架构师的技术成长之路分为几个典型的阶段:程序员 - 高级程序员 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构师工程师【阶段描述】推荐《Java 编程思想》这个阶段的核心学习思想就是,在工作中实践,并且更加深入的了解Java基础。【成长指导】工程师阶段是最原始的“基础技能积累阶段”,主要积累基础知识,包括编程语言、编程工具、各类系统的基本使用。以 Java 后端工程师为例,工程师阶段需要积累的经验和技能有:Java 的语法、基本数据结构的使用。Eclipse、IDEA

2022-05-17 17:45:50 150

原创 常见面试题八股文归总,面试助你走上30k

各大论坛和社区里看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。俗话说得好,他山之石,可以攻玉,多看多借鉴还是有帮助的,这次腾讯也在疯狂招人!肝完这份八股文,38K妥了!这份总结内容涵盖极广,包含了 14 个技术栈:基础篇JVM 篇多线程 &并发篇Spring 篇MyBatis 篇Spring Boot 篇MySQL 篇Redis 篇Spring Cloud 篇Nginx 篇

2022-05-17 17:43:56 3436 43

原创 Java内存区域(运行时数据区域)和内存模型(JMM)

Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分。而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之间的抽象关系,即 JMM 定义了 JVM 在计算机内存(RAM)中的工作方式,如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java运行时数据区域众所周知,Java 虚拟机有自动内存管理机制,如果出现内存泄漏和溢出方面的问题,排查错误就必须要了解虚拟机是怎样使用内存的。下图是 JDK

2022-05-16 16:19:02 478

原创 别再问什么是Java内存模型了,看这里

网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内存模型是什么,为什么要有Java内存模型,Java内存模型解决了什么问题等。本文中,有很多定义和说法,都是笔者自己理解后定义出来的。希望能够让读者可以对Java内存模型有更加清晰的认识。当然,如有偏颇,欢迎指正。1、为什么要有内存

2022-05-16 16:14:53 74

原创 javaEE常用开源框架的认识及概述,带你深入探索Java开发世界

什么是框架通俗的理解,框架是我们软件开发中的一套解决方案,不同的框架解决的问题是不同的,比如MyBatis框架解决的是持久层的问题,springMVC框架解决的是表现层的问题。需要注意的是,框架它本身自己是不能实现业务上的功能,它只能对,比如说持久层、表现层、结构合理性等等,提供一些解决方案,而真正的业务层部分,还需要程序员自己来提供。所以说,框架可以理解为一个半成品,我们选用这个半成品,然后加上业务需求(即项目中的需求)来最终实现整个的功能。而我们使用框架的目的其实也很简单,就是为了提高开发的效率,

2022-05-14 17:42:28 2401

原创 想进大厂的朋友请注意 Java多线程面试题来袭,跳槽涨薪必备法器

前言最近有很多粉丝留言,说想要笔者更新一些面试常见误区,大家一起归类整理,看是否是自己的短板,是的话争取吃透,不是的话也可以借鉴一下,也是对自己知识面的一个充实。好了,话不多说,直接开始干货。1. 并行和并发有什么区别?并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群。所以并发编程的目标是充分的利用处理器的每

2022-05-14 17:41:39 112

原创 月薪2W起,年薪超30W的大厂岗位,面试小技巧在这里~

在互联网从业者中,流传着一份互联网公司名单,不是按照市值、人员规模排序,而是按照待遇。在他们心中,排在第一梯队的是,字节跳动、腾讯、阿里,第二梯队是拼多多、快手、滴滴,其次是美团、小米、京东。这是互联网基层从业者的跳槽指南。大部分从业者会从小厂跳槽二线最后跳到大厂,以期自己可以享受到行业发展带来的红利。大厂,是绝大多数互联网从业者们,心中的“白月光”。大厂收入足以对抗通货膨胀就算超负荷得加班透支了对生活的热情,就算被PUA压得人喘不过气来,依旧有数不尽的年轻血液,将最好的光景交付给互联网,他们相信在这里

2022-05-13 18:33:10 130

原创 超赞 不愧是美团内部的JVM学习手册,从头到尾全是精华

Hello,今天给各位童鞋们分享的是JVM,赶紧拿出小本子记下来吧一、内存溢出内存溢出的原因:程序在申请内存时,没有足够的空间。1. 栈溢出方法死循环递归调用(StackOverflowError)、不断建立线程(OutOfMemoryError)。2. 堆溢出不断创建对象,分配对象大于最大堆的大小(OutOfMemoryError)。3. 直接内存JVM 分配的本地直接内存大小大于 JVM 的限制,可以通过-XX:MaxDirectMemorySize 来设置(不设置的话默认与堆内存最大

2022-05-13 18:31:39 133

原创 一个Java类在运行时候,变量是怎么在JVM中分布的呢?

Java虚拟机的内存模型(JMM)是什么样的.通过前面两篇文章的学习,我们知道了一个Java类的生命周期及类加载器。我们可以得到如下两幅图:类生命周期:编辑父类委托机制:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zDQ8gkqP-1652437267601)(https://upload-images.jianshu.io/upload_images/27964194-9bfc6f920e2a7f43.png?imageMogr2/auto-orient/st

2022-05-13 18:21:19 203

原创 SpringMVC框架的高级配置

前言:本文将为您提供关于Spring MVC框架的配置技巧,以帮助管理基于Spring的web应用程序的多个实例。本配置管理主题常被学术界所忽略,但是,这对于现实的web开发尤为重要。本主题并不直接关联任何具体的技术,因此,我们将从最基本的概念开始对这个问题进行说明。下面,我们将根据Spring MVC框架,为基于本技术开发的项目提供一系列的解决方案。Spring配置人们经常会在一台以上的主机上配置一种Web应用程序。例如,在生产中,一个网站可能只有一个实例。除了此实例外,开发人员可以在用于开发的机.

2022-05-12 17:48:00 188

原创 「高并发」高并发分布式锁架构解密,不是所有的锁都是分布式锁

写在前面究竟什么样的锁才能更好的支持高并发场景呢?今天,我们就一起解密高并发环境下典型的分布式锁架构,结合【高并发】专题下的其他文章,学以致用。锁用来解决什么问题呢?在我们编写的应用程序或者高并发程序中,不知道大家有没有想过一个问题,就是我们为什么需要引入锁?锁为我们解决了什么问题呢?在很多业务场景下,我们编写的应用程序中会存在很多的 资源竞争 的问题。而我们在高并发程序中,引入锁,就是为了解决这些资源竞争的问题。电商超卖问题这里,我们可以列举一个简单的业务场景。比如,在电子商务(商城)的业务场

2022-05-12 17:47:19 116

原创 程序员进阶之路必刷的68道算法题

文章目录基础知识数据结构面试题03.数组中重复的数字面试题04.二维数组中的查找面试题05.替换空格面试题06.从尾到头打印链表面试题07.重建二叉树面试题09.用两个栈实现队列算法与数据操作面试题10-I.斐波那契数列面试题11.旋转数组的最小数字面试题12.矩阵中的路径面试题13.机器人的运动范围面试题14-I.剪绳子面试题15.二进制中1的个数高质量的代码代码完整性面试题16.数值的整数次方面试题17.打印从1到最大的n位数面试题18.删除链表的节点面试题19

2022-05-12 17:42:34 955

原创 Redis高并发缓存架构性能优化实战

场景1: 中小型公司Redis缓存架构以及线上问题实战线程A在master获取锁之后,master在同步数据到slave时,master突然宕机(此时数据还没有同步到slave),然后slave会自动选举成为新的master,此时线程B获取锁,结果成功了,这样会造成多个线程获取同一把锁解决方案网上说RedLock能解决分布式锁失效的问题。对于RedLock实现原理是: 超过半数Redis节点加锁成功之后才能算成功,否则返回false,和Zookeeper的"ZAB"原理很类似,而且与Redis C

2022-05-11 19:03:33 433

原创 京东二面:高并发设计,都有哪些技术方案?

作为互联网从业者,高并发一直是我们绕不开的一个话题。那么高并发系统都有哪些经验,掌握核心技巧,你可以快速成为一个架构师,主导一些高访问量系统的架构设计然后,升职加薪自然也就是水到渠成的事。一、负载均衡靠优化单台机器的内存、CPU、磁盘、网络带宽,使其发挥极致性能,已经不太现实。正所谓 “双拳难敌四手,恶虎还怕群狼”,现在早已经是分布式时代,靠的是shu量取胜,也称之为水平伸缩方案这么多的系统,如何流量调度,这里的第一道入口就是负载均衡负载均衡,它的职责是将网络请求 “均摊”到不同的机器上。

2022-05-11 18:53:31 152

原创 初级Java程序员必备知识点:性能优化的12个细节

性能优化:简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。在Java程序中,性能问题的大部分原因并不在于Java语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:1)控制资源的使用,通过线程同步来控制资源的并发访问;2)控制实例的产生,以达到节约资源的目的;3)控制数据共享,在不

2022-05-10 17:30:56 72

原创 当把Java比喻成一个美少女,她有哪些性格?

其实我们评价一种开发语言就像我们评价一个人一样,如果只是说他很好,最值得学习,这样的评价看起来就太笼统了,而且一点也不具有说服力,所以今天场长大大就把Java做一场拟人化处理,想象我们面对的Java是一个帅气的小伙子,当然你如果愿意也可以把她想象为一名阳光美少女,毕竟从Java的出生年纪看,她真的只是个20岁活力满满的阳光少女哟。Java何许人也Java是编程开发界的网红,最常见最熟悉的一种开发语言,在信息互联网时代算是比较早的语言了,但在整个信息互联网时代却是非常流行的,再加上android、大数据开

2022-05-10 17:30:11 285

原创 Java程序员面试大厂的技术标准,进入BAT门槛到底有多高?

今天整理了一篇Java程序员面试大厂的技术标准,看看你还差多少?阿里巴巴扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等具有扎实的Java编程基础,理解IO、多线程等基础框架熟练使用Linux系统的常用命令及shell有一定了解精通多线程编程,熟悉分布式,缓存,消息队列等机制;熟悉JVM,包括内存模型、类加载机制以及性能优化精通spring mvc、orm框架(ibatis或hibernate)、模板引擎(velocity)、关系型数据库设计及SQL

2022-05-09 17:47:50 254

原创 2022年Java依旧优秀,江湖地位不容撼动

都说美好的一年要从许下新的愿望开始,2022的新年flag立好了嘛?新年伊始,我们对2022充满期待。对于软件开发从业者来说,这个行业时刻发生着变化,很多技能出现然后又消失,有的退场速度甚至远超人们的想象。关于编程语言的变化趋势一直是大家的探讨的话题,Java做为行业中最古老的语言之一,一直是话题中心对象,伴随着越来越多新语言出现,关于Java,这些质疑的声音越来越大:“Java真的要凉了吗?“Python的强势发展下,Java地位岌岌可危?”“Java的统治地位就要被推翻了?”·······

2022-05-09 17:47:03 739

原创 零基础学习Java要掌握的4个要点

很多Java初学者在刚接触Java语言的时候,不知道该掌握哪些基础知识。下面小编来就说说零基础学习Java要掌握的几个要点,希望能够对零基础入门的新手有帮助。一、先明白了解什么是Java的四个方面。初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解。理解它们之间的区别与联系,分别有哪些应用。想想这些代码中用到了哪些知识点。不要一味地照着书本敲代码。而不去理解。二、掌握静态方法和属性静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静

2022-05-07 16:24:32 116

原创 2022年Java常用的框架汇总,你常用哪一个?

自1995年推出以来,Java始终处于首位,这使其成为有史以来最著名的软件编程语言之一。及时的更新和新版本发布使Java保持着活跃和竞争力。当然,仅为你的下一个Web应用开发选择Java是不够的,你还要选择正确的JavaWeb 框架。无疑,这并不容易,你需要深入了解这些Java框架的利弊,然后为企业或项目开发选择一个最合适的。下面,Java进阶营小编详细来探讨一下这些热门的Java框架。1、SpringSpring 排名头一位,因为它具有出色的开发复杂 Web 应用程序的能力,并以高性能著称。它使Ja

2022-05-07 16:23:32 1310

原创 初学者如何学好Java并写好Java代码?给你3个锦囊

在接触Java编程的人里面每个人的基础不同,思维方式不同,所以作为Java零基础如何学好Java写好Java代码并没有统一的正确打开方式。本文,小编就分享一些Java学习建议为大家抛砖引玉。一、从开始就打好Java的语法基础其实每一套Java基础教程都比较重视Java的语法基础,但这并不能理解为,把教材上讲的语法知识通读一遍就可以把Java学会。在学习Java的过程中比较重视在做练习题的过程中逐渐掌握语法。由易到难,循序渐进。首先要重视区分代码中字母的大小写,一般而言,类名称的首字母要大写,方法名称的

2022-05-07 16:22:13 1315 1

原创 2022年学Java开发还来得及吗?市场前景如何?

根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。选择对的方向顺势而为,且选择远远大于努力。虽然Java的前景这么好,但还是有些人在担心现在学Java怎么样?晚不晚呢?其实现在选择学Java还不晚!具体原因是什么呢?小编给你答案。原因一:Java工程师市场前景我国仍然还存在很大的Java人才缺口,缺口可达42.5万,并且以每年20%左右的速度增长。根据IDC的统计数字,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70

2022-05-06 15:12:56 1677

原创 进阶Java开发程序员应该要掌握的9个关键技术

想要成为一名优秀的Java程序员,不能像无头苍蝇一样乱转,一些关键技术的掌握是非常重要的,比如说小编分享的这九点:一、熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的JavaAPI,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。二、熟悉基于JSP和Servlet的JavaWeb开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进

2022-05-06 15:10:59 516

原创 【Java进阶营】应届生Java程序员需要掌握哪些技能,面试简历该怎么写?

学习Java编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理。没有付出就没有回报,在整个学习Java编程技术的过程中,你需要付出时间、精力、金钱。那么对于应届生来说需要掌握哪些技能,面试简历该怎么写呢?下面和【Java进阶营】小编一起来看看吧!1 虽然学了一大堆数据结构,算法,网络和操作系统等方面的技能,但不知道怎么用在项目里,或者根本不知道这些技能大多数是用不到项目里的。2 Java等真正在项目里用到的技能,仅限于理论,或者仅会API,能找个现有代码,调通

2022-05-05 18:11:44 480

原创 【Java进阶营】找到一份Java编程工作需要掌握的技术点汇总

找到一份Java编程工作需要掌握的内容如下:首先是Javase作为Java最基本的学习内容,不在多说。然后是掌握JavaScript的基本原理,因为做Java编程开发必须学会JavaScript,用到JavaScript非常多,但是现在很多公司是不用去写原生的JavaScript,但是如果你想成为一个厉害的Java开发者,JavaScript必须从理论到实际操作中都要非常得心应手。现在公司是必须要求会用框架的,所以取代JavaScript的就是jQuery,这是一个非常简易的框架,学jQuery的时候

2022-05-05 18:10:29 50

原创 【Java进阶营】作为Java程序员,你应该知道的RocketMQ工作原理

先简单了解一下各个模块的功能,下面会有章节详细介绍各个模块的功能。Producer和Consumer很好理解,顾名思义就是生产者和消费者,生产者负责生产消息,消费者负责消费消息,这2块的逻辑都是由业务使用者定义的。Broker是RocketMQ的核心,Broker实现了消息的存储、拉取等功能。Broker通常以集群方式启动,并可配置主从,每个Broker上提供对指定topic的服务。理解了Broker的原理,以及和其他服务交互的方式就基本弄懂了整个消息中间件的原理。NameSrv是一个无状态的名称服.

2022-05-04 18:21:04 244

原创 【Java进阶营】Java虚拟机调优原理及技巧

一、相关概念基本回收算法①. 引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。②. 标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。③. 复制(Copying):此算法把内存空间划为两个相等的区

2022-05-04 18:19:45 177

原创 【Java进阶营】并发的核心:CAS 是什么?Java8是如何优化 CAS 的?

大家可能都听说说 Java 中的并发包,如果想要读懂 Java 中的并发包,其核心就是要先读懂 CAS 机制,因为 CAS 可以说是并发包的底层实现原理。今天就带大家读懂 CAS 是如何保证操作的原子性的,以及 Java8 对 CAS 进行了哪些优化。synchronized:大材小用我们先来看几行代码:public class CASTest {static int i = 0;public static void increment() { i++;}}假如有100个线

2022-05-02 20:27:14 107

原创 【Java进阶营】Java制作字符动画

前言今晚闲来无事,整理了一下电脑中尘封已久的旧代码,看着那些年自己写过的代码,踩过的坑,顿时老泪纵横。正当在感叹之际,突然发现在“马克思”文件夹下出现了一个好玩的项目,那就是N年前刚学Java时写的GIF转字符动画的小玩具,虽然是个小玩意,但是在当时能搞点东西出来还是非常有成就感的。正文效果展示原图,某两年半练习生转成字符动画后的练习生实现原理其实字符动画的实现原理比较简单,这里我们抛开GIF,直接拿一张静态图片来说明。首先我们要把原图转成灰度图,这样图片中每个像素就只存在亮度信息0-255

2022-05-02 20:26:42 302

原创 【Java进阶营】java中的基本算法

整理一下常用的又基础的算法。由于平时的项目比较简单,很少用到算法,但工作不只是眼前的苟且,还有诗和远方。1.链表链表用来存储数据,由一系列的结点组成。这些结点的物理地址不一定是连续的,即可能连续,也可能不连续,但链表里的结点是有序的。一个结点由数据的值和下一个数据的地址组成。一个链表内的数据类型可以是多种多样的。数组也是用来存储数据的,与链表相比,需要初始化时确定长度。一个数组内的数据都是同一类型。在Java中,ArrayList是通过数组实现,而LinkedList则通过链表实现。一个简单的链表类如下

2022-05-02 20:25:59 186

原创 【Java进阶营】Java中package的概念及实践(不使用IDE)

一、package 在 Java 中是什么作用?为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。包的作用:把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。一般情况下,包名采用公司域名的倒写来命名,比如 com.b

2022-05-02 20:24:18 240

原创 【Java进阶营】面试官问我“Java中的锁有哪些?以及区别”,我跪了

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下:公平锁/非公平锁可重入锁独享锁/共享锁互斥锁/读写锁乐观锁/悲观锁分段锁偏向锁/轻量级锁/重量级锁自旋锁 上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁。 非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取

2022-05-02 20:23:45 54

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除