
Java基础
文章平均质量分 72
xyx-Eshang
潜心静学,保持谦逊
展开
-
Java基础 | 17.权限修饰符
文章目录参考文章1.权限修饰符概述2.protected与default的区别protected(default / friendly)参考文章彻底搞懂Java protected关键字和default的区别1.权限修饰符概述权限修饰符用于修饰类、变量和方法,目的是指定这些成员被允许访问的范围。public > protected > **(default / friendly) ** > private 修饰符\访问范围原创 2022-04-04 16:12:55 · 1833 阅读 · 0 评论 -
Java基础 | 16.自动装箱与拆箱、包装类的缓存池
文章目录参考文章前言1.初探包装类的缓存池1.1.什么是缓存池1.2.什么时候会创建缓存池2.自动装箱与拆箱2.1.自动装箱2.2.拆箱3.Integer.valueOf( int )和new Integer( int )参考文章详细解析包装类及其缓存池,不会还有人不知道吧?前言为方便描述,本文中所有的包装类、缓存池,都以Integer类举例。注意:Float和Double没有缓存池1.初探包装类的缓存池1.1.什么是缓存池Integer缓存池在创建时,将值∈[-128, 127]的Inte原创 2022-04-03 14:17:38 · 299 阅读 · 0 评论 -
Java基础 | 15.Collection单列集合 -List接口与Set接口
文章目录参考视频1.单列集合概述1.1.整体总述**1.2.单列集合选型**2.单列集合遍历方法适用List和Set:使用Iterator迭代器迭代、forEach循环仅适用List:普通for循环3.List接口的常用实现类**3.1.ArrayList(线程不安全,类比StringBuilder) - 1.5倍扩容**3.2.Vector(线程安全,类比StringBuffer) - 2倍扩容3.3.LinkedList(双向链表)4.Set接口的常用实现类**4.1.HashSet(无序,底层为Has原创 2022-04-01 15:40:21 · 947 阅读 · 0 评论 -
Java基础 | 14.HashMap新增结点机制、数组扩容机制、链表树化机制
文章目录1.HashMap总述2.新增结点机制3.数组扩容机制4.链表树化机制(JDK1.8)1.HashMap总述无序,线程不安全,效率高;底层结构为数组 + 链表(+ 红黑树);2.新增结点机制确定数组下标时会对key调用Object.hashCode( ),因此自定义类需要重写hashCode( );确定是否相等时会对value调用Object.equals( ),因此自定义类需要重写equals( );结点判断相等时,会替换结点中的value。3.数组扩容机制扩容原创 2022-04-01 15:37:58 · 923 阅读 · 0 评论 -
Java基础 | 13.Map双列集合 - Map接口
文章目录参考视频1.双列集合概述1.1.整体总述1.2.双列集合选型2.双列集合遍历方法2.1.与遍历相关的Map接口简介2.2.以HashMap为例,实现三种遍历3.Map接口概述3.1.操作Map的抽象方法3.2.新增结点规则4.Map实现类概述**4.1.HashMap - 无序,效率高,线程不安全**4.2.LinkedHashMap - 存取同序4.3.TreeMap - 默认自然排序4.4.HashTable / ConcurrentHashMap - 无序,线程安全4.5.Properties原创 2022-04-01 15:36:37 · 762 阅读 · 0 评论 -
Java基础 | 12.String、StringBuffer和StringBuilder
文章目录参考文章1.总述2.String3.StringBuffer和StringBuilder3.1.整体概述**3.2.二者区别**4.特例解析4.1.例子与结论4.2.结论分析参考文章String、StringBuffer与StringBuilder之间区别1.总述字符串变量是否可变特点String否StringBuffer是效率低,线程安全(多线程)StringBuilder是效率高,线程不安全(单线程常用)结论:如果某字符串经常变动,不原创 2022-04-01 15:32:16 · 214 阅读 · 0 评论 -
Java基础 | 11.toString( )、hashCode( )和equals( ),Objects工具包
文章目录参考视频1.Object:所有类的根类(位于最顶层)1.1. Object.toString()1.2.Object.hashCode()1.3.Object.equals(Object)2.Objects:工具包2.1.Objects.equals(Object, Object)2.2.Objects工具类搭配三种重写方法参考视频215 - 2181.Object:所有类的根类(位于最顶层)Object类是所有类的根类,所有的类在被创建时,会默认继承Object类(extends)Obj原创 2022-04-01 15:27:17 · 558 阅读 · 0 评论 -
Java基础 | 10.多态、向上转型、向下转型
文章目录前置条件1.向上转型 - 子类转换成父类2.向下转型 - 父类转换成子类3.instanceof前置条件有父类Animal,Cat是Animal的子类之一,即:// 父类:动物public class Animal {...}// 子类:猫咪public class Cat extends Animal {...}1.向上转型 - 子类转换成父类// 向上转型:子类转成父类Animal animal = new Cat();向上转型一定安全,不会抛出异常,但也存在弊端:向原创 2022-03-31 22:01:27 · 267 阅读 · 0 评论 -
Java基础 | 09.接口interface
文章目录参考文章1.接口概述2.接口中的方法**抽象方法**默认方法静态方法(Java8)私有方法(Java9)3.接口常量4.接口的继承与实现4.1.接口间的多级继承与多继承 - extends4.2.接口的实现 - implements参考文章JAVA基础——接口(全网最详细教程)1.接口概述在JDK1.8之前,接口是由全局变量和公共的抽象方法组成的一种特殊的类(不能称之为类)。接口是解决无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽原创 2022-03-31 22:00:53 · 285 阅读 · 0 评论 -
Java基础 | 08.抽象abstract
文章目录1.何为抽象?2.抽象类与抽象方法2.1.abstract关键字2.2.抽象类的继承1.何为抽象?当父类中的方法不确定该如何执行,该方法就是抽象方法:仅知道其子类(实现类)必须要有该方法,但不同的子类(实现类)对该方法有不同的实现方式。具有抽象方法的类必须是一个抽象类2.抽象类与抽象方法2.1.abstract关键字使用abstract修饰方法使其变成抽象方法(此时类也需要用abstract修饰)随即使用抽象类,有以下两种方式:创建抽象类对象,并在其后的{ }中实现抽原创 2022-03-31 22:00:08 · 192 阅读 · 0 评论 -
Java基础 | 07.super关键字和this关键字
文章目录1.成员访问规则2.super关键字:访问父类成员3.this关键字:访问本类(本对象)成员1.成员访问规则优先访问局部变量(方法内)次之为成员变量 / 成员方法 / 成员构造方法(本类的)最后逐级寻找父类的成员2.super关键字:访问父类成员super.变量名:访问父类的成员变量super.方法名():访问父类的成员方法super():在子类的构造方法中,调用父类的(重载)构造方法。必须写在子类构造方法的第一行3.this关键字:访问本类(本对象)成员this.变量原创 2022-03-31 21:59:07 · 205 阅读 · 0 评论 -
Java基础 | 06.继承extends
文章目录1.何为继承?2.继承的规则2.1.类的单继承和多级继承2.2.接口间的多继承3.重写(覆写、覆盖)4.构造方法的继承规则5.继承的应用场景6.多态1.何为继承?作用是降低代码的冗余度,提高编程效率子类继承父类的成员(变量、方法和构造方法),同时子类还可以拓展、重写变量和方法注意:仅继承public和protected2.继承的规则2.1.类的单继承和多级继承对于Java的类,一个子类只能继承自一个父类但可以多级继承// 允许多级继承public class A {...原创 2022-03-31 21:57:52 · 3534 阅读 · 0 评论 -
Java基础 | 05.静态static
文章目录1.静态关键字static概述2.静态成员:**属于类,而不属于任何一个对象**静态变量:静态方法:静态代码块:3.静态成员不可访问非静态成员1.静态关键字static概述被static修饰的变量、方法、代码块都属于类,随着类的加载而加载静态变量存储在方法区中,可以类比地理解为是属于类的全局变量2.静态成员:属于类,而不属于任何一个对象静态变量:在类加载时完成初始化(赋值),无需创建实例推荐直接通过类名调用静态方法:静态方法只能访问被static修饰的属性或方法(即静态方法原创 2022-03-31 21:57:14 · 177 阅读 · 0 评论 -
Java基础 | 04.方法的签名与重载
文章目录1.方法的签名JVM中:类型签名**Java代码中:函数签名(方法签名)**2.方法的重载:同样的方法名,不同的参数列表1.方法的签名JVM中:类型签名JVM会将java代码中的函数转换成字节码,与修饰符无关,和以下三个因素有关:方法名(全限定名)形参列表返回值Java代码中:函数签名(方法签名)Java代码中的函数签名依旧与修饰符无关,只和以下两个因素有关:方法名(全限定名)形参列表2.方法的重载:同样的方法名,不同的参数列表只要函数签名不同,就可以认为是不同的函数原创 2022-03-31 21:56:31 · 539 阅读 · 0 评论 -
Java基础 | 03.==与equals的区别
文章目录参考文章前置知识1.==2.Object.equals2.1.包装类及String重写equals2.2.自定义类重写equals参考文章在java中==和equals()的区别equals和==前置知识1.==基本数据类型:比较的是值引用数据类型:比较的是对象的地址(准确地说是这个对象的堆内存地址)// 基本数据类型int num1 = 666;int num2 = 666;System.out.println(num1 == num2); // true// 引用原创 2022-04-03 12:48:53 · 75 阅读 · 0 评论 -
Java基础 | 02.反射机制及其应用
文章目录1.反射机制2.获取java.lang.Class对象3.反射的运用——简单工厂模式接口:Fruit接口实现类:Apple -> Fruit工厂类:FruitFactory启动类:App24.反射的运用——加载JDBC驱动1.反射机制正射:使用这个类之前,我们知道这个类,也知道该类的所有属性和方法。随后我们通过new关键字来实例化对象,并通过引用操作该对象,该过程称之正射。反射:可以理解为是正射的逆过程。起初并不知道要初始化什么类,而是拿到一个对象,通过反射API来获取这个对象的类对应原创 2022-03-31 19:54:15 · 392 阅读 · 0 评论 -
Java基础 | 01.基本数据类型
文章目录参考文章数据类型总述1.八大基本数据类型和对应包装类型1.1.类型概述1.2.数值型数据的默认数据类型1.3.类型转换2.引用数据类型参考文章Java数据类型基本数据类和引用数据类型数据类型总述1.八大基本数据类型和对应包装类型1、boolean:数据值只有true或false,适用于逻辑计算。2、char:(字符型)数据在内存中占用2个字节。char型数据用来表示通常意义上的字符,每个字符占2个字节,Java字符采用Unicode编码,它的前128字节编码与ASCII兼容字符的存原创 2022-03-31 19:47:58 · 165 阅读 · 0 评论