Java学习笔记
文章平均质量分 82
在Java学习过程中的笔记
洛语言
这个作者很懒,什么都没留下…
展开
-
ArrayList源码分析
.ArrayList实现了三个接口,这三个接口都是标志性接口(接口中没有任何方法)。表示可以随机访问,Collections工具类中许多通用的算法,它们就会通过判断是否实现了该接口来选择不同的实现方式。表示可克隆的,只有实现了该接口才可以调用Object类中的clone()方法,ArrayList对clone方法进行了重写,但是它仍然需要调用Object中的方法clone()。:表示可序列化的,只有实现了该接口的类,它的对象才能被序列化(通过ObjectOutputStream将对象写入文件)...原创 2022-08-04 16:20:29 · 234 阅读 · 1 评论 -
JDBC —— 数据库连接
JDBC全称为,直译过来就是Java数据库连接。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现。我们要连接数据库,就要去相应的数据库官网下载驱动,驱动都是以jar包的形式存在,jar包当中有很多.class文件,这些class文件就是JDBC接口的实现。本文针对MySQL数据库的连接实现。数据库连接完整代码如下:在注册驱动时,我们现在并不会这样写,因为com.mysql.cj.jdbc.Driver类的源码中有如下静态代码块:我们在这里简单的利用数据库实现一个账号的登录。原创 2022-06-24 16:28:25 · 320 阅读 · 1 评论 -
java反射机制
文章目录反射的概述获取Class对象的三种方式通过反射机制获取类的属性通过反射机制访问Java对象的属性反射机制与属性配置文件的配合使用资源绑定器配合使用样例通过反射机制获取类中方法通过反射机制调用Java对象的方法通过反射机制获取类中的构造方法通过反射机制创建对象(调用构造方法)通过反射机制获取一个类的父类和父接口反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能原创 2022-05-28 22:11:49 · 158 阅读 · 1 评论 -
Java-lambda表达式
lambda表达式的语法语法如下:(参数) ->{表达式}注意:没有参数时,( ) 不能省略,就像无参构造那样。当可以推断出表达式的参数类型,可以将参数类型省略。当只有一个参数,且参数类型可以推断出,那么可以将 ( ) 省略。无需指定lambda表达式的返回类型,返回类型总是可以根据上下文推导而出。当表达式只有一个语句,并且没有返回值,可以省略 { }。labdam表达式的使用只有一个抽象方法的接口称为函数式接口,当我们需要这样的接口对象时,我们就可以用lambda表达式来代原创 2022-05-23 22:06:24 · 288 阅读 · 1 评论 -
Java多线程
Java线程状态Java中有如下6种状态New(新创建)Runnable(可运行)Blocked(阻塞)Waiting(等待)Timed waiting(计时等待)Terminated(被终止)新建状态 :使用new关键字创建一个thread对象,刚刚创建出的这个线程就处于新建状态。在这个状态的线程没有与操作系真正的线程产生关联,仅仅是一个java对象。可运行:正在进行运行的线程,只有处于可运行状态的线程才会得到cpu资源。可运行状态可以分为两类理解:就绪状态和运行状态:原创 2022-05-23 20:44:54 · 361 阅读 · 1 评论 -
Java数据结构——哈希表
文章目录哈希表概念哈希函数的构造平均数取中法折叠法保留余数法哈希冲突问题以及解决方法开放地址法再哈希函数法公共溢出区法链式地址法哈希表的填充因子代码实现哈希函数添加数据删除数据判断哈希表是否为空遍历哈希表获得哈希表已存键值对个数哈希表概念散列表,又称为哈希表(Hash table),采用散列技术将记录存储在一块连续的存储空间中。在散列表中,我们通过某个函数f,使得存储位置 = f(关键字),这样我们可以不需要比较关键字就可获得需要的记录的存储位置。散列技术的记录之间不存在什么逻辑关系,它原创 2022-05-22 17:50:09 · 1265 阅读 · 4 评论 -
Java中的泛型
文章目录为什么要使用泛型程序定义泛型类定义泛型方法类型变量的限定为什么要使用泛型程序使用泛型前:public class GenericTest01 { public static void main(String[] args) { List l = new ArrayList(); l.add("abcd"); l.add(100); for(Object obj : l){ String s = (S原创 2022-05-08 21:38:40 · 909 阅读 · 2 评论 -
Java中容器学习(一) —— Collection和Map
文章目录🌲1.集合的继承结构图🥦1.1Collection接口的继承结构图🌿1.2Map接口的继承结构图🌵2.Collection接口中常用方法🌳2.1contains()方法详解🍀2.2 remove()方法详解🌾3.集合的遍历——迭代器🥬3.1迭代器中的常用方法🍏迭代器的原理🌲1.集合的继承结构图🥦1.1Collection接口的继承结构图🌿1.2Map接口的继承结构图🌵2.Collection接口中常用方法🌳2.1contains()方法详解contains()方法的用法很简单,如下原创 2022-05-04 18:05:46 · 1437 阅读 · 3 评论 -
Java中的异常处理
1.🍧异常的基本概念🍰Java中异常是以类的形式存在,每一个异常都可以创建异常对象现实中的例子:火灾(异常类)2008年1月1日,小明家着火了。(异常类对象)2008年1月2日,小亮家着火了。(异常类对象)2008年1月3日,小红家着火了。(异常类对象)public class ExceptionTest01 { public static void main(String[] args) { ArithmeticException x = new Ari原创 2022-04-23 20:04:40 · 1200 阅读 · 12 评论 -
Java中的八种包装类
文章目录为什么需要包装类?Java提供的八种包装类装箱和拆箱整数型常量池Integer中的常用方法int 、Integer、String之间的相互转换为什么需要包装类?读以下程序:public class IntegerTest01 { public static void dosome(Object obj){ System.out.println(obj); } public static void main(String[] args) { }原创 2022-04-11 20:53:35 · 1959 阅读 · 1 评论 -
Java——String类以及StringBuffer、StringBuilder
文章目录String类基本概念String字符串的存储原理String类的常用构造方法String类中常用方法StringBuffer类StringBuilder类String类基本概念String类属于引用数据类型,不属于基本数据类型。在Java中只要是" "(双引号)中的,都是String对象。java中规定,双引号中的字符串是不可变的,也就是说"abc"自出生到死亡都不可能变成"abcd",也不能变成"ab"。在JDK中双引号括起来的字符串都是存储在方法区的字符串常量池当中的。(因为在实际原创 2022-03-20 18:23:58 · 351 阅读 · 0 评论 -
Object类中的方法
equals方法源代码: public boolean equals(Object obj) { return (this == obj); }SUN公司设计equals方法目的?equals方法的设计初衷是判断两个对象是否相等,但是源代码中通过“ == ” 来判断是明显不行的,通过 “ = = ”来判断的仅仅是二者的内存地址。例如以下代码:public class Test { public static void main(String[] args) {原创 2022-03-20 14:03:04 · 289 阅读 · 0 评论 -
Java中的抽象类和接口
抽象类什么是抽象类?类和类之间有共同特征,将这些共同特征提取出来进一步抽象,就形成了抽象类。由于类是不存在的,所以抽象类无法创建对象。抽象类属于什么类型?抽象类也属于引用数据类型。抽象类怎么定义?[修饰符列表] abstract class 类名{ 类体;}抽象类是干什么的?抽象类无法实例化,无法创建对象,所以抽象类是用来被子类继承的,抽象类中构造方法可以供子类使用。final与abstract是对立的两个关键字,不能联合使用。什么是抽象方法?抽象方法表示没有实现的方法,没有方原创 2022-02-26 02:00:44 · 570 阅读 · 2 评论 -
Java基本数据类型及其类型转换
此篇博客只对内置数据类型进行了总结,有些规律是自己在摸索中总结出来的,并不能保证100%正确,可以和大家一起讨论。目录数据类型隐含的强制类型转换类型转换规则:自动类型转换数据类型数据类型 所占字节数 最小值 最大值 默认值 byte 1个字节(8位) -128 127 0 short 2个字节(16位) -32768 32767 0 int 4个字节(32位) -2,147,4原创 2022-01-01 23:34:32 · 293 阅读 · 2 评论 -
Java中super关键字详解
(1)super()表示通过子类的构造方法调用父类的构造方法。模拟现实中这种场景:想要有儿子,必须先有父亲。(2)当一个构造方法第一行:既没有this(),又没有super()的话,会默认会有一个super();表示通过当前子类构造方法调用父类的无参数构造方法。所以必须保证父类的无参数构造方法是存在的。(3)this()和super()不能共存,都是只能出现在构造方法第一行。(4)父类的构造方法是一定会执行的。(5)在Java语言中,无论new什么对象,Object类中的无参构造一原创 2022-02-23 22:41:32 · 4571 阅读 · 1 评论 -
Java中static详解和JVM内存分配
目录变量分类静态变量与实例变量静态方法和实例方法静态代码块与实例代码块JVM的内存结构变量分类局部变量:在方法体里面定义的变量,该变量会在程序执行到方法体时被初始化,存储在栈( stack)内存中。成员变量:类体之内,方法体之外定义的变量,它又分为实例变量和静态变量。实例变量:没有被static修饰的成员变量,实例变量是对象所拥有的,在创建对象时被初始化,存 储在堆内存中。静态变量:被static修饰的成员变量,静态变量是被所有对象共享的,在类加载时会..原创 2022-01-16 08:00:00 · 4170 阅读 · 4 评论 -
Java多态总结
多态指的是:向上转型:子 === >父(upcasting)又被称为自动类型转换。父类型引用指向子类型对象。包括编译阶段和运行阶段:编译阶段:绑定父类的方法——静态绑定运行阶段:动态绑定子类型对象方法——动态绑定向下转型:父= = => 子(downcasting)又被称为强制类型转换。向下转型必须要进行“强制类型转换”。什么时候向下转型?当想要访问的方法是子类中特有的方法时,必须要进行向下转型。创建下面这些类和方法:class Animal{ public vo原创 2022-02-22 00:39:40 · 510 阅读 · 2 评论