自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 反射和动态代理

是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。

2024-09-25 08:27:32 770

原创 Java网络编程

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。

2024-09-25 08:05:41 1062

原创 线程池和JUC

当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程/* 新建 */NEW ,​/* 可运行状态 */RUNNABLE ,​/* 阻塞状态 */BLOCKED ,​/* 无限等待状态 */WAITING ,​/* 计时等待 */​/* 终止 */TERMINATED;// 获取当前线程的状态。

2024-09-24 23:22:24 1069

原创 java多线程

概述生产者消费者模式是一个十分经典的多线程协作的模式,弄懂生产者消费者问题能够让我们对多线程编程的理解更加深刻。所谓生产者消费者问题,实际上主要是包含了两类线程:一类是生产者线程用于生产数据一类是消费者线程用于消费数据为了解耦生产者和消费者的关系,通常会采用共享的数据区域,就像是一个仓库生产者生产数据之后直接放置在共享数据区中,并不需要关心消费者的行为消费者只需要从共享数据区中去获取数据,并不需要关心生产者的行为Object类的等待和唤醒方法方法名说明。

2024-09-24 22:45:18 820

原创 IO其他流

缓冲流,也叫高效流,是对4个基本的FileXxx字节缓冲流字符缓冲流缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据对象的类型和对象中存储的数据。

2024-09-24 22:34:53 780

原创 字节流和字符流

生活中,你肯定经历过这样的场景。当你编辑一个文本文件,忘记了ctrl+s,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output,即流向内存是输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。也叫做数据,也叫做作数据。

2024-09-24 22:21:37 658

原创 异常和File

我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。,例如年龄负数问题,考试成绩负数问题。在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?在开发中根据自己业务的异常情况来定义异常类.自定义一个业务逻辑异常:。一个登陆异常类。自定义一个编译期异常: 自定义类 并继承于。

2024-09-04 14:17:29 826

原创 方法引用方法

如果使用Lambda,那么根据“可推导就是可省略”的原则,无需指定参数类型,也无需指定的重载形式,它们都将被自动推导。Lambda表达式被类的实例方法替代的时候 ​ 第一个参数作为调用者 ​ 后面的参数全部传递给该方法作为参数。定义一个接口(Converter),里面定义一个抽象方法 int convert(String s);Lambda表达式被对象的实例方法替代的时候,它的形式参数全部传递给该方法作为参数。Lambda表达式被类方法替代的时候,它的形式参数全部传递给静态方法作为参数。

2024-08-27 10:22:17 593

原创 Steam流

/需求4:合并需求1和需求2得到的流,并把结果在控制台输出,要求字符串元素不能重复。演员类Actor已经提供,里面有一个成员变量,一个带参构造方法,以及成员变量对应的get/set方法。//需求3:合并需求1和需求2得到的流,并把结果在控制台输出。中间操作的意思是,执行完此方法之后,Stream流依然可以继续执行其他操作。对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中。把"张"开头的集合中的长度为3的元素存储到一个新的集合。把集合中所有以"张"开头的元素存储到一个新的集合。

2024-08-26 16:36:51 956

原创 Map集合

Map集合概述interface Map K:键的类型;V:值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复Map集合的基本使用//创建集合对象​//V put(K key, V value) 将指定的值与该映射中的指定键相关联map.put("itheima001","林青霞");map.put("itheima002","张曼玉");map.put("itheima003","王祖贤");

2024-08-25 16:27:18 698

原创 不可变集合

Map集合有一些注意事项,因为Map集合中有两个参数,所以不能使用可变形参,所以Map.of最多只能存20个参数,所以在这里我用另一个方法Map.ofEntries演示,这个方式是直接存入Entries键。2.1不可变的List集合。2.2不可变的Set集合。2.3不可变的Map集合。

2024-08-25 16:19:46 206

原创 Map集合可变参数和Collections工具类

HashMap底层是哈希表结构的依赖hashCode方法和equals方法保证键的唯一如果键要存储的是自定义对象,需要重写hashCode和equals方法TreeMap底层是红黑树结构依赖自然排序或者比较器排序,对键进行排序如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则。

2024-08-25 14:58:16 538

原创 泛型和Set集合

泛型的介绍泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制泛型的好处把运行时期的问题提前到了编译期间避免了强制类型转换泛型的定义格式: 指定一种类型的格式.尖括号里面可以任意书写,一般只写一个字母.例如: : 指定多种类型的格式,多种类型之间用逗号隔开.例如: 不可以存储重复元素没有索引,不能使用普通for循环遍历不可以存储重复元素没有索引可以将元素按照规则进行排序。

2024-08-13 11:30:37 651

原创 Collection和List集合

1.Collection集合1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】1.3Collection 集合概述和使用【应用】 Collection集合概述 是单例集合的顶层接口,它表示一组对象,这些对象也称为Colle

2024-08-13 10:50:31 975

原创 排序算法和查找算法

数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉有疑惑,可以先看一下哥们后面录制的数据结构,再回头看算法。

2024-08-13 10:09:24 904

原创 包装类Integer类

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下。

2024-06-21 11:06:45 895

原创 Date(时间类)

java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。有两种方式可以获取GregorianCalendar对象:直接创建GregorianCalendar对象;通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象【本次课使用】

2024-06-21 10:21:54 1359

原创 正则表达式

语法示例:"." : 匹配任何字符。"\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(".."));//falseSystem.out.println("你".matches("."));

2024-06-09 21:41:05 1043

原创 java中常用的API

Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息查看API文档,我们可以看到API文档中关于Object类的定义如下:Object类所在包是java.lang包。Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类;换句话说,该类所具备的方法,其他所有类都继承了。查看API文档我们可以看到,在Object类中提供了一个无参构造方法,如下所示:但是一般情况下我们很少去主动的创建Object类的对象,调用其对应的方法。

2024-06-09 18:32:16 808

原创 java内部类

将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。按定义的位置来分成员内部内,类定义在了成员位置 (类中方法外称为成员位置,无static修饰的内部类)静态内部类,类定义在了成员位置 (类中方法外称为成员位置,有static修饰的内部类)局部内部类,类定义在方法内匿名内部类,没有名字的内部类,可以在方法中,也可以在类中方法外。局部内部类:定义在方法中的类。class 外部类名 {数据类型 变量名;

2024-06-03 20:19:15 663

原创 java的接口

/接口的定义格式:interface 接口名称{// 抽象方法// 接口的声明:interface// 接口名称:首字母大写,满足“驼峰模式”类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用implements关键字。

2024-06-01 10:07:00 655

原创 java中的抽像类

abstract是抽象的意思,用于修饰方法方法和类,修饰的方法是抽象方法,修饰的类是抽象类。

2024-05-31 15:59:24 344

原创 java中的包,final,权限修饰符,代码块

图片中的package不用自己写idea会自动给我们生成,package后面跟的就是包名。包名一般是公司域名的倒写。例如:黑马是,包名就可以定义成com.itheima.技术名称。包名必须用”.“连接。包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。在使用类的时候其实完整的写法是要写包名的,但是我们前面都在同一个包下面引用类,所以不写也没事,接下来我们看看引用其他包的类的什么样的格式。

2024-05-31 15:27:23 646

原创 java多态

我们前面已经学习了java三大特征中的封装和继承,接下来我们来一起学习多态。我们可以看到图片中是一个方法可是因为它们的形参类不一样所以导致函数要写三遍,这样显得代码和冗余,而多态就可以解决这个问题 。把方法的形参类写成那几个类的父类就可以了, 而且当你调用方法的时候java还会自动识别你传的类是那个,然后调用你那个类的方法,这个多态的前提条件的第三个重载,不是重写啊,黑马的课打错了把应该是。下面这个是算是一个案例我直接复制的黑马的。 看下面图片的介绍大家肯定是不知道什么意思的,还是跟我看接下来的案例把

2024-05-30 23:39:33 454

原创 java的方法重写

重写是基于继承来说的,因为父类的方法需求不满足于子类,所以就要在进行方法重写,如果不知道继承是啥可以看我上一篇笔记在这里用代码举个栗子例如:我们定义了一个动物类代码如下:然后定义一个猫类,猫可能认为父类cry()方法不能满足自己的需求代码如下@Override重写注解 @Override:注解,重写注解校验!这个注解标记的方法,就说明这个方法必须是重写父类的方法,否则编译阶段报错。建议重写都加上这个注解,一方面可以提高代码的可读性,一方面可以防止重写出错!加上后的子类代码形式如下:

2024-05-28 11:37:43 489 2

原创 java的继承

我在这里也说一下我的理解,因为在代码中每个类中都会有很多相同的变量和行为,我在这里打个比方就比如男生和女生这两个类就有名字和年龄这些变量,然后如果每次创建这两个类的时候都需要写两边这些变量,就显得代码很冗余,复用性差,所以java就退出来了继承。继承就是在创建一个父类里面有子类共同拥有的变量和行为,提高复习性。继承要用extends连接表示和父类的关系class 父类 {...class 子类 extends 父类 {...同时什么时候用继承也是有说法的要满足有共同的内容并满足是父类的一种。

2024-05-28 11:37:38 739

原创 static静态变量

我在这里用自己的理解解释一下,因为静态变量是属性类的并不是某个对象的,所以它不能访问非静态的变量和方法,因为它的创建是比较对象还要早的,那静态方法中没有this是因为this是谁调用这个方法那个对象就把地址值给this,而静态方法的 直接通过类调用的,没有对象所以就没有this。它优先于对象存在,所以,可以被所有对象共享。执行完show方法,show方法出栈,然后在new了一个Student,也是在堆里面开辟了一个空间并给了一个地址值,然后把地址值给s2,然后变量初始化,但是这里没有给里面的赋值。

2024-05-27 23:42:52 880

原创 java中的工具类

私有化构造方法的作用是为了不让外界不能创造这个类的对象吗,因为工具类不是描述一个事物的,它是一个工具。在书写工具类的时候我们要遵循以下的规则。类名见面知意是为了知道这个工具类的作用。方法定义位静态是为了方便调用。以下是我们到现在学的三个类。我写了一个小demo。

2024-05-27 23:25:07 160

原创 java的对象内存图

程序最刚刚开始的时候加载main方法,先把改class包的字节码文件加载到方法区再存储main()方法,然后main()方法进栈。在堆里面开辟一个空间,堆给予这个空间一个地址值,并把把s类里面的变量以及方法地址放到这个空间里面。是指在new的时候有没有想类传入实参,有的话就执行构造方法。在main里面生成一个Student类型的s的对象。如果在Student类中有赋值就会把值给相对的变量。给空间里面的变量给予默认初始化(就是给默认值)7. 将堆里面的地址值赋值给左边的局部变量。1.加载方法的class。

2024-05-24 21:59:47 258

原创 原码和反码以及补码的介绍

(1)一个正数,他的原码就是它对应的数字。(2)一个负数,按照绝对值大小转换成的二进制数,然后最高位补1,就是负数的原码(1)正数的反码与原码相同(这是规定)。(2)负数的反码是对该数的原码除符号位外各位(1变为0,0变为1)(3)符号位:符号位就是在二进制中用来表示一个数字的正或者负﹐是最高位(最左边的一位),1表示负数,0表示正数。

2024-05-24 10:41:59 346

原创 学生管理系统加强版

先创建一个UserDeom类。在创建一个Sutdnet类。

2024-05-24 09:51:24 224

原创 java的学生管理系统

【代码】java的学生管理系统。

2024-05-22 23:26:24 175

原创 集合ArrayList

基本数据类型的包装类。

2024-05-22 23:23:56 155

原创 java中的String

StringBuilder可以优化性能,可以拼接字符串,并进行反转StringJoiner于StringBuilder不同的是他可以每个字符串之间添加字符,以及开始和结束添加字符总结

2024-05-20 15:17:31 302 1

原创 java的sout和souf的区别

souf比sout多了一个功能就是多了一个%s,这个%s是表示占位符的意思,souf的格式是System.out.printf(“%s xxxxxx %s”,xxx,xxx);后面的两个参数就是用来替代前面的%s占位符的,而且souf也不会换行。sout是System.out.println();用来打印数据的但是如果不想让数据每打印一次就换行的话,可以写成System.out.print();他们的区别就是souf比sout多了一个占位符可以更灵活的打印。

2024-05-17 14:49:46 1392

原创 java键盘录入的两套体系

nexInt();接收整数接收小数next();接收字符串遇到空格,制表符,回车就停止接受。这些符号后面的数据就不会接受了以下是测试代码还有代码的运行结果,nextInt,nextDouble(),next()可以接受空格。

2024-05-17 14:34:19 234

原创 java和js的区别

动态语言:在代码执行中的过程可以动态添加对象的属性。JAVA是一门编译型,强类型,以及静态语言。编译型的代码相比于解释型代码拥有更高的效率。编译型:编译型是把代码全部进行编译在执行。静态语言:不允许在执行过程中随意添加属性。JS是一门解释型,弱类型,以及动态语言。解释型:解释型是把代码边执行编译。强类型:声明变量时无需指定类型。弱类型:声明变量时必须指定类型。

2024-05-14 15:26:08 118

原创 java的重载

重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载。方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载。重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。多个方法的参数不相同,类型不同或者数量不同。多个方法具有相同的方法名。多个方法在同一个类中。

2024-05-13 19:56:42 195

原创 第八章课后作业

【代码】第八章课后作业。

2024-05-13 19:50:43 213

原创 第八章总结

8.1.比目后端云简介一个完整的小程序系统,不但需要前端的展现,而且需要后端服务器的支撑,以提供数据服务。也就是说,开发一个真正完整的小程序应用,需要前后端的相互配合。小程序与远程服务器之间通过HTTPS传输协议进行数据交换。8.1.1.注册Bmob账号首先,登录Bmob 后端云官网地址(https://www.bmobapp.com),点击右上角的注册按钮,在跳转页面填入姓名、邮箱,并设置密码,确认后到邮箱激活Bmob账户,即可拥有Bmob账号。第一步输入bmob网址第二步扫码关注公众号。

2024-05-11 10:23:13 516 1

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

TA关注的人

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