Java基础
文章平均质量分 83
打好扎实的基础,才能走得更远
JavaBuild888
不在沉默中爆发,就在沉默中灭亡
展开
-
面试官:实战中用过CountDownLatch吗?详细说一说,我:啊这...
在CountDownLatch中通过countDown来减少倒计时数,这是最重要的一个方法,我们继续跟进源码看到它通过releaseShared()方法去释放锁,这个方法是AQS内部的默认实现方法,而在这个方法中再一次的调用了tryReleaseShared(arg),这是一个AQS的钩子方法,方法内部仅有默认的异常处理,真正的实现由CountDownLatch内部类Sync完成。执行结果体现出了倒计时的效果每隔1秒进行3,2,1的倒数;如果本篇博客对您有一定的帮助,大家记得。原创 2024-04-14 14:44:44 · 456 阅读 · 0 评论 -
今天我们来聊一聊Java中的Semaphore
在前面我们讲过的synchronized 和 ReentrantLock 都是一次只允许一个线程访问某个资源,而Semaphore(信号量)可以用来控制同时访问特定资源的线程数量,多线程同时操作共享资源,仍然存在着线程不安全问题,要想多线程安全,理应结合锁进一步保障。原创 2024-04-13 20:03:16 · 669 阅读 · 0 评论 -
每日一道Java面试题:方法重载与方法重写,这把指定让你明明白白!
这个问题应该是各大厂面试时问的最多的话题之一了,它们几乎贯穿了我们日常的开发工作,在过往的博客中我们多多少少都提到过重载与重写,而今天我们就一起来详细的学习一下这二者的功能与区别!重写: 类实现接口或者子类继承父类时,保持方法签名相同,用不同的方法体来实现不同的功能,这也是Java三大特性之一多态的具体实现,是垂直方向的“类间行为”。重载: 在同一个类或者父类与子类之间,保持方法名称相同,参数类型,参数数量,参数顺序不同的一种实现,是水平方向上的“类内行为”,同一个类中,或者父子类中。如下代码中是一个最简单原创 2024-01-25 22:18:08 · 621 阅读 · 0 评论 -
两千字讲明白java中instanceof关键字的使用!
instanceof 运算符是用来在运行时判断对象是否是指定类及其父类的一个实例(包括接口),因为比较的是对象,故不能应用于基本数据类型中!咱们直接上一段代码,感受一下instanceof的魅力吧true这段代码满足“对象是否是指定类及其父类的一个实例”,所以才返回true。其实,这里面也涉及到Java中的is-a关系,在这里做一下小小的知识延伸吧。原创 2024-01-23 20:10:50 · 412 阅读 · 0 评论 -
面试官:小伙子来说一说Java中final关键字,以及它和finally、finalize()有什么区别?
finalize() 是在 java.lang.Object 里定义的,Object 的 finalize() 方法什么都不做,对象被回收时 finalize() 方法会被调用。finally 异常处理的一部分,它只能用在 try/catch 语句中,表示希望 finally 语句块中的代码最后一定被执行(存在一些情况导致 finally 语句块不会被执行,如 jvm 结束)特殊情况下,可重写 finalize() 方法,当对象被回收的时候释放一些资源,须调用 super.finalize()。原创 2024-01-22 22:09:35 · 419 阅读 · 0 评论 -
详解static关键字在Java中的各种适应场景,这个很重要!
1、static 可以修饰变量、方法、代码块和内部类 static 变量是这个类所有,由该类创建的所有对象共享同一个 static2、可以通过创建的对象名.属性名 和 类名.属性名两种方式访问 static 变量在内存中只有一份 static3、修饰的属性,也就是类变量,是在类加载时被创建并进行初始化,只会被创建一次 static 修饰的变量可以重新赋值 static。原创 2024-01-21 17:41:08 · 652 阅读 · 0 评论 -
一文搞清楚Java中的方法、常量、变量、参数
上面构造方法中提及了有参构造和无参构造,那么现在就好好聊一聊这个参数,参数应用于方法之中,作为方法运转的条件和参考,当然这仅限于有参数的方法,方法中的参数分形参和实参,形参是在方法的定义阶段,而实参则是在方法的调用阶段,参数个数不限,类型不限,可以是基本数据类型,也可以是引用类型。在方法声明中,最重要的就是方法名(采用小驼峰命名法)与参数,这两者构成的方法的签名,是方法重载的判断依旧,除此之外,在声明方法的时候,还会设置访问权限、是否静态、返回值类型等。成员变量对于类中的方法、构造方法或者语句块是可见的。原创 2024-01-21 16:14:15 · 904 阅读 · 0 评论 -
一文搞清楚Java中的包、类、接口
/包名// 包作用域:");原创 2024-01-20 20:24:51 · 1004 阅读 · 0 评论 -
一文看完String的前世今生,内容有点多,请耐心看完!
String字符串作为一种引用类型,在Java中的地位举足轻重,也是代码中出现频率最高的一种数据结构,因此,我们需要像分析Object一样,将String作为一个topic,单独拿出来总结,这里面涉及到字符串的不可变性,字符串拼接、存储、比较、截取以及StringBuffer,StringBuilder区别等。ldc 命令用于判断字符串常量池中是否保存了对应的字符串对象的引用,如果保存了的话直接返回,如果没有保存的话,会在堆中创建对应的字符串对象并将该字符串对象的引用保存到字符串常量池中。原创 2024-01-20 11:53:40 · 1320 阅读 · 0 评论 -
面试官:请聊一聊String、StringBuilder、StringBuffer三者的区别
StringBuilder 与 StringBuffer 都继承自 AbstractStringBuilder 类,在 AbstractStringBuilder 中也是使用字符数组保存字符串,不过没有使用 final 和 private 关键字修饰,所以可以解决在字符串拼接时的性能问题,最关键的是这个 AbstractStringBuilder 类还提供了很多修改字符串的方法,比如 append 方法。:“String类设置为不可变对象的话,岂不是每次创建或者字符串拼接的时候都会创建对象,增加开销?原创 2024-01-17 22:40:03 · 490 阅读 · 0 评论 -
Java基础知识整理,驼峰规则、流程控制、自增自减
上一篇文章中提到了标识符,在Java中很多标识符都需要我们自己起名,但起名的方式千百不一,会让代码看的杂乱无章,故在漫长的近三十年时光里,Java形成了一套完成的命名规则,各大公司也在内部进行了命名规范的制约,最有名的就是《阿里巴巴Java开发手册》中的命名风格规约,大部分互联网公司都以此为准!在上面for循环的代码示例中我们可以看到很多整数类型的++符号,用以实现循环内部的自增,类似的还有自减–符号,既可以放在整形前也可以放在整形后,区别是:符号在前就先加/减,符号在后就后加/减。【必须遵守的命名规则】原创 2024-01-17 18:56:39 · 396 阅读 · 0 评论 -
Java基础知识整理,注释、关键字、运算符
万丈高楼平地起,要想学好汉语首先学拼音,想学好英语首先学26个字母,对于编程语言来说,一样的道理,要想学好必须先掌握其基础语法和知识,今天我们就来唠一唠Java语言中那些出现频率极高,又很基础的知识点吧!在之前的博文中,曾说过所有的程序语言最终都是用来处理数据的,那么处理数据最基本的加减乘除等等,都是通过运算符来实现,Java中大致可以分为如下几种运算符,直接整理一个思维脑图,看着方便。在《阿里巴巴开发者手册》中针对注释提出了12点规约,感兴趣的同学可以找来看看。那么都有哪些关键字呢?原创 2024-01-16 22:28:22 · 414 阅读 · 0 评论 -
作为所有类的顶层父类,没想到Object的魔力如此之大!
虽然在日常的代码开发中,我们很少会直接使用Object类,但考虑到它的独特地位,与此相关的面试考点还是不少的,我们今天总结一下。原创 2024-01-14 20:35:50 · 1211 阅读 · 0 评论 -
面试官:请谈一谈你对OOP的理解?
在讨论面向对象之前,鸟哥想问一句:“你知道什么是对象吗?在Java的世界中,对象应该具备什么特点?1 、对象具有属性和行为 2 、对象具有变化的状态 3 、对象具有唯一性 4 、对象都是某个类别的实例 5 、一切皆为对象,真实世界中的所有事物都可以视为对象。原创 2024-01-13 21:24:48 · 463 阅读 · 0 评论 -
春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了
哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光吧,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦!我们知道Java是面向对象的静态型编程语言,在Java的世界里万物皆对象。但我认为是万物皆数据,世界由各种各样数据构建起来,我们通过程序去实现数据的增删改查、转入转出、加减乘除等等,不同语言的实现方式殊途同归。由此可见,数据对于程序语言的重要性,而在Java中用来规范数据的标准我们将其称之为“原创 2024-01-13 15:22:34 · 1034 阅读 · 0 评论 -
面试官:说一说你的第一个Java程序是怎么跑起来的?
其实从上面的内容我们已经可以推测答案了,但这里还是想多说几句,编程语言之所以分编译型和解释型是因为计算机并不能直接识别我们所写的任何一种语言的代码(Java,c,c++,python,php,Rust,Go等等),在计算机的世界里只有0和1,那么为了让计算机可以理解我们的代码,就需要翻译,翻译的两种方式:编译与解释。俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦!”,虽然好贱,但面试官肯定被你逗笑啦!原创 2024-01-11 23:16:44 · 779 阅读 · 0 评论 -
简单介绍JDK、JRE、JVM三者区别
Java Virtual Machine(Java虚拟机)的缩写,.class 文件会在 JVM 上执行,JVM 会解释给操作系统执行,有自己的指令集,解释自己的指令集到 CPU 指令集和系统资源的调用,JVM 只关注被编译的 .class 文件,不关心 .java 源文件。即java程序的运行时环境,包含了 java 虚拟机,java基础类库。俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦!原创 2024-01-09 22:42:05 · 554 阅读 · 0 评论 -
2024年,在风云际会的编程世界里,窥探Java的前世今生,都说它穷途末路,我认为是柳暗花明!
哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦!截止2024年1月,全球程序员人数预计达到2800万,其中热门的程序语言高达几十种,在此之中包含着太多太多的传奇故事,作为程序员,鸟哥想说:工欲善其事必先利其器!想要真正掌握一门语言,必须要先了解它的历史,今天!作为Java语言的追随者,想和大家聊一聊Java的前世今生!原创 2024-01-09 19:01:11 · 493 阅读 · 0 评论 -
Java基础篇:您真的了解Java中的重载吗?
哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥,嘿嘿!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,厚积薄发!今天我们来聊一聊Java中的重载,提及重载我们很难不聊两句重写,这是对于初学者十分容易混淆的俩概念,英文中分别用“override(重写)”,“overload(重载)”表示。无论是英文还是中文表示,我们都会想当然的认为这俩是“孪生兄弟”,但这里给出一个结论:这俩并无太多相似之处,甚至可以用大相径庭来形容。原创 2023-12-05 23:09:48 · 52 阅读 · 0 评论 -
Java基础篇:今天终于搞明白this和super关键字的作用了
最后,我们用一个思维脑图来总结一下super与this关键的异同点。原创 2023-12-04 15:53:16 · 70 阅读 · 0 评论 -
大学四年如何学好Java拿到offer?这条过来人的Java学习路线送给你(大三篇)
当你看到这一篇文章的时候,希望你已经阅读过《大一篇》和《大二篇》了,这次花了差不多一个礼拜的时间梳理了这些年学习Java的一个经验,整理的一份万字长篇Java全过程学习路线,希望能够给很多刚接触Java的同学们一点点的参考和指令。还没看过大一和大二学习路线的朋友,可以通过下方的链接进行顺序性阅读,最后四年的学习路线全部完成后,鸟哥也会汇总一份四年的全路线哈,请持续保持关注哟。大学四年如何学好Java拿到offer?这条过来人的Java学习路线送给你(大一篇)大学四年如何学好Java拿到offer?原创 2023-09-28 00:04:53 · 61 阅读 · 0 评论 -
大学四年如何学好Java拿到offer?这条过来人的Java学习路线送给你(大一篇)
最近工作的时候,多少有点惆怅,公司来了很多985/211的校招生,在和他们交流的过程中,发现自己很多基础知识点早已忘得一干二净,回想起自己大学的几年,浪费了太多的时间在赚外快上,忽略了全面扎实的好好学一学Java的重要性,现在想想有点后悔,但好在一切都还来得及!添加图片注释,不超过 140 字(可选)原创 2023-09-22 20:54:44 · 90 阅读 · 0 评论 -
详聊Java的四种引用类型
最近,在回顾关于JVM的相关知识,其中有一个比较简单,同时又容易被大家忽视的知识点,就是关于4种引用的定义与使用场景,其实仔细刨析源码的时候会发现,在Java中很多地方都有涉及到关于不同引用的问题,并且有些面试官也会在面试的时候问及到这一块的内容,所以小编就根据自己的学习,总结了一下这部分的知识点,希望可以与大家一起学习,如果有错误或者不足的地方,欢迎大家在评论区里指摘。这四种引用,由高到低依次为:强引用、软引用、弱引用、虚引用。强引用(StrongReference)强引用是目前为止在Java中原创 2020-11-03 15:32:26 · 172 阅读 · 0 评论