- 博客(27)
- 收藏
- 关注
原创 Spring Boot统一异常处理
目的:为Spring Boot项目设计规范的统一响应框架,减少沟通成本,减轻接口消费者校验负担,降低代码接手难度,提高接口健壮性和可扩展性。• 全局异常处理器:使用 @RestControllerAdvice 和@ExceptionHandler 注解实现全局异常处理。2.全局统一Restful API统一返回。1.统一Restful API响应框架。
2024-11-02 18:09:10 119
原创 文件I/O操作---File类中方法的使用
通过调用File类提供的各种方法,能够完成创建,删除,重命名文件,判断文件的读写权限及文件是否存在,设置和查询文件创建时间,权限等操作。File类只能对文件进行一些简单操作,如读取文件的属性和创建,删除,更名文件等,但并不支持对文件内容的读或写。File(String directoryPath,String filename) //创建指定文件路径和指定文件名的File对象。在这里,directoryPath表示的是文件的路径名,filename是文件名,而dirObj是一个指定目录的File对象。
2024-06-16 12:36:10 280
原创 继承Thread实现多线程
在上面的InterruptedException表示中断异常类,Thread.sleep()和 Object.wait()都可能抛出这类中断异常。首先定义了TestThread类,它继承自父类Thread,并覆写了父类的run方法(第20~第31行)。第05行创建了一个TestThread类的匿名对象,并调用了start方法创建了一个新的线程。需要注意的是,运行本范例的结果可能有所不同,这是容易理解的,因为多线程的执行顺序存在不确定性。注意:run方法就是线程需要执行的方法。2.重写run方法(
2024-05-26 20:04:40 229
原创 Java单一线程使用
从本例中不难看出,要想运行main() 方法中的 for 循环,必须要等TestThread类中的run(方法执行完,假设run(方法不是一个简单的for循环,而是一个运行时间很长的方法,那么即使后面的代码块(例如 main() 方法后面的 for 循环块)不依赖前面的代码块的计算结果,它也必须等待,同时这也是单一线程的缺陷。1. 明确线程的目的。2. 避免长时间阻塞。
2024-05-17 15:24:43 222
原创 String类中常用的方法
string1.equals(string2)的含义是,比较当前对象(string)包含的字符串值与参数对象(string2)所包含的字符串值是否相等,若相等则equals()方法返回true,否则返回false。String类的对象是可以进行引用传递的,引用传递的最终结果是不同的栈内存将保存同一块堆内存空间的地址。根据上例可发现,“==”在本次操作中实际上是完成了它的相等判断功能,只是它完成的是两个对象的堆内存地址的相等判断,属于地址的数值相等比较,并不是真正意义上的字符串内容的比较。
2024-04-25 13:27:20 177
原创 基本数据类型与字符串的转换
首先定义整型数intValue,通过String.valueOf(intValue)将整型变量intValue转换成字符串型,再将str输出,与此类似,接着定义double类型变量Pi,再通过String.valueOf(Pi),将double类型变量Pi转换成字符串型,再输出str。
2024-04-13 14:26:39 158
原创 子类同时继承抽象类和实现接口
范例解析:最先声明了一个接口face A,并在里面声明了一个常量INFO且赋初值Hello world,同时又定义了一个抽象方法print(),再定义了一个接口face B,在其内定义了一个抽象方法get(),接着再后面声明抽象类abstractC并定义抽象方法fun(),最后声明子类subClass它先继承抽象类abstractC,随后实现接口face A和face B。(2)类与接口之间是多实现的,一个类可以实现多个接口。(1)类与类之间是单继承,并且直接父类只有一个。(3)接口与接口之间是多继承的。
2024-04-01 18:31:13 191
原创 子类继承多个接口
首先定义了接口face A其中定义了全局变量INFO和抽象方法print(),接着定义了接口face B和抽象方法get(),在最后定义了子类subClass,同时实现接口face A和face B,并分别对接口face A和face B中的抽象方法进行实现。5.如果实现类实现的多个接口当中存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。6.一个类如果直接父类当中的方法和接口当中的默认方法产生了冲突,优先用父类当中的方法。2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
2024-03-25 17:24:02 200
原创 接口---仅default方法
我们首先定义了接口InterfaceA,其中默认方法为otherprint(),接着通过定义子类subClass实现接口InterfaceA,最后实例化子类对象subObj,并调用由接口InterfaceA继承而来的默认方法otherprint()。:由于接口InterfaceA中并无抽象方法,因此没有抽象方法需要在子类中实现,所以子类subClass的主体部分什么也没有做。但这部分工作是必须的,因为接口不能通过new操作实例化对象的)。
2024-03-14 10:41:52 383 1
原创 接口及其使用
接口与一般类一样,本身也拥有数据成员与方法,但数据成员一定要赋初值,且不能再更改,方法也必须是“抽象方法”或default方法。也正因为接口内的方法除default方法外必须是抽象方法,而没有其他一般的方法,所以在接口定义的格式中,声明抽象方法的关键字abstract是可以省略的。接口是Java所提供的另一种重要技术,它可视为一种特殊的类,其结构和抽象类非常相似,是抽象类的一种变体。接口也是多个类的公共规范。(2)接口的子类(如果不是抽象类)必须实现接口之中的全部抽象方法,才能实例化对象。
2024-03-05 13:13:27 575
原创 Java对象的声明和使用
注:(创建属于某类的对象首先要声明指向”由类所创建的对象“的变量,其次利用new创建新的对象,并指派给先前所创建的变量。第5行声明了一个Person类的实例对象p1,并通过new操作,调用构造方法 Person(),直接实例化此对象。第6行和第7行对p1对象中的属性name和age进行赋值。第8行调用p1对象中的talk方法,实现在屏幕上输出信息。通过这些步骤我们就完成了Java对象的声明和使用。基本形式:类名 对象名 = new 类名();第12~20行是对Person类的定义。
2023-12-26 17:26:54 570 1
原创 数据库概念
2.候选码:一个属性集既能唯一标识元组,且又不含有多余属性,一个关系模式可以有多个候选码。(3).数据控制:包括安全性控制,完整性控制,并发控制,数据库恢复。(2).数据操控:包括对数据库进行查询,插入,删除,修改等操作。注意:(1).SQL集DDL,DML,DCL功能于一体。(2).只能直接处理一对多(含一对一)的实体关系。(1).数据定义:即定义数据库中各对象的结构。(3).查找层次数据库中的记录,速度较慢。(3).查找网状数据库中的记录,速度最快。(2).可以处理多对多的实体关系。
2023-12-21 14:25:51 398 1
原创 Java类的属性
(1)修饰符:修饰符可省略,使用默认的访问权限default,也可以是显示的访问修饰符public,protected,private及static,final其中3个访问修饰符public,protected和private只能使用其中之一,而static和final则可组合起来修饰属性。(2)属性类型:属性类型可以是Java允许的任何数据类型,包括基本类型(int,float等)和引用类型(类,数组,接口等)。第4~5行代码定义了两个静态String类型的属性str1和str2。
2023-12-14 12:26:09 412 1
原创 类与对象的理解
然后使用了main()方法,在main()方法中,定义了ColorDefine的对象b,最后调用了对象的方法getMes()。在面向对象程序设计中,类是一个独立的单位,它有一个类名,其内部包括成员变量,用于描述对象的属性;还包括类的成员方法,用于描述对象的行为。在Java程序设计中,类被认为是一种抽象的数据类型,这种数据类型不但包括数据,还包括方法。类描述了对象的属性和对象的行为,类是对象的模板。对象是类的实例,是实实在在的个体,一个类可以对应多个对象。(类是对某一类事物的描述,是抽象的,概念上的定义;
2023-12-05 16:10:18 67 1
原创 C语言关键字整理
while while循环结构。break 跳出循环或switch。sizeof 求类型或变量大小。goto 无条件跳转。else 否定分支(与if连用)for for循环结构。struct 结构体。int 整型。double 双精度浮点型。
2023-11-28 17:11:16 49 1
原创 Java二维数组的使用
第13行和第16行使用for循环输出数组里各元素的内容,并进行成绩汇总。二维数组声明的方式和一维数组类似,内存的分配也一样是用new这个关键字,其声明与分配内存的格式为。第9行声明了一个整型数组num,并对数组元素赋初值。代码解析:第8行声明一个整型变量sum用来存放所有数组元素值的和,也就是总成绩。第23行输出sum的结果,即总成绩。数组名 = new数据类型[行的个数][列的个数];(1).要记得给二维数组赋值,否则它的默认值会为0。数据类型[ ][ ] 数组名;数据类型[ ][ ]数组名={
2023-11-17 11:53:54 221 1
原创 Java一维数组的使用
在数组的声明格式里,“数据类型”是声明数组元素的数据类型,常见的类型有整型,浮点型与字符型。“数组名”是用来统一这组相同数据类型的元素的名称,它的命名规则和变量相同。声明数组后,接下来便要配置数组所需的内存,其中“个数”是告诉编译器所声明的数组要存放多少个元素,然后在内存中分配一块内存供该数组使用。例如:score = new int[3];第8行在内存中分配了一块空间,供给整形数组a使用,其元素个数为3;我们在第7行声明了整型数组a,并将空值null赋值给a;第10行使用了for循环输出了数组的内容。
2023-11-11 16:06:37 59 1
原创 Java数组的理解及注意事项
数组,顾名思义就是一组数据。Java的数组既可以存储基本数据类型的数据,也可以存储引用类型的数据。也就是说,把int[]整体当作一种数据类型,它的用法与int,float等基本数据类型相似,同样也可以使用该类型来定义变量,也可以使用该类型进行类型转换。这样我们就成功储存了12个月份的天数,在Java中,由于"int[]"整体被视为一个类型,这个数组类型定义的变量就叫做对象。4.数组的元素类型:在Java中,数组的元素类型必须是相同的。2.数组的长度:在Java中,数组的长度是固定的,一旦创建,就不能改变。
2023-11-02 20:01:31 78
原创 C语言使用函数
C语言中的任何函数都是由函数首部和函数体两部分组成的,因此我们要熟练函数的定义和调用,例如此程序,由main()和max()两个函数构成,max()函数的返回值是一个整型数,带两个整型参数,它们的具体值是由main()函数在调用时传送过来的。花括号中的部分为函数体,由声明部分和执行部分组成,声明部分用来声明执行部分中用到的变量和函数,执行部分用来描述函数完成的具体操作。(4).主函数main()的函数名main是系统定义的,main()函数若无参数,也可以用“void”表示main()函数无返回值。
2023-10-23 12:49:18 56
原创 总结(10.7~10.13)
在【for】和【while】循环中,条件是控制循环的关键。因此需要我们仔细分析和理解循环条件,并注意在循环内部对条件的影响。运算符中包括算术运算符,比较运算符,逻辑运算符等,我们要区分并理解这些运算符,同时我们要注意在使用时这些表达式的计算顺序。要重点理解声明和使用结构体和联合体,以及了解它们的区别和联系。在【for】和【while】循环中,需要理解循环的执行顺序,如果把这些步骤遗漏可能会导致程序运行不正确。指针是C语言的一大难点,如何声明和使用指针变量,以及了解指针和数组的关系都是十分重要的。
2023-10-13 12:16:06 46
原创 总结(9.19~9.27)
(2).前置运算----运算符放在变量之前,先使变量的值增或减1,再以变化后的值参与其他运算,即先自增后运算。(3).后置运算----运算符放在变量之后,使变量先参与其他运算,再使变量的值增或减1,即先运算后自增。(1).按照先“乘”“ 除”“ 余”后“加” “减”的优先级进行运算,求余数时操作数必须为整数。(1).自增运算是将单个变量的值增1,自减运算是将单个变量的值减1。(1).先计算赋值符号右端表达式的值,然后将运算结果赋给左端变量。(1).单引号括起来的单个字符叫字符常量,如'A','6'等。
2023-09-27 18:05:14 112 1
原创 总结(9.11~9.17)
对于C语言来说我比较生疏,毕竟学的时间短,一些学术上的名词还不熟悉,以及C语言的规范格式,比如我出现最多的问题就是在开头的#include “stdio.h"上,可能是因为对c语言的语法和概念没有完全掌握,还有是因为字符的大小写弄错(如'' ‘’,;Java是面向对象的程序开发语言,也就是说在编程时事先设计好的一个对象,然后主程序围绕着这个对象进行编写,而C语言是面向过程设计的,也就是说代码的编写是按照过程来设计的,顺序的执行,以各种指针和数组作为工具,从而解决问题。3.多花时间去理解指针和数组。
2023-09-18 21:26:23 56
原创 变量的声明
它的作用范围为整个类,在这个类中都可以访问到定义的这个成员变量。在图中我声明的是两个变量,像第六行声明的是赋值为3的整型变量,第七行是赋值为z的字符型变量,再通过第九行和第十行将它们的值输出来。接着我们就应该探讨变量的作用范围,任何变量是都不能超过它的作用范围的,若超出就会无法使用或计算机搜索不到要执行的程序,因此就将作用范围分为了成员变量和局部变量。在声明变量之前我们应当了解它的作用,其一它能够指定在内存中分配空间的大小;2.局部变量是在执行方法,结构方法或语句块时制作的,执行完成后变量会销毁;
2023-09-12 18:18:03 84 1
原创 语义错误的修改及优化
在第九行加了两个括号后,点击运行就解决了这个问题,在以后编写时一定记得不要范语义错误,如果遇到复杂的程序,低级错误很可能导致全盘崩溃。学习了一段日子的Java后,自己也独立编了一些简单的程序,从中也发现了一些问题,最明显的就是语义错误,如下图。显然与自己的想法不同,程序没有达到预期的要求,我想表达的是两数相加(一共6本书),而程序中却是合并后的结果。在此基础上我将一个两数相加的程序改为了两数相乘的程序,运行结果也是正确的。
2023-09-09 22:21:09 102 1
原创 Java程序的基本框架
Java的变量类型可以是整形(int) ,长整型(long),短整型(short),单精度浮点型(float),双精度浮点型(double),字符型(char)或者字符串型(String)等。:Java程序是由一个或一个以上的类组合而成的,程序起始的主体也被包含在类中。其中最常用的就是main(),而main()方法被称为程序的起始点。(注:同一类型的不同变量,可以声明在同一行也可以声明在不同行,如果声明在同一行中,不同的变量之间用逗号隔开)。】,【num2=3;
2023-09-06 23:56:42 221
原创 Eclipse建立的第一个Java项目
3.创建HelloWorld文件,在【New】一行选择【Class】,这时会弹出文本框,我们在【Name】一行输入"HelloWorld",并勾选【public static void main(String [] args)】复选框,单击【Finish】。2.在弹出的对话框中【Project name】一行输入【HelloWorld】并选择jdk的版本,完成后点击【Finish】,这样我们就完成了基本的“HelloWorld” Java项目的创建。
2023-09-01 10:00:35 401 1
原创 JAVA环境变量的配置
首先右键点击【此电脑】,找到【属性】单击左键点进去找到【高级系统设置】,最下面有一个【环境变量】,单击进去看【系统变量】找到【Path】一行后点击编辑,这时会弹出一个文本框,紧接着我们需要在文本框中输入即将添加的%JAVA-HOME\bin,添加好后点击确认,这样我们就完成了Path的环境变量配置,完成后我们可以检验环境变量是否配置成功。环境变量中最重要的是Path,该变量是告诉操作系统可执行文件的搜索路径,它的作用就是在我们没有这个应用的路径下打开我们需要的应用,接下来我们详细说明下Path的配置流程。
2023-08-28 13:01:34 4097 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人