自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三殿下的博客

天行健,君子以自强不息;地势坤,君子以厚德载物

  • 博客(28)
  • 收藏
  • 关注

原创 java基础系列二十六(LinkedList源码解析)

目录概述¶ LinkedLists实现¶ 底层数据结构¶ 构造函数¶ getFirst(), getLast()¶ removeFirest(), removeLast(), remove(e), remove(index)¶ add()概述LinkedList同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。这样看来,LinkedList简直就是个全能冠军。当你需要使用栈或..

2021-12-10 21:30:00 154

原创 java基础系列二十五(ArrayList 源码解析)

目录¶ 概述¶ ArrayList的实现¶ 底层数据结构¶ 构造函数¶ 自动扩容¶ add(), addAll()¶ set()¶ get()¶ remove()¶ trimToSize()¶ indexOf(), lastIndexOf()¶ Fail-Fast机制:¶ 概述ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个

2021-12-10 11:33:26 150

原创 java基础系列二十四(Collection 类关系图)

目录知识体系结构​¶ 介绍¶ Collection¶ Set¶ List¶ Queue¶ Map¶ TreeMap¶ HashMap¶ HashTable¶ LinkedHashMap知识体系结构¶ 介绍容器,就是可以容纳其他Java对象的对象。*Java Collections Framework(JCF)*为Java开发者提供了通用的容器,其始于JDK 1.2,优点是:降低编程难度 提高程序性能 提高API间的互操作性 降低学习.

2021-12-02 16:42:23 202

原创 java基础系列二十三(反射机制详解)

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java反射机制在框架设计中极为广泛,需要深入理解。本文综合多篇文章后,总结了Java 反射的相关知识,希望可以提升你对Java中反射的认知效率。著作权归https://pdai.tech所有。 链接:Java 基础 - 反射机制详解 | Java 全栈知识体系反射基础RRIT(Run-Ti

2021-11-26 16:48:24 199

原创 java基础系列二十二(java深拷贝浅拷贝)

将一个对象的引用复制给另外一个对象,一共有三种方式。第一种方式是直接赋值,第二种方式是浅拷贝,第三种是深拷贝。所以大家知道了哈,这三种概念实际上都是为了拷贝对象啊。1、直接赋值好,下面我们先看第一种方式,直接赋值。在Java中,A a1 = a2,我们需要理解的是这实际上复制的是引用,也就是说a1和a2指向的是同一个对象。因此,当a1变化的时候,a2里面的成员变量也会跟着变化。各位,请看下面的代码吧!/* 建立类 */ class Resume { private Stri

2021-11-23 17:44:55 300

原创 java基础系列二十一(序列化与反序列化)

一、序列化简介在项目中有很多情况需要对实例对象进行序列化与反序列化,这样可以持久的保存对象的状态,甚至在各个组件之间进行对象传递和远程调用。序列化机制是项目中必不可少的常用机制。要想一个类拥有序列化、反序列化功能,最简单的方法就是实现java.io.Serializable接口,这个接口是一个标记接口(marker Interface),即其内部无任何字段与方法定义。当我们定义了一个实现Serializable接口的类之后,一般我们会手动在类内部定义一个private static final

2021-11-17 14:05:17 124

原创 java基础系列二十(Date类)

一、概述Date类是从JDK1.1就开始存在的老类,其提供了针对日期进行操作的诸多方法,但其却一直饱受诟病,不同的起始编号,国际化的低支持,JDK官方也认识到这个问题,后台提出使用Calendar类进行日期操作,日期的格式化交给DateFormat,虽然我们已经不再使用Date类中的大多数方法,但是还有一部分保留的内容值的我们一谈。二、构造器Date类之前有6大构造器,其中四个已经标注弃用,我们不再看他,重点看另外两个:public class Date implements ja

2021-11-17 14:02:27 118

原创 java基础系列十九(validate关键字)

一、finalizefinalize方法来自于java.lang.Object,用于回收资源。可以为任何一个类添加finalize方法。finalize方法将在垃圾回收器清除对象之前调用。在实际应用中,不要依赖使用该方法回收任何短缺的资源,这是因为很难知道这个方法什么时候被调用。[java]view plaincopy<spanstyle="font-size:14px;">classPeople{ finalvoid...

2021-11-01 17:44:46 3244 2

原创 java基础系列十八(final、finally、finalize区别)

目录一、final关键字的功能概述 1、用来修饰一个引用 2.用来修饰一个方法 3.用来修饰类一、final关键字的功能概述 final关键字可以用来修饰引用、方法和类。 1、用来修饰一个引用如果引用为基本数据类型,则该引用为常量,该值无法修改; 如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。 如果引用时类的成员变量,则必须当场赋值,否则编译会报错。 例子如下所示:fina...

2021-11-01 17:12:45 85

原创 java基础系列十七(时间日期转换)

一、概述Java提供了有关时间的类和API,可以很方便的处理日期时间。JDK 1.8之前使用的是Date和Calendar,JDK 1.8之后使用DateTime,前者毛病较多,后者更加适用。二、基础知识2.1 时区我们都知道,地球是圆的,并且在不停的自转与公转,自转一圈是为一天,公转一圈是为一年。我们这里关注自转的部分。圆形的地球总是存在面向太阳的半球与背向太阳的半球,面向太阳的半球为白天,背向太阳的半球为黑夜,边界区域为凌晨和傍晚。那么在这些处于地球不同位置的地区的时间也

2021-10-18 17:49:52 722

原创 java基础系列十六(Optional详解)

目录一、概述二、Optional2.1 创建Optional实例2.2 中间操作-处理Optional2.3 从Optional中获取目标值三、使用方式四、总结一、概述Optional的引入是为了解决null的问题,那么到底是解决null的什么问题呢?我们知道当我们针对null调用方法的之后,就会抛出空指针异常,Optional就是为了解决这个问题而来的。Optional通过封装目标对象的方式来表示,当我们使用的时候,Optional是必然存在的,因为如果结果为n

2021-10-18 16:10:14 411

原创 java基础系列十五(Lambda详解)

目录一、概述二、函数式接口2.1 函数式接口2.2 预定义的函数式接口三、Lambda表达式3.1 forEach方法3.2 替换匿名内部类四、方法引用一、概述JDK1.8引入了函数式编程,重点包括函数式接口、lambda表达式、方法引用等。所谓函数式编程就是将函数(一段操作)作为一个基本单位进行传递。以前的Java中参数只能是具体的变量,函数式编程打破这一规范,可以将整个方法作为一个参数传递。Java毕竟是面向对象的编程语言,你要传递的东西,必须是一个类或接

2021-10-18 15:28:27 1009

原创 java基础系列十四(Calendar类、时间调用)

目录1、Calendar概述2、Calendar中的time与field3、Calendar中的两种解析模式4、Calendar的使用1、Calendar概述  Java官方推荐使用Calendar来替换Date的使用,Calendar与Date之间可以自由的进行转换,转换的纽带是time,使用Calendar的getTime()方法可以得到一个Date类型的对象,这个对象底层是使用Date的第二个带Long型参数的构造器创建的,这个Long型参数是Calendar中的time字

2021-10-18 14:34:06 344

原创 java基础系列十三(枚举类型enum)

理解枚举类型枚举的定义枚举实现原理枚举的常见方法Enum抽象类常见方法编译器生成的Values方法与ValueOf方法枚举与Class对象枚举的进阶用法向enum类添加方法与自定义构造函数关于覆盖enum类方法enum类中定义抽象方法enum类与接口枚举与switch枚举与单例模式EnumMapEnumMap基本用法EnumMap实现原理剖析EnumSetEnumSet用法EnumSet实现原理剖析理解位向量EnumSet原理理解枚举类型枚举类型是Java 5中

2021-10-12 18:59:47 302

原创 java基础系列十二(异常的处理、设计及深入理解)

一. 异常的定义在《java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意。记得当初学习java的时候,异常总是搞不太清楚,不知道这个异常是什么意思,为什么会有这个机制?但是随着知识的积累逐渐也对异常有一点感觉了。举一个例子来说明一下异常的用途。

2021-09-30 16:58:38 140

原创 java基础系列十一(String 及 String.intern() )

String的深入解析首先String不属于8种基本数据类型,String是一个对象。   因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;String str=”kvill”;String str=new String (“kvill”);的区别:在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。  ..

2021-09-30 15:59:48 82

原创 java基础系列十(static关键字)

Static变量static关键字在类中用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时初始化,对于该类的所有对象来说,static成员变量只有一份。可以通过引用或者类名访问静态成员原来一个类里面的成员变量,每new一个对象,这个对象就有一份自己的成员变量,因为这些成员变量都不是静态成员变量。对于static成员变量来说,这个成员变量只有一份,而且这一份是这个类所有的对象共享。◆在类中,用static声明的成员变量为静态变量,或者叫:类属性、类变量。(注意:

2021-09-29 15:45:03 127

原创 java基础系列九(equals()与hashCode()方法详解)

概述java.lang.Object类中有两个非常重要的方法:public boolean equals(Object obj)public int hashCode()Object类是类继承结构的基础,所以是每一个类的父类。所有的对象,包括数组,都实现了在Object类中定义的方法。equals()方法详解equals()方法是用来判断其他的对象是否和该对象相等.equals()方法在object类中定义如下:public boolean equals(Object obj

2021-09-29 15:12:55 113

原创 java基础系列八 (集合入门)

集合框架:Java中的集合框架大类可分为Collection和Map;两者的区别:Collection是单列集合;Map是双列集合Collection中只有Set系列要求元素唯一;Map中键需要唯一,值可以重复Collection的数据结构是针对元素的;Map的数据结构是针对键的。泛型:在说两大集合体系之前先说说泛型,因为在后面的集合中都会用到;所谓的泛型就是:类型的参数化泛型是类型的一部分,类名+泛型是一个整体如果有泛型,不使用时,参数的类型会自动提升成Object类型,如果再取出

2021-09-28 19:38:35 102

原创 java基础系列八 (Java Lambda 表达式的常见应用场景)

Lambda 表达式是 Java 8 引入的新特性,结合 forEach 方法可以更方便地实现遍历。此外,它还可代替 Runnable 类,大大简化了代码的编写。下面介绍了一些常见的应用场景,在这些场景中适时地使用 Lambda 表达式要比通常的方式来得更加简洁和方便。列表迭代对一个列表的每一个元素进行操作,不使用 Lambda 表达式时如下:List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);for (int eleme

2021-09-28 19:28:21 501

原创 java基础系列七 (equals()方法和“==”运算符)

equals()超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下:public boolean equals(Object obj) { return (this == obj); }我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用Object的equals()方法是比较两个对象的内存地址是否相等,即若object1.equals(object2)为true,则表示equa...

2021-09-28 18:05:59 75

原创 java基础系列六(自增自减与贪心规则)

引言  JDK中提供了自增运算符++,自减运算符--。这两个操作符各有两种使用方式:前缀式(++ a,--a),后缀式(a++,a--)。可能说到这里,说不得有读者就会吐槽说,前后缀式都挺简单的,前缀式不就是先进行+1(或-1),然后再使用该值参与运算嘛,后缀式则相反。有必要长篇大论吗?  前后缀式的区别确实是这样,最起码表面上理解起来是这样,但是更深入的理解就不是这么简单了,甚至严重影响到你的程序的正确性。不信,接下去看吧!1. 前缀式 与 后缀式的真正区别  在Java中,运算是从左往右计

2021-09-27 15:17:19 166

原创 java基础系列五(for循环与Iterator)

引言  从JDK1.5起,增加了加强型的for循环语法,也被称为 “for-Each 循环”。加强型循环在操作数组与集合方面增加了很大的方便性。那么,加强型for循环是怎么解析的呢?同时,这是不是意味着基本for循环就会被取代呢?语法:for(var item:items){//var 代表各钟类型 //相关操作}一、数组中的 for-Each 循环我们先来看一下数组中的 for-Each 循环的使用;String str[]= new String[]{"1","2

2021-09-27 14:57:48 2320

原创 java基础系列四(八个基本数据类型)

一、基本类型的简介基本类型的两条准则:Java中,如果对整数不指定类型,默认时int类型,对小数不指定类型,默认是double类型。 基本类型由小到大,可以自动转换,但是由大到小,则需要强制类型转换。所占的字节数:byte:1个字节;char:2个字节;short:2个字节;int: 4个字节;long:8个字节;float:4个字节;(6位小数,指数是:10-38~1038; 范围:)double:8个字节;char:Java中用"\u四位十六进制的数字 (即使在注释中出...

2021-09-27 11:26:41 204

原创 java基础系列三(java四种访问权限)

引言  Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用。下面整理一下,在什么情况下,有哪些访问权限可以允许选择。一、访问权限简介访问权限控制:指的是本类及本类内部的成员(成员变量、成员方法、内部类)对其他类的可见性,即这些内容是否允许其他类访问。Java 中一共有四种访问权限控制,其权限控制的大小情况是这样的:public > protected > default(包访问权限) > private,具体的权限控制看下面..

2021-09-27 11:11:46 443

原创 java基础系列二(三大特性)

Java的三大特性分别是封装、继承、多态,工作年限不同对三者的理解和使用也大不相同,下面详细介绍下封装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。  好处:将变化隔离;便于使用;提高重用性;安全性。  封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。  this:代表对象。就是所在函数所属对象的引用。    this到底代表什么呢?哪个对象调用了this所在的函数,this就代表哪个对象,就是哪个对象的引用。   .

2021-09-27 09:54:38 205

原创 java基础系列一 (基本概念)

一:java概述:  1991年Sun公司的JamesGosling等人开始开发名称为Oak的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;  1994年将Oak语言更名为Java;  Java的三种技术架构:  JAVAEE:JavaPlatformEnterpriseEdition,开发企业环境下的应用程序,主要针对web程序开发;  JAVASE:JavaPlatformStandardEdition,完成桌面应用程序的开发,是其它两者的基础;...

2021-09-26 17:27:09 144

原创 震惊!我的第一次竟来的这么晚

最近看看JAVA技术文章发现在CSDN上发表的很多,但是很多文章写的不全,有的只是标题党、甚至写的有误,为了避免误人子弟,尤其是新人。作为一个从事6年java开发技术人员决定从基础开始把java行业的一系列的文章整理一遍,有遗漏或者错误的也希望各位大佬指点迷津。写文章前一直想取一个适合自己的名字,因为一直追剧动漫,觉得星辰变里的男主角(又称三殿下)这个名字很适合自己,因为我也是家中排行老三,也有两个哥哥,比男主幸运的是我还有一个关心我照顾我的姐姐,哈哈,基本情况就介绍这么多,以后每周定时更新j...

2021-09-26 14:16:03 83

空空如也

空空如也

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

TA关注的人

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