- 博客(25)
- 收藏
- 关注
原创 B/S方向预备课
DevOps是开发(Development)和运维(Operations)相结合的文化和实践,它通过自动化流程和跨团队协作提高开发效率和软件质量。GitHub是一个基于Git的代码托管平台,可以存储和管理代码,并支持版本控制、团队协作、代码审查等功能。Java作为后端开发的主要语言,广泛应用于构建B/S架构的软件系统中,具有跨平台、稳定性强等优点。全栈开发要求开发者既能进行前端开发,也能处理后端逻辑和数据库操作,是现代开发中非常受欢迎的技能。前端开发负责网页的呈现和用户交互,是连接用户和后端服务的桥梁。
2024-12-29 17:06:43
930
原创 Java API:8. Java collections framework
Collection(用于存储单一元素的集合)和Map(用于存储键值对的集合)。它们都包含了多种常用的数据结构,可以帮助我们高效地处理和操作数据。在编程过程中,理解并熟练使用这些集合类是非常重要的。Iterable接口是 Java 集合框架中的根接口,类似于黑帮的帮规,规定了所有集合类都必须支持迭代操作。通过iterator()方法,集合类提供了一个统一的方式来访问其中的元素,允许我们通过for-each循环或者显式使用Iterator来遍历集合。
2024-12-30 17:44:39
913
原创 Java API:7. Multithreading
通过实现Runnable接口来创建线程,我们不仅避免了Thread类的继承限制,还能够让线程类在不干扰其他继承关系的情况下执行任务。这是一种非常灵活且推荐的线程创建方式,尤其是在需要多重继承或接口的场景中。使用Runnable接口可以帮助我们编写更具可扩展性和可维护性的多线程代码。通过简化线程创建操作以及为线程设置合适的名称,我们可以更加高效地管理和调试多线程程序。在实际项目中,线程名称对于问题定位和性能监控至关重要。合理的线程命名不仅能提高程序的可读性,还能帮助我们快速识别问题和优化代码。
2024-12-30 17:26:33
1375
原创 Java API:6. Charset
Java NIO(New Input/Output)是Java 1.4版本中引入的文件I/O API,它与传统的文件I/O(Java IO)相比,具有更高效、更灵活的文件处理能力。Java NIO的引入解决了许多IO流的性能问题,尤其是在处理大量数据或进行非阻塞I/O操作时。在Java 7中,
2024-12-30 16:57:39
896
原创 Java API:5. IO Stream
I/O流是一个双向的过程,正如流体流动在不同环境下的表现那样,输入和输出是相对的,取决于程序的需求和任务。理解了这个类比,可以帮助我们更好地理解计算机中的I/O流动。
2024-12-30 16:53:24
921
原创 Java API:4. File
绝对路径:从根目录开始,明确指向目标文件或文件夹,位置固定。相对路径:相对于当前目录的路径,依赖于当前工作目录,灵活但可能变化。File类提供了访问文件和目录的基础方法,但它并不直接处理文件内容的读取和写入。你可以使用File类来检查文件是否存在、获取文件的大小、列出目录内容等。需要注意的是,File类在操作文件路径时要特别小心路径的正确性。Linux/Unix:路径以开始,使用作为路径分隔符。Windows:路径以驱动器字母(如)开始,使用\\
2024-12-30 16:40:37
862
原创 Java API:3. Throwable
在编程中,异常和错误是两种重要的运行时问题,它们代表了程序在执行过程中出现的异常情况。理解它们的区别和如何处理异常是编写健壮程序的基础。定位错误:阅读异常提示,定位错误发生的位置。错误信息中通常会包含错误类型、行号和堆栈信息,帮助我们理解问题。解决错误:根据异常信息判断问题所在,并采取措施解决。常见的错误如除零异常和数组越界异常,可以通过添加检查逻辑来解决。异常处理:使用try-catch语句捕捉异常,避免程序崩溃,并提供用户友好的错误信息。运行时异常(
2024-12-30 11:04:22
1306
原创 Java API:2. StringBuilder
如上所述,字符串是不可变的,每次修改字符串时都会生成一个新的对象。不会每次拼接时都创建新的字符串对象,而是通过修改内部的字符数组来实现拼接,避免了频繁的对象创建和内存占用。的特性和使用方法,我们能够在需要进行大量字符串操作时提高程序的性能,特别是在字符串拼接操作中,类的特性并选择合适的工具进行字符串操作,将有助于提升Java程序的效率和可维护性。是可变的,可以在不创建新对象的情况下修改字符串内容,因此在进行大量拼接时,使用。通常用于大量的字符串拼接,尤其是当字符串的长度不确定时,它能够显著提高性能。
2024-12-30 10:55:37
1014
原创 Java API:1. unit test and main function
在开发中,我们应该始终遵循“单一职责原则”,即每个模块或函数都应该只负责一个功能。通过模块化和函数抽离,不仅可以让代码更清晰,还能提高程序的可维护性和可测试性。main方法应尽量简洁,复杂的功能逻辑应该抽离到其他函数或类中,这样更符合企业级应用的设计标准。单元测试(Unit Testing)是指对程序中最小的可测试单元进行验证的过程。这里的“单元”指的是程序中的单个类或方法。每个单元的测试独立进行,确保每个单元按预期工作,且可以单独运行。单元测试的目的是验证某个函数或方法的功能是否正确、符合预期。
2024-12-30 10:51:31
1119
原创 Java API:0. Base API
Scanner类是Java中常用的输入工具,它的命名和方法设计简洁而直观,能够帮助开发者高效地处理用户输入数据。掌握Scanner的使用方法,可以在很多Java项目中起到重要作用。Number类作为所有数字类型包装类的父类,提供了统一的接口和方法支持,使得数字类型的数据能够像对象一样操作。装箱和拆箱机制在Java中非常重要,它简化了原始数据类型和对象之间的转换,增加了代码的灵活性和可读性。Math类是Java中用于执行常见数学运算的工具类。由于它的方法都是静态的,可以直接通过Math.方法。
2024-12-30 10:44:08
838
原创 Java与生活:3.OOP下半部分
目录2-1-2 继承 (extends)关键概念代码分析1. `Animal` 类(父类)2. `Dogs` 和 `Cats` 类(子类)3. `Application` 类(测试)输出结果总结2-2-2 饿狼传说之多层继承1. **单继承 vs 多继承**2. **多层继承的示例**示例解析1. `Animal` 类(父类)2. `Dogs` 类(子类)3. `Cats` 类(另一个子类)3. **多层继承的效果**4. **为什么 Java 不支持多重继承?**5. **如何解决多继承问题?**通过接口
2024-12-30 10:02:13
900
1
原创 Java与生活:2.OOP上半部分
面向对象编程(OOP)通过类来定义事物的属性和行为,类是对象的模板。每个对象是类的一个实例,具有独立的属性和方法。在这个例子中,我们通过Dogs类定义了狗的特性和行为,并通过实例化创建了不同的狗对象,模拟了现实生活中的狗。面向对象编程(OOP)中的this关键字用于指代当前对象本身,帮助我们明确地访问对象的属性和方法。通过定义类中的成员变量和成员方法,可以模拟现实中的事物和行为。在本例中,我们通过Dogs类实现了狗的属性和行为。
2024-12-30 09:40:59
853
原创 Java与生活:1.一带而过
类的定义定义了一个公共类Main,并且是程序的入口类。main方法是程序的入口方法,是每个 Java 应用的必需方法。方法的定义和调用:定义了一个静态方法sum来计算两个整数的和,并在main方法中调用该方法。变量的声明和使用:在main方法中声明并初始化了两个整数变量number_a和number_b,并用它们计算和。行注释//):用于注释掉单行代码。段落注释/* */):用于注释掉多行代码,通常用于代码块或者较长的解释。Javadoc 注释/** */
2024-12-30 09:15:59
1204
原创 C语言零基础入门教程:225-274节
静态数组在编译时就确定大小,内存分配在栈上,生命周期由作用域决定,函数结束时自动销毁。动态数组使用malloc在堆上分配内存,大小在运行时决定。需要显式释放内存(使用free),否则会导致内存泄漏。malloc和freemalloc用于分配动态内存,free用于释放动态内存。使用malloc时,必须确保分配成功,否则返回NULL。perrorperror用于输出与errno相关的错误信息。如果malloc返回NULL,我们使用perror来输出错误信息。
2024-12-29 17:23:26
722
原创 C语言零基础入门教程:186-218节
单个字符使用char类型表示,使用%c输出。字符串可以通过字符数组或字符指针表示,但字符数组可以修改内容,而字符指针指向的字符串常量则是只读的。字符数组必须包含足够的空间来存储字符串及其结束符'\0'。输入输出流是程序与外部世界交互的桥梁,通过缓冲区提升数据处理的效率。理解stdin和stdout的概念,以及如何使用不同的函数进行输入输出操作,能够帮助开发者写出更加高效和安全的程序。scanf_s是一个比scanf。
2024-12-29 17:20:51
548
原创 C语言零基础入门教程:176-181节
struct 结构体名称 {成员类型 成员名称1;成员类型 成员名称2;// ...其中,结构体名称是你定义的结构体类型名,成员类型是成员的数据类型,而成员名称是你为每个成员指定的名字。定义了结构体类型后,我们可以通过该类型来声明结构体变量,并为其成员赋值。// 初始化日期为2024年2月12日这里,我们创建了一个Date类型的变量today,并直接初始化它的daymonthyear成员为1222024。// 初始化Nix的姓名、年龄和身高。
2024-12-29 17:17:50
460
原创 C语言零基础入门教程:157-172节
指针是一个特殊的变量,它的作用不是存储数据的值,而是存储数据的内存地址。可以将指针比作快递员手中的地图,地图上标记着各个住户的地址,快递员根据地址去找到对应的住户。指针是C语言中非常强大的工具,它可以让程序员直接操作内存。通过指针,我们不仅可以访问数据,还可以修改数据的值。了解指针的基本概念和用法,对于编写高效和灵活的C程序至关重要。掌握指针后,我们就能够更加灵活地进行内存管理、数组操作以及函数参数传递等操作。
2024-12-29 17:11:13
545
原创 C语言零基础入门教程:131-145节
在程序设计中,函数是用于实现特定功能的代码块。它能够帮助我们将程序划分为多个独立的模块,增加代码的复用性和可维护性。今天,我们通过一个简单的C语言示例,来了解函数的作用以及如何使用函数提高代码结构的清晰度。模块化:将代码分成多个独立的功能块,使得每个块的功能更加清晰。提高复用性:相同的功能可以在多个地方调用,避免代码重复。简化程序结构:通过函数封装,主程序逻辑更加简洁,易于理解和维护。函数是程序设计中的基础构建块,合理使用函数能够提高代码的质量和效率。在C语言中,函数可以通过声明和定义两步来进行管理。
2024-12-29 17:08:42
485
原创 C语言零基础入门教程:101-126节
例如,二维数组可以存储棋盘的状态,每个元素代表一个棋盘格的状态(如空白、黑棋、白棋等)。学习数组在使用过程中需要注意的一些事项,包括边界检查、初始化和动态数组等。通过数组管理多个学生的成绩,并计算平均成绩、最高分、最低分等统计数据。通过数组实现学生成绩的管理,包括计算总分、平均分、最高分和最低分。理解数组的使用注意事项,包括避免越界访问和初始化数组时的潜在问题。计算从1到N(N是用户输入的)的所有整数的平方和。理解数组的注意事项,包括越界访问和未初始化的数组。演示数组的声明、初始化和基本操作。
2024-12-29 17:03:15
1275
原创 C语言零基础入门教程:82-100节
在此案例中,我们为一个在线购物平台的优惠券系统编写了代码,根据用户的购物车总额和会员等级,系统提供不同等级的折扣。我们首先判断用户是否为VIP,接着根据购物车总额的不同来决定折扣的大小。如果用户的年龄和驾驶经验不符合条件,程序会提前退出并给出相应的提示。机器只接受1元、2元和5元的硬币,如果投入不符合要求的硬币,程序会提示并要求重新投入。在这个案例中,用户输入一系列数字,直到输入0为止,程序才会计算输入的数字总和。循环中,初始化变量、判断条件和控制迭代的语句都放在同一行,简洁明了。
2024-12-29 17:00:02
519
原创 C语言零基础入门教程:62-81节
策略模式是设计模式中的一种,它通过封装不同的行为来使得程序具有更高的灵活性。逗号运算符可以在同一个语句中执行多个操作,并返回最后一个操作的结果。按位取反(~)是对二进制数中每一位进行反转的操作。C语言中的运算符有明确的优先级,影响着表达式的计算顺序。提供了一种简洁的多条件判断方法,适用于多个分支的判断。计算优先级和顺序决定了复杂表达式的计算顺序。提供了一种简洁的方式来实现简单的条件判断。和逻辑运算符,可以实现多重复杂条件判断。语句,可以处理更加复杂的逻辑判断。这个值小于等于10!
2024-12-29 16:48:08
522
原创 C语言零基础入门教程:35-58节
通过这篇博客,我们了解了 C 语言中不同的浮点数输出格式,以及它们在处理浮点数时的表现差异。精度丢失是浮点数计算中不可避免的问题,而通过不同的输出格式,我们可以选择最适合的方式来展示数据。希望这篇博客能帮助你更好地理解浮点数的表示方式,并且在实际编码中得心应手。
2024-12-29 16:45:51
736
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅