Java学习
文章平均质量分 90
海绵宝宝丶哈
程序猿
展开
-
day27-注解
自定义注解单独存在是没有什么意义的,一般会跟反射结合起来使用,会用发射去解析注解。针对于注解,只要掌握会使用别人已经写好的注解即可。关于注解的解析,一般是在框架的底层已经写好了。原创 2024-06-03 17:19:14 · 896 阅读 · 0 评论 -
day26-单元测试
【代码】day26-单元测试。原创 2024-06-03 17:16:21 · 533 阅读 · 0 评论 -
day25-XML
万维网联盟(W3C)万维网联盟(W3C)创建于1994年,又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者: Tim Berners-Lee (蒂姆·伯纳斯·李)。是Web技术领域最具权威和影响力的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南,如广为业界采用的超文本标记语言HTML(标准通用标记语言下的一个应用)、可扩展标记语言XML(标准通用标记语言下的一个子集)原创 2024-05-30 16:57:45 · 1146 阅读 · 0 评论 -
day24-类加载器
基础加强包含了:反射,动态代理,类加载器,xml,注解,日志,单元测试等知识点其中最难的是反射和动态代理,其他知识点都非常简单由于B站P数限制,xml,注解等知识点,阿玮写了详细文档供大家学习。原创 2024-05-30 16:31:26 · 700 阅读 · 0 评论 -
day23-日志
跟输出语句一样,可以把程序在运行过程中的详细信息都打印在控制台上。 利用log日志还可以把这些详细信息保存到文件和数据库中。原创 2024-05-29 16:30:31 · 253 阅读 · 0 评论 -
day22-反射、动态代理
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。转载 2024-05-28 21:14:11 · 34 阅读 · 0 评论 -
day21-网络编程
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。转载 2024-05-24 17:12:44 · 20 阅读 · 0 评论 -
day20-多线程JUC
概述生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程: 一类是生产者线程用于生产数据 一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为消费者只需要从共享数据区中去获取数据,并不需要关心生产者的行为Object类的等待和唤醒方法方法名说明。转载 2024-05-10 15:30:12 · 44 阅读 · 0 评论 -
day29-IO其他流、缓冲流、转换流、压缩流、commons-io相关资料、hutool工具包、配置文件
缓冲流,也叫高效流,是对4个基本的FileXxx字节缓冲流字符缓冲流缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据对象的类型和对象中存储的数据。转载 2024-04-28 15:24:24 · 36 阅读 · 0 评论 -
day28-IO 字节流、字符流
生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。也叫做数据,也叫做作数据。转载 2024-04-24 19:03:36 · 23 阅读 · 0 评论 -
day27-异常、File
我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。,例如年龄负数问题,考试成绩负数问题。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?在开发中根据自己业务的异常情况来定义异常类.自定义一个业务逻辑异常:。一个登陆异常类。自定义一个编译期异常: 自定义类 并继承于。转载 2024-04-15 21:11:56 · 28 阅读 · 0 评论 -
day26-不可变集合、stream流、方法引用
是一个长度不可变,内容也无法修改的集合。转载 2024-04-03 10:57:06 · 33 阅读 · 0 评论 -
day25-可变参数、集合工具类Collections
在Java中,可变参数允许方法接受数量可变的参数。这在方法定义时非常灵活,因为方法可以接受任意数量的参数,而无需预先指定参数的数量。转载 2024-04-02 18:36:50 · 26 阅读 · 0 评论 -
day24-源码解析(HashMap、TreeMap)
1. HashMap中的数据结构1.1 数组结构1.2 链表结构1.3 红黑树结构1.4 put方法实现过程1.4.1 当所添加的数组位置为null,则直接添加到数组中1.4.2 当所添加的数组位置非null1.4.2.1 key不重复,则需要挂在下面形成链表或红黑树1.4.2.2 key重复,则需要元素覆盖转载 2024-04-01 12:54:24 · 24 阅读 · 0 评论 -
day23-集合(Map、HashMap、LinkedHashMap、TreeMap)
Map集合概述interface Map K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复Map集合的基本使用//创建集合对象//V put(K key, V value) 将指定的值与该映射中的指定键相关联map.put("itheima001","林青霞");map.put("itheima002","张曼玉");map.put("itheima003","王祖贤");map.put("itheima003","柳岩");转载 2024-03-31 16:50:15 · 30 阅读 · 0 评论 -
day22-集合(泛型、Set、HashSet、LinkedHashSet、TreeSet)
泛型的介绍 泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制泛型的好处把运行时期的问题提前到了编译期间避免了强制类型转换泛型的定义格式: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如:: 指定多种类型的格式,多种类型之间用逗号隔开.例如: 不可以存储重复元素没有索引,不能使用普通for循环遍历不可以存储重复元素没有索引可以将元素按照规则进行排序。转载 2024-03-28 15:09:08 · 44 阅读 · 0 评论 -
day21-数据结构(二叉树、二叉查找树、平衡二叉树、红黑树)
如何旋转: 先在右子树对应的节点位置进行右旋,在对整体进行左旋。左左: 当根节点左子树的左子树有节点插入,导致二叉树不平衡。左右: 当根节点左子树的右子树有节点插入,导致二叉树不平衡。右右: 当根节点右子树的右子树有节点插入,导致二叉树不平衡。右左:当根节点右子树的左子树有节点插入,导致二叉树不平衡。上图违背第四个规则:两个红色节点不能相连,因此需要变换。添加完成后,不满足两个红色节点不能相连的规则,进行调整。18的父节点是黑色的,不需要任何操作,调整结束。因此还需要旋转两次,先旋转右子树,在旋转整体。转载 2024-03-31 13:19:34 · 23 阅读 · 0 评论 -
day20-集合(Collection、 迭代器、List、ArrayList、LinkedList)
Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayListCollection集合常用方法方法名说明添加元素从集合中移除指定的元素根据条件进行移除清空集合中的元素判断集合中是否存在指定的元素判断集合是否为空集合的长度,也就是集合中元素的个数List集合的概述。转载 2024-03-28 11:19:14 · 29 阅读 · 0 评论 -
day19-常用API(查找、排序、Arrays、lambda)
数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构,再回头看算法。转载 2024-03-22 17:05:35 · 42 阅读 · 0 评论 -
day18-常用API(时间类、包装类)
java.util.Date`类 表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数:从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。:将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。转载 2024-03-22 11:05:43 · 42 阅读 · 0 评论 -
day17-正则表达式
语法示例:“.” : 匹配任何字符。“\d”:任何数字[0-9]的简写;“\D”:任何非数字[^0-9]的简写;“\s”: 空白字符:[ \t\n\x0B\f\r] 的简写“\S”: 非空白字符:[^\s] 的简写“\w”:单词字符:[a-zA-Z_0-9]的简写“\W”:非单词字符:[^\w]代码示例://.表示任意一个字符System.out.println("你".matches(".."));//false。转载 2024-03-21 16:51:54 · 37 阅读 · 0 评论 -
day16-常用API(Math、System、Object、Objects、BigInteger、BigDecimal)
tips:了解内容查看API文档,我们可以看到API文档中关于Math类的定义如下:Math类所在包为java.lang包,因此在使用的时候不需要进行导包。并且Math类被final修饰了,因此该类是不能被继承的。Math类包含执行基本数字运算的方法,我们可以使用Math类完成基本的数学运算。要想使用Math类我们就需要先创建该类的对象,那么创建对象就需要借助于构造方法。因此我们就需要首先查看一下API文档,看看API文档中针对Math类有没有提供对应的构造方法。通过API文档来查看。转载 2024-03-20 14:27:56 · 48 阅读 · 0 评论 -
day15-抽象类&接口&内部类
abstract是抽象的意思,用于修饰方法方法和类,修饰的方法是抽象方法,修饰的类是抽象类。我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。//接口的定义格式: interface 接口名称 {// 抽象方法 } // 接口的声明:interface // 接口名称:首字母大写,满足“驼峰模式”类与接口的关系为实现关系,即类实现接口。转载 2024-03-18 11:06:34 · 41 阅读 · 0 评论 -
day14-多态&final&包&权限修饰
多态: 是指同一行为,具有多个不同表现形式。从上面案例可以看出,Cat和Dog都是动物,都是吃这一行为,但是出现的效果(表现形式)是不一样的。前提【重点】有继承或者实现关系方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型:指子类对象继承的父类类型,或者实现的父接口类型。 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。如果有一个方法我不想别人去改写里面内容,该怎么办呢?Java提供了final关键字,表示修饰的内容不可变。final。转载 2024-03-15 14:11:44 · 51 阅读 · 0 评论 -
day13-继承
假如我们要定义如下类:学生类,老师类和工人类,分析如下。学生类属性:姓名,年龄行为:吃饭,睡觉老师类属性:姓名,年龄,薪水行为:吃饭,睡觉,教书班主任属性:姓名,年龄,薪水行为:吃饭,睡觉,管理如果我们定义了这三个类去开发一个系统,那么这三个类中就存在大量重复的信息(属性:姓名,年龄。行为:吃饭,睡觉)。这样就导致了相同代码大量重复,代码显得很臃肿和冗余,那么如何解决呢?转载 2024-03-13 19:41:37 · 45 阅读 · 0 评论 -
day12-static
修饰符 class 类名 {// 1.成员变量(属性) // 2.成员方法 (行为) // 3.构造方法 (初始化类的对象数据的) }// 1.成员变量// '男' '女'// 成员变量// '男' '女'// 无参数构造方法// 有参数构造方法我们已经知道面向对象中,存在类和对象的概念,我们在类中定义了一些成员变量,例如name,age,sex ,结果发现这些成员变量,每个对象都存在(因为每个对象都可以访问)。转载 2024-03-12 16:55:01 · 31 阅读 · 0 评论 -
day11-ArrayList
什么是集合 提供一种存储空间可变的存储模型,存储的数据容量可以发生改变ArrayList集合的特点 长度可以变化,只能存储引用数据类型。泛型的使用 用于约束集合中存储元素的数据类型//下面是空参,有参,get和set方法loop:System.out.println("-----------------欢迎来到黑马学生管理系统-------------------");System.out.println("1:添加学生");转载 2024-03-12 13:49:21 · 29 阅读 · 0 评论 -
day10-字符串
什么是API API (Application Programming Interface) :应用程序编程接口java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用。 String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。转载 2024-03-08 20:28:31 · 42 阅读 · 0 评论 -
day09-面向对象综合练习
需求: 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来。举例: 程序运行之后结果为: 姓名为:乔峰 血量为:100 姓名为:鸠摩智 血量为:100 乔峰举起拳头打了鸠摩智一下,造成了XX点伤害,鸠摩智还剩下XXX点血。 鸠摩智举起拳头打了鸠摩智一下,造成了XX点伤害,乔峰还剩下XXX点血。 乔峰举起拳头打了鸠摩智一下,造成了XX点伤害,鸠摩智还剩下XXX点血。转载 2024-03-08 15:00:19 · 54 阅读 · 0 评论 -
day08-面向对象
类的组成是由属性和行为两部分组成属性:在类中通过成员变量来体现(类中方法外的变量)行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)类的定义步骤:①定义类②编写类的成员变量③编写类的成员方法public class 类名 {// 成员变量变量1的数据类型 变量1;变量2的数据类型 变量2;// 成员方法方法1;方法2;/*手机类:类名:手机(Phone)成员变量:品牌(brand)价格(price)成员方法:打电话(call)转载 2024-03-05 18:38:58 · 29 阅读 · 0 评论 -
day07-综合练习
需求: 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。转载 2024-03-04 11:22:11 · 26 阅读 · 0 评论 -
day06-方法
方法(method)是程序中最小的执行单元注意:方法必须先创建才可以使用,该过程成为方法定义方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用public static void 方法名 ( ) {// 方法体;// 方法体;方法名();method();注意: 方法必须先定义,后调用,否则程序将报错定义格式:参数:由数据类型和变量名组成 - 数据类型 变量名参数范例:int apublic static void 方法名 (参数1) {方法体;转载 2024-02-17 19:17:08 · 42 阅读 · 1 评论 -
day05-数组
数据类型 [] 数组名比如:int [] array。转载 2023-10-13 15:27:07 · 74 阅读 · 0 评论 -
day04-判断和循环
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。 小明的考试成绩,如果用switch,那么需要写100个case,太麻烦了,所以用if简单。转载 2023-10-08 21:37:42 · 60 阅读 · 0 评论 -
day03-运算符
- * / % 这些操作跟小学数学几乎是一模一样的。/ 和 % 的区别:他们两个都是做除法运算,/取结果的商。% 取结果的余数。整数操作只能得到整数,如果想要得到小数,必须有浮点数参与运算。算术运算符的高级用法:是以+为例进行的讲解,其余减法,乘法,除法的运算规则也是一样的。特例:字符串只有+操作,没有其他操作。 && 和 & 、||和|的运行结果都是一模一样的。 但是短路逻辑运算符可以提高程序的运行效率。转载 2023-10-08 21:36:23 · 71 阅读 · 0 评论 -
day02-Java基础语法
变量就在程序中临时存储数据的容器。但是这个容器中只能存一个值。 数据类型 变量名 = 数据值;//1.定义byte类型的变量//数据类型 变量名 = 数据值;//2.定义short类型的变量//3.定义int类型的变量int c = 30;//4.定义long类型的变量//5.定义float类型的变量//6.定义double类型的变量//7.定义char类型的变量//8.定义boolean类型的变量注意点。转载 2023-10-08 21:35:26 · 47 阅读 · 0 评论 -
day01-Java入门
就是在windows操作系统中,利用命令行的方式去操作计算机。我们可以利用cmd命令去操作计算机,比如:打开文件,打开文件夹,创建文件夹等。语言:人与人交流沟通的表达方式计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言Java是一门非常火的计算机语言。(也叫做编程语言)我们想要让计算机做一些事情,那么就可以通过Java语言告诉计算机就可以了目录名称说明bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。conf该路径下存放了JDK的相关配置文件。转载 2023-10-08 21:32:11 · 42 阅读 · 0 评论