自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 容器--Map之HashMap源码解析

本文参考:https://blog.csdn.net/m0_37914588/article/details/82287191HashMapHashMap是基于哈希表实现的,每个元素都是一个键值对(key-value)。HashMap在JDK1.7和JDK1.8中变化比较大,在JDK1.7中,HashMap的底层是采用以个Entry数组来存储数据,当发生hash冲突时,采用链地址法(即...

2019-10-02 15:52:09 230

原创 容器--Map概述

之前讲过了Collection类下的两个主要容器:List和Set,今天我们来讲讲没有继承自Collection的容器:Map。Map提供了一个更通用的元素存储方法,Map提供了一个键值对的存储方式,一个键映射到一个值。、Map中的常用方法返回类型 方法名(参数类型) void clear() 从该地图中删除所有的映射(可选操作)。 boolean ...

2019-09-15 09:51:06 160

原创 容器--Set之HashSet和TreeSet源码解析

HashSet和TreeSet是Set最常用的两个实现类,闲话不多说,直接进入主题吧。HashSetpublic class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.SerializableHashSet是一个没有重复元素的集...

2019-09-14 11:06:28 203

原创 容器--Set概述

Set--集合Set最大的特点就是不能存储相同的元素。Set直接继承Collection,因此具有Collection的一些常见的方法:返回类型 方法(参数) boolean add(Ee) 如果指定的元素不存在,则将其指定的元素添加(可选操作)。 boolean addAll(Collection<? extendsE>c) ...

2019-09-02 11:05:51 142

原创 容器--List之ArrayList和LinkedList源码解析

之前的一篇博客讲了List的主要实现类,这次我们来详细的讲一下实现类中的ArrayList和LinkedList。这两个实现类是在日常开发中经常使用到的,因此我会深入一点去讲一些底层的东西,以便能更好的理解掌握着两个实现类。ArrayListArrayList与数组基本一致,但是ArrayList解决了数组长度不可变的问题。数组一旦创建,就无法再进行长度的扩展。并且数组只能存储基本数据类型...

2019-09-01 17:19:31 158

原创 Dubbo项目相关的坑

今天做Dubbo项目的时候发现三个大坑每次启动都会报一个No Such Elements [array]的错误是Dubbo2.5.3本身自带的Spring包与现版本的Spring包版本不同出的问题,项目加载过程中,JVM会先去读取Dubbo的jar包中的Spring包,而不是我们自己配置的Spring包。解决方法:只需要到导入jar包时排除这个Spring包即可<depe...

2019-08-30 10:55:31 176

原创 容器--List概述

本文只对List中一些常用实现类进行粗略的介绍,后续会深入了解这几个常用的实现类。List--列表List是Java中比较常用的集合类,它继承于Collection的接口。List中存放的元素是可以重复的,并且有序。这里所指的有序并非是元素的升序降序,而是指List按照元素插入的先后顺序进行存储,即存放的位置与插入的顺序相关。List常用的实现类首先我们来看一下List的结构图...

2019-08-19 16:51:49 141

原创 容器--容器概述

为什么需要容器容器,顾名思义就是用来存放数据的,但是Java中我们有数组,为什么还需要容器?通常程序总是在运行时才能确定要创建的对象的数量,甚至是对象的类型,为了解决这个问题,Java使用了容器。容器也称为集合类,大致可以分为以下三种:Set:集合 List:列表 Map:映射 工具类:Iterator迭代器、Enumeration枚举类等容器的类结构图(图片来自《Thin...

2019-08-08 11:30:48 284

原创 Maven项目报错但是没有文件报错

新建Maven项目有时候会出现项目报错可是找不到文件报错,这时候我们可以进入控制台查看Problem我遇到的问题是Description Resource Path Location Type Dynamic Web Module 3.0 requires Java 1.6 or newer. 最开始我是手动更换jre,一直发现每次Update Project后都会变成1.5...

2019-08-07 17:45:34 348

原创 Myeclipse开发maven项目报错:Cannot detect Web Project version

新建maven项目后发现pom.xml文件报错:Cannot detect Web Project version。在pom文件中</build>上方添加下边的代码 <build> <plugins> <plugin> <artifactId>maven-war-...

2019-08-07 17:07:30 217

原创 设计模式--桥接模式

桥接模式的定义桥接模式的定义为:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体模式或接口模式。桥接模式的结构图桥接模式中包含以下角色:1、Abstraction(抽象类)用于定义抽象类的接口,它一般是抽象类而不是接口,其中定义了一个Implementor类型的对象,并可以维护该对象。2、RefinedAbstraction(扩充...

2019-08-07 10:30:33 128

原创 设计模式--职责链模式

职责链模式的定义职责链模式(Chain of Responsibility Pattern)的定义为:避免请求发送者与接受者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式又称为责任链模式,它是一种对象行为型模式。职责链模式的结构图职责链模式主要包含下边几个角色:1、Handler(抽象处理者)抽...

2019-08-06 11:17:27 152

原创 设计模式--适配器模式

适配器的定义适配器的定义是:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作。适配器模式可以作为类结构型模式,也可以作为对象结构型模式。适配器的结构图(1)类适配器的结构图(2)对象适配器我们根据结构图来了解下适配器中的几个角色:1、Target(目标抽象类)目标抽象类定义客户要用的特定领域的接口,可以是一个抽象类或接口,也...

2019-08-05 11:18:56 165

原创 设计模式--单例模式

单例模式(Singleton Pattern)是Java中最简单的设计模式之一,它属于创建型设计模式。单例模式设计到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,并且该类要提供一种访问这个唯一对象的方式。所以单例类有以下的几个规范:单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例单例模式主要解决的问题是:当一个全局使用的类频...

2019-08-02 15:25:27 96

原创 Java--反射机制

反射机制是Java中一个非常重要的部分,许多设计模式都离不开反射机制的运用,因此今天先讲讲关于反射机制的内容,后边再介绍多点设计模式的内容。什么是反射机制反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性,对于任何一个对象,我们都能够对它的方法和属性进行调用,我们把这种动态获取对象信息和调用方法的对象的功能称之为反射机制。反射其实就是获取类的字节码文件,也就...

2019-08-01 15:12:23 119

原创 设计模式--三种工厂模式

今天来讲讲设计模式中的三种工厂模式——简单工厂模式、工厂模式和抽象工厂模式。简单工厂模式简单工厂模式并不属于GoF23种模式,简单工厂模式的定义为:简单工厂模式又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例,简单工厂模式专门定义了一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。...

2019-07-22 17:14:14 176

原创 设计模式--设计模式概要

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验总结的,使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。(《设计模式》清华大学出版社)设计模式的分类根据目的分类我们可以根据设计模式的目的来进行分类,可以分为:创建型(Creational):关注对象的创建过程,它将对象的创建和使用分离,在使用对象时无须知道对象的创建细节。 结构型(Stru...

2019-07-19 11:26:56 122

原创 Java基础--String、StringBuffer和StringBuilder

之前我们在另一篇博客讲过,String是被final修饰的,是一个不可变对象。(点击这里查看)我们如果要修改String的内容,就只能通过重新new一个对象来实现。毫无疑问,这是非常耗内存的,当我们需要不断的更改String对象的内容时,我们的内存空间很容易溢出。因此,我们有了StringBuffer和StringBuilder这两个替代品。StringBufferStringBuffer...

2019-07-17 10:48:38 128

原创 Java基础--IO

java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。java.io包中最重要的就是5个类和一个接口。...

2019-07-16 17:49:38 173

原创 Java基础--序列化

什么是序列化和反序列化Java提供了一种对象序列化机制,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化写入文件后,可以从文件中读取出来,并且对它重新进行反序列化,也就是说,对象的类型信息、对象的数据和对象中的数据类型可以用来在内存中新建对象。因此我们可以通过上边所述定义序列化和反序列化的概念:序列化:把对象转换为...

2019-07-14 16:02:31 156

原创 Java基础--详解Object类中的clone方法

clone()方法clone()方法将对象复制了一份并返回给调用者。一般而言,clone()方法满足:对任何对象a,都有a.clone() != a,即克隆对象与源对象不同 对任何对象a,都有a.clone().getClass == a.getClass,即克隆对象与源对象的类型相同clone()方法时Object类的一个方法,因此,所有的类都具有这个方法。clone()的作用在于复...

2019-07-13 11:23:13 1782 1

原创 Java基础--多态

多态就是同一个行为具有多种不同表现形式的能力,通俗点讲,多态就是一个接口使用不同的实例而执行不同的操作。作为面向对象的三大特性之一,多态在我们的开发过程中起到了很重要的作用。要使用多态必须满足三个前提条件:继承 重写 父类引用指向子类对象(Parent p = new Child();)当使用多态方式调用方法时,首先检查父类中是否有该方法,若没有则编译错误;找到该方法后再去调用子类的...

2019-07-10 09:13:42 115

原创 设计模式--设计模式六大原则

Java中的设计模式基本上都是围绕着这六大原则进行设计,设计模式在我们开发过程中时必不可少的,它能够让我们更好的设计一个系统,使得这个系统具有良好的扩展性,可维护性等。下面我们开始了解六大原则!单一职责原则(Single Responsibility Principle,SRP)单一职责原则我们可以从名字上了解,就是指一个类的功能要单一,不能包罗万象。正如一个人,分配的工作如果太多,并不会...

2019-07-09 20:41:01 146

原创 Java基础--异常处理机制

什么是异常在平时的Java开发中,异常是我们不可避免的。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。因此,Java用它的异常处理机制来解决平时我们在开发过程中所遇到的异常问题。首先我们通过一张图来了解Java的异常类:我们可以很容易看出,所有的异常类都有一个共同的父类Throwable。Throwable有两个重要的子类:Exception(异常)和Error(错误...

2019-07-05 16:06:55 705

原创 Java基础--Java常用关键字

什么是Java关键字Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。(摘自百度百科)Java的保留关键字const:常量,常数。用于修改字段或局部变量的声明。 goto:跳转。指定跳转到标签,找到...

2019-07-05 12:02:21 218

原创 Java基础--String类

除了八大基本数据类型之外,我们还经常使用一个数据结构——String,String可以说是Java编程中最常见的数据结构。String类在java.lang包中,它的作用主要是用于创建一个字符串变量的对象。Java把String类声明为final类,不能有子类,String类对象创建后也不能修改。如何创建一个String类对象//字符串声明 String str;//字符串创建...

2019-07-03 10:06:42 220

原创 Java基础--Object类

Java与C++不同,Java不支持多继承,是一种单根继承结构语言。也就是说,Java中所有的类都有一个共同的祖先,这个祖先就是Object类。Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承与某个类,那么它默认继承Object类。下边我们通过Object类中的方法来了解Object类。Object类的结构如图可知,Object类有12个成员...

2019-06-29 09:46:42 147

原创 Java基础--数据类型转换

在实际开发中,我们会经常遇到数据类型转换。数据类型转换,顾名思义就是将一个数据类型转换成另一个数据类型,这种转换方式可以分为两种,自动类型转换和强制类型转换。自动类型转换容量小的数据类型可以自动转换成容量大的数据类型,这里的容量指的是这个数据类型的取值范围。可以用下图表示除boolean之外七个基本数据类型的转换关系:图中黑色箭头表示无数据丢失的自动类型转换,而红色箭头表示在转换时可能...

2019-06-28 09:49:55 123

原创 Java基础--接口和抽象类

讲完了继承,我们来讲讲接口和抽象类。面向对象有以下特性:抽象、多态、继承、封装。接口和抽象类正是对应了面向对象的抽象特性。什么是抽象Wikipedia 上是这么定义抽象的:Conceptual abstractions may be formed by filtering the information content of a concept or an observable ph...

2019-06-27 09:33:23 121

原创 Java基础--继承

本文部分内容摘自:https://www.runoob.com/java/java-inheritance.html什么是继承继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。例如人属于哺乳动物,鸡属于卵生动物,草属于植物,而哺乳动物、卵生动物、植物都属于生物。我们可以通过一张图来了解他们的继承结构:...

2019-06-26 15:47:18 130

原创 Java基础--jdk、jre和jvm

JVMJVM是Java Virtual Machine的缩写,顾名思义是Java虚拟机。JVM是一种用于计算设备的规范,是通过在实际计算机上仿真模拟各种计算机功能来实现。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。JREJRE是Java Runtime Environment的缩写,顾名思义就是java运行时环...

2019-06-23 09:29:05 3582

原创 Java基础--重写和重载

重写(Overriding)重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写有以下规则:子类覆盖方法必须和父类有相同的函数名和参数。 子类的返回值和父类的返回值可以不同,但必须是父类返回值的派生类(jdk7及更高版本可以不同)。 子类抛出的异常必须比父类...

2019-06-21 21:14:13 154

原创 Java基础--基本数据类型

Java8种基本数据类型 类型 大小 范围 默认值 byte 8 -128 - 127 0 short 16 -32768 – 32767 0 ...

2019-06-21 09:03:20 155

空空如也

空空如也

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

TA关注的人

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