- 博客(32)
- 收藏
- 关注
原创 深入Java IO:理解与实践
Java IO主要可以分为字节流和字符流两大类。字节流是最基本的流,用于处理所有类型的数据,如图片、音频、视频等。字符流则是专门用于处理文本数据的流。1. 字节流字节流主要由InputStream和OutputStream两个抽象类及其子类组成。InputStream表示字节输入流,用于从数据源读取数据;OutputStream表示字节输出流,用于向目标写入数据。2. 字符流字符流主要由Reader和Writer两个抽象类及其子类组成。Reader表示字符输入流,用于读取文本数据;
2024-04-28 21:21:30
349
1
原创 文件读写异常处理(day25)
如果在文件读取过程中发生任何其他异常(例如文件被其他程序锁定,或者由于其他I/O错误导致无法读取),程序应捕获这些异常,并输出通用的错误消息。如果文件example.txt不存在,程序应捕获FileNotFoundException异常,并输出相应的错误消息,包含文件的绝对路径。编写一个Java程序,该程序尝试读取一个名为example.txt的文件,并逐行打印其内容到控制台。使用java.util.Scanner类来读取文件内容。无论是否发生异常,程序都应确保文件资源被正确关闭。
2024-04-12 22:54:04
392
原创 Java中的异常处理(day24)
父类,定义了空构造函数public AlcoholException(){ },今天的代码任务完成,每天研究java如何创建随机数。这个参数通常用于提供关于异常的详细信息或描述。小于60,配速过慢:其他正常。传递给父类,以便在异常对象中包含这个消息。异常,并继承父类`Exception。类的另一个构造函数,它接受一个。这行代码调用了父类(即。类)的构造函数,并将。在高速公路测速时抛出。
2024-04-11 23:59:42
372
原创 Java异常处理机制详解:多层方法调用与异常传播(day23)
第一种是不论捕获到哪种异常,都只会调用e.printStackTrace()方法,打印出异常的堆栈跟踪信息。第二种是即使只有一个异常被抛出,也会输出两行提示信息,这可能会误导阅读代码的人,让他们以为两个异常都发生了。这个代码示例展示了如何在Java中处理由方法调用链中的底层方法抛出的异常。通过在不同的方法层使用。块,可以控制异常的传播和处理方式。在这个例子中,异常从底层。上面这两个代码的区别就是有无。4.throws关键字。4.throws语句。
2024-04-10 23:48:46
545
1
原创 世界客观事物间的关系与面向对象编程中的类关系(day22)
依赖关系强调类之间的使用关系,客观世界中还存在关联关系,如:人有一部手机,人有一辆汽车,人与汽车,人与手机是关联关系。在编程中,如果A类的某个数据成员属于B类,那么A类和B类是关联关系。如果A类中使用B类,且这种关系具有临时性和偶然性,但是B类的变化将影响A类,称B类与A类存在依赖关系。(1)整体部分是可分离的,他们有各自的生命周期,如:球队是整体,球员是部分,球员离开球队任然可以继续存在。(2)类之间体现整体与部分的关系,整体与部分是不可分的,整体的结束意味着部分也结束。一个类可以实现多个接口。
2024-04-07 23:52:13
352
1
原创 深入理解Java匿名内部类(day21)
在Java编程中,匿名内部类是一种非常有用的特性,它允许我们定义和实例化一个类的子类或实现一个接口,而无需给出子类的名称。本文将深入探讨Java匿名内部类的概念、用法以及在实际开发中的应用场景。匿名内部类是指没有名字的内部类。它是定义在另一个类中的类,并且没有明确的类名。匿名内部类主要用于继承其他类或实现接口,并在需要的时候直接创建该类的对象。当我们需要继承一个已有的类,并添加一些特定的方法或字段时,可以使用匿名内部类。当需要实现一个接口时,匿名内部类同样非常有用。继承一个类创建匿名内部类。
2024-04-06 23:41:41
488
原创 深入理解Java异常处理机制(day20)
1.利用try···catch···finaly语句处理异常,优点是分开了处理异常代码和程序正常代码,增强了程序的可读性,减少中途终止程序运行的可能带来的危害。2.由Java的异常处理预设方式处理,一旦程序发生异常停止执行,并将错误信息发送给用户。3.对于可能抛出异常的方法,尽量在方法签名中声明它,以便调用者知道需要处理哪些异常。4.避免在代码中抛出过多的非检查型异常,因为这可能会使代码难以理解和维护。在计算机编程里面,异常的情况比所我们所想的异常情况还要多。1.尽早捕获和处理异常,避免异常向上层传播。
2024-04-05 23:26:26
571
原创 程序员沟通之道:TCP与UDP之辩,窥见有效沟通的重要性(day19)
今天被师父骂了一顿,说我不及时回复他,连最起码的有效沟通都做不到怎么当好一个程序员,想想还挺有道理,程序员需要知道用户到底有哪些需求,用户与程序员之间的有效沟通就起到了关键性作用。今天就来谈谈程序员有效沟通的重要性(TCP与UDP)的区别。这也间接说明了有效沟通得重要性,程序员如何与客户进行有效沟通呢,就是在用户提的任何要求时,我们都要及时回复,让用户知道我们已经收到了他的信息,否则用户无法确定我们是否能够完成他的要求。图一是在有效沟通地情况下,确保数据的安全传输,而图二的数据传输方式就比较粗鲁。
2024-04-04 13:57:48
467
原创 Java多态世界(day18)
上面的eat()方法是先在父类中找方法,父类没有的话,就算子类有编译也会报错。(如果引用方法在父类中存在,编译通过,找不到则报错。但是转的过程也就是down casting时会出现异常,关于异常处理,我们明天再讲。2.动态绑定:运行时先在子类中方法,没有则向上找,也就是从父类中找。大家可以看看下面的图,利用Java多态来分析这张图片。如果子类中有的方法父类没有,可以将父类强转为子类。
2024-04-03 23:21:20
532
原创 Java代码示例:演示多态特性及子类方法重写(day17)
上面的父类特有的方法不是私有的,因此子类能够继承。在下面的代码中,使用了java的多态,即。如果子类中有重写覆盖父类。调用的是子类的方法。
2024-04-02 22:22:26
392
原创 Java接口与继承实践:Ether通信系统的构建(day16)
今日总结:子类如何实现多个接口的体现,以及java中的继承和接口。创建一个类Radiosignal继承Signal。创建一个子类实现IContrller,创建一个接口Icontroller,创建一个子类实现IReceiver,再创建一个接口IReceiver,创建一个Signal类。最后创建一个Main类。创建一个类Ether。创建一个用户User。
2024-04-01 23:45:45
548
原创 Java中的多态性:深入理解与实战示例(day15)
在Java编程中,多态性是一个核心概念,它允许我们编写可重用、可扩展且灵活的代码。多态性(Polymorphism)是面向对象编程的三大特性之一,它指的是同一个接口可以有多种不同的实现方式或者同一个操作作用于不同的对象,可以产生不同的结果。在Java中,多态性主要通过方法重载(Overloading)和方法重写(Overriding)来实现,其中方法重写是实现多态性的一种主要手段。:通过多态性,我们可以实现代码的复用,减少重复代码的出现。方法,而无需关心具体的对象类型,这就是多态性的魅力所在。
2024-03-31 23:44:23
510
1
原创 Java接口实战:模拟咖啡制作、订购与消费完整流程(day14)
总结:今天老师讲到的接口有一点理解不过来,只理解了一个大概,java的世界从接口开始,理解接口才能够真正学会java,看来得多敲代码了。分别实现了这些接口,并模拟了咖啡制作、订购和接收的流程。接口定义了制作咖啡的方法,接口定义了订购咖啡的方法,接口定义了接收咖啡的方法。
2024-03-30 23:42:34
384
原创 深入理解Java接口:定义、使用与重要性(day13)
在实际开发中,我们应该充分利用接口的优势,遵循面向接口编程的原则,以提高代码的质量和可维护性。在Java中,接口是一种引用类型,是方法的集合,如果说类是一种具体实现体,那么接口就是一种规范,接口中只定义方法,不包含方法的实现。通过接口,我们可以定义一种通用的行为规范,不同的类可以实现这个接口,从而表现出不同的行为。通过定义接口,我们可以将一组相关的方法抽象出来,使得不同的类可以实现相同的接口,从而实现代码的复用。一个类可以实现一个或多个接口,实现接口的类必须提供接口中所有方法的具体实现。
2024-03-29 22:19:22
569
1
原创 Java抽象类详解:定义、特性与实例化限制(day12)
总结一下今天老师上课的内容,前面几节课听得是有点懵,在讲到内存问题,也就是代码在栈、堆、以及方法区是怎么执行的,听得不是很懂,今天讲到抽象类以及重写的机制,似乎开始慢慢懂得了java的底层原理。方法会出现“Missing method body, or declare abstract”报错,缺少方法体,或声明对象。抽象类时,会出现提示“Abstract method in non-abstract class”,非抽象类中的抽象方法。此刻,就需要用到我们今天的抽象类。则子类不可以继承该父类的方法。
2024-03-28 21:55:05
617
原创 Java面向对象编程:方法覆写与属性覆盖的区别与影响(day10)
两者之间的区别在于覆写的对象不同:方法覆写是覆写父类的方法,而属性覆写是覆写父类的属性。此外,它们的影响也不同:方法覆写会改变子类中该方法的实际行为,而属性覆写则可能导致属性值的冲突或混淆。因此,在编写代码时,需要根据实际需求慎重选择是否使用这两种覆写方式。属性覆盖:指的是子类的数据成员与父类的数据成员重名。成员方法中存在覆写关系,数据成员中存在覆盖关系。
2024-03-26 23:41:46
313
原创 解决IntelliJ IDEA代码自动补全与自动建议失效问题:操作指南与问题解决技巧
*总结:**在使用intellij-idea的过程中,我们会遇到很多问题,不断地发现问题并解决问题,有解决问题的能力是每一个计算机专业学生的修养。那么我们如何解决呢?我们需要点击File——Setting——Editor——General——Code Completion并选中图中的参数即可。当你的代码无法自动补全和自动建议时会出现下面这种情况,注:该文档有详细的介绍跟解决过程。
2024-03-25 23:35:10
1611
1
原创 Java中的super和final关键字:深入理解面向对象编程的关键要素(day9)
访问父类的成员变量:如果子类与父类有同名的成员变量,那么可以使用super来引用父类的成员变量。在构造器中调用父类的构造器:子类的构造器可以通过super关键字调用父类的构造器。调用父类的方法:当子类重写了父类的方法后,如果还想调用父类被重写的方法,可以使用。是两个非常重要的关键字,它们各自在Java编程中扮演着不同的角色。关键字用于声明属性、方法和类,其主要作用是限制其被修改和继承。final关键字主要用于限制变量、方法和类的修改和继承。关键字主要用于在子类中引用父类的成员和构造器。这通常用于常量定义。
2024-03-25 23:00:21
460
1
原创 IntelliJ IDEA中遇到的“cannot access java.lang.String“错误及其解决方案(day8)
在上面的代码中,我使用了this.这个关键字,发现出现了以上问题,找了一些资料,不是很明白,最后发现了在intelliJ右上角有错误和警告标识,鼠标放上去之后出现All problem。:你的项目可能没有正确设置类路径(classpath),导致 IntelliJ IDEA 无法找到 Java 标准库。:你的项目可能没有正确配置 JDK(Java 开发工具包),或者可能配置了一个损坏的 JDK。:如果你的项目中有一些依赖管理问题,比如多个版本的同一个库,这也可能导致访问问题。
2024-03-24 21:22:11
1957
1
原创 Java中的继承、重载与重写:概念、区别与实例演示(day7)
方法,但这次重载的方法参数与父类的方法参数顺序不同,因此不构成重写,而是新的重载方法。的对象,并分别调用了它们的方法,展示了继承、重写和重载的效果。方法,使其具有不同的行为。
2024-03-23 23:24:45
348
原创 Java中的继承机制:实现代码重用与类扩展的关键(day6)
在Java中,继承是面向对象编程的四大基本特性之一,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。汽车、轮船、飞机既是交通工具子类也是分别是载重汽车,小轿车,客轮,货轮,客机,运输机的父类。:子类可以在继承父类的基础上,添加新的属性和方法,或者重写父类的方法,以满足更具体的需求。:子类可以直接继承父类的属性和方法,避免重复编写相同的代码,提高了代码的重用性。:继承可以形成类的层次结构,使得类之间的关系更加清晰,有助于代码的组织和管理。单继承:即一个子类只能有唯一的一个父类。
2024-03-22 22:11:04
570
1
原创 Java中的this与static关键字:深入解析与应用(day4)
所谓的面向对象就是现实中的一切物体具象化后再抽象成为类,而这个类就是我们Java中所说的对象,也就是现实中的对象——具象(抽象为类)——类——对象。对象通过调用彼此的方法(即对象的行为)来交互。在上面的图可以看到,成员方法里面的属性是没有修饰符的,这和我们上次提到的访问控制权限符有关,我们的修饰符是访问不了成员方法里面的属性的。系统在创建类的实例对象时,分别开辟了栈内存和堆内存,栈内存用于存储对象,堆内存用于存储对象的数据成员。了对象的属性和方法。在类里面我们有数据成员(类的属性)和方法成员。
2024-03-20 21:19:24
1579
1
原创 Java封装性:给代码穿上“隐身衣”,安全又神秘!(day3)
方法是一个特殊的方法,用于修改一个类的私有字段的值。它通常是一个公共方法,接受一个参数,该参数的类型与要修改的字段的类型相同,并且方法内部使用这个参数来更新字段的值。,简单来说,就是把一个东西(在这里是一个类的成员,比如字段或方法)包裹起来,不让外界直接看到或修改它。方法修改私有字段的值可以确保对字段的修改是安全的,并且可以在修改值之前执行一些必要的检查或计算。时,它只能被该类的其他成员访问,而不能被该类的外部代码直接访问。方法也是一个特殊的方法,用于返回一个类的私有字段的值。修饰的数据成员不可以改了吗?
2024-03-19 21:44:40
251
原创 JVM探秘之旅:深入剖析Java虚拟机的内存模型与奥秘(day2)
JVM的分配内存区域主要有Heap(堆)、Stack(栈)、PCRegister(程序计数器寄存器)、Native Method Stack(本地方法栈),这些组件共同构成了Java虚拟机的内存模型,他们协调工作以确保程序的正确执行。(2)本地方法栈的结构和操作与Java虚拟机栈类似,但由于它执行的是native方法,因此其实现可能依赖于具体的JVM实现和宿主机的操作系统。而Class Area或其他的Java类都是在这个内存模型的基础上运行的,对象都存储在堆上,而类的方法在执行时会在栈上创建栈帧。
2024-03-18 19:41:56
811
原创 Java程序编译与执行全解析:从源代码到机器码的旅程(day1)
机器码是根据计算机硬件信息,如CPU、内存、主板等生成的独特识别码。每台计算机的硬件信息不同,生成的机器码也不同。在软件注册时,用于识别特定的计算机,确保软件正常工作。同时,机器码也是计算机可直接执行的代码,是CPU可解读的二进制指令。
2024-03-17 23:24:08
947
1
原创 Java的访问控制(学习笔记)
先是学习书上的代码,使其能够正常运行。package p1;int id;package p1;s1.id = 8;运行结果如下:到目前为止,一切正常。
2024-03-16 23:15:59
272
原创 toString函数,为自己代言——Java学习笔记(Week2)
Java语言中,每个对象生来继承了java.lang.Object的toString函数,因此获得了说话的权力。其中hashCode也是java.lang.Object的成员函数,其作用是返回该对象的哈希值。每个自定义的类,都继承了java.lang.Object的toString函数。如果不用自定义的toString覆盖父类中的方法,就会返回哈希值。这个星期学习了Java中的toString函数。文章的末尾,又到了升华主题的时候……运行,控制台输出的结果是:。这个结果看上去有些奇怪。
2024-03-10 23:57:40
253
原创 一个奇异而美丽的新世界——Java学习笔记(Week1)
我们学习一门编程语言,往往从控制台输出开始。这段看似简单的问候语,仿佛一个充满魔力的咒语(我猜是空间系魔法),打开了一扇扇通往崭新世界的大门。如果说");打开了C语言世界的大门,那么");就打开了通往Java语言世界的大门。现在,站在Java世界的门口,我感觉良好——这是一个奇异而美丽的新世界。以下是我在学习Java过程中的一些体会。由于刚刚入门,所以这些体会都不甚深刻,可以说是流于表面。但这些的确是Java与C之间最明显的差异了,不是吗?
2024-03-03 23:53:35
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人