- 博客(32)
- 收藏
- 关注
原创 Java中的HTML表格使用
`(table row)标签表示,而每行中的单元格则由`<td>`(table data)标签表示(对于表头单元格,我们使用`<th>`标签,它默认会有一些样式上的区别,如加粗和居中显示)。然后,我们创建了一个包含数据的`List`,每个元素是一个`Map`,代表表格中的一行数据。table.append("<tr><th>姓名</th><th>年龄</th>
2024-11-13 15:11:35
854
原创 Java与HTML中的标题、文本和图像
html复制代码 <h1>这是一级标题</h1> <h2>这是二级标题</h2> 标题标签不仅用于显示不同级别的标题内容,还对搜索引擎优化(SEO)有着重要意义。搜索引擎会根据标题标签的层级结构来理解网页内容的层次关系。 在Java中生成HTML标题 在Java中,我们可以通过字符串拼接或者使用模板引擎(如Thymeleaf、Freemarker等)来生成包含标题标签的HTML内容。 以字符串拼接为例: java复制代码 public class HtmlTit
2024-11-09 21:24:41
1168
原创 Java与HTML:构建静态网页
在Web开发领域,HTML是构建网页的基础标记语言,而Java作为一种强大的编程语言,也能够在创建HTML内容方面发挥重要作用。今天,我们就来探讨一下如何使用Java来制作一个不那么简单的静态网页。
2024-11-09 21:16:20
1740
原创 Java中I/O系统处理流的使用
它们通过包裹节点流,为基本的I/O操作提供了诸如缓冲、编码转换、数据类型处理等丰富的功能。在Java的I/O系统中,处理流(也称为过滤流)是一种对基本的字节流或字符流进行功能增强的流。处理流本身并不直接连接到数据源或数据汇(如文件、网络连接等),而是包裹在其他的节点流(直接与数据源或数据汇交互的流)之上,从而为节点流添加额外的功能,例如缓冲、转换编码、数据处理等功能。- 在这个示例中,假设`data.bin`文件中已经按照`int`、`double`、`boolean`的顺序写入了相应类型的数据。
2024-11-01 15:25:04
898
1
原创 Java中I/O系统中的装饰器
BufferedReader`提供了`readLine`方法,可以方便地按行读取字符文件内容,这是在`FileReader`基本读取功能基础上添加的新功能。- 但是,如果我们想要给这个字节流添加缓冲功能,以提高读取效率,我们就可以使用`BufferedInputStream`装饰器。- 假设我们有一个名为`test.txt`的文件,我们可以使用`FileInputStream`来读取它的内容。- 首先,我们有一个基本的`InputStream`,这里以`FileInputStream`为例。
2024-11-01 15:21:53
611
原创 Java中的I/O系统中的字节流
这在处理内存中的字节数据时非常有用,例如,当我们已经将一些数据读取到字节数组中,想要对这些数据进行类似文件读取的操作(如按照顺序逐个字节处理)时,可以使用`ByteArrayInputStream`。- 在这个示例中,`DataProducer`线程使用`PipedOutputStream`向管道写入数据,`DataConsumer`线程使用`PipedInputStream`从管道读取数据。- 在这个示例中,`FileReader`从`example.txt`文本文件中逐个字符地读取数据,直到文件末尾。
2024-10-21 19:44:52
982
原创 Java中的I/O流分类简介
在这个例子中,`FileInputStream`从`example.txt`文件中逐个字节地读取数据,直到读取到文件末尾(`read`方法返回 -1)。- 在这个例子中,`BufferedInputStream`对`FileInputStream`进行了封装,通过缓冲提高了读取效率。- 这里的`FileReader`从文本文件`example.txt`中读取字符数据,每次读取一个字符,直到文件末尾。- 这里`FileWriter`将指定的字符串写入到`output.txt`文件中。
2024-10-21 19:29:41
969
原创 Java中的Collections类和泛型
它提供了一系列对集合进行操作的静态方法,这些方法可以用于各种集合类型,如`List`、`Set`和`Map`等,从而方便我们对集合进行诸如排序、查找、反转等操作。- 在这个例子中,`Integer`类已经实现了`Comparable`接口,所以`sort`方法可以直接对`numberList`进行排序,输出结果为`[1, 2, 5, 8]`。- 如果找到元素,将返回元素在列表中的索引;- 在这个例子中,我们通过自定义的`Comparator`按照年龄对`Person`对象组成的`List`进行了排序。
2024-10-18 14:25:37
968
原创 Java中的LinkedList和ArrayList以及HashMap和TreeMap
**ArrayList**:在`ArrayList`的中间插入或删除元素时,需要移动后面的元素,时间复杂度为 $O(n)$($n$为元素个数)。在Java的集合框架中,`HashMap`和`TreeMap`都是用于存储键 - 值对(`key - value`)的数据结构,但它们在内部实现、功能特性以及适用场景等方面存在着明显的差异。- 当需要对键值对按照键进行排序时,例如在实现一个排行榜系统,键是用户的排名分数,值是用户信息,需要按照分数对用户进行排序时,`TreeMap`就非常合适。
2024-10-18 14:19:19
1019
原创 Java中的Iterator接口,以及HashSet和TreeSet
当我们使用增强的`for`循环遍历`HashSet`时,元素的输出顺序是不确定的,可能是`"Apple"`、`"Banana"`、`"Cherry"`,也可能是其他顺序。在Java编程中,`Iterator`接口是一个非常重要的概念,它为我们提供了一种统一且方便的方式来遍历集合(如`List`、`Set`、`Map`等数据结构中的元素,不过遍历`Map`时稍显特殊,通常是遍历其键值对的集合视图)。由于`TreeSet`的有序性,元素会按照从小到大的顺序输出,即`1`、`3`、`5`。
2024-10-13 19:24:54
1090
原创 Java中的Collection接口
`Collection`接口提供了一种统一的方式来处理不同类型的集合,如`List`(有序可重复集合)、`Set`(无序不重复集合)等。除了实现`Collection`接口的方法外,还提供了根据索引操作元素的方法,如`get(int index)`、`set(int index, E element)`等。- **判断集合是否为空**:`isEmpty()`方法用于判断集合是否为空,如果集合中没有元素则返回`true`,否则返回`false`。## 二、不同类型的集合实现`Collection`接口。
2024-10-13 14:30:10
714
原创 Java中的自定义异常
比如,在订单处理系统中,可能有`InvalidOrderQuantityException`(无效订单数量异常)表示订单数量不合法,`OrderExpiredException`(订单过期异常)表示订单已经超过了有效期限等。由于是运行时异常,在`main`方法中直接抛出这个异常时,不需要在方法签名中声明或者使用`try - catch`块(当然,如果想要处理这个异常也可以使用`try - catch`块)。在`main`方法中,我们创建并抛出了这个自定义异常,然后在`catch`块中捕获并处理它。
2024-10-05 12:01:42
1600
原创 Java中的异常概念
在`readFile`方法中,由于可能会发生`FileNotFoundException`,所以在方法签名中使用`throws`关键字声明抛出这个异常,然后在调用`readFile`方法的`main`方法中使用`try - catch`块来处理这个异常。- 这些异常是在编译时检查的。在这个例子中,首先会检查是否是`ArithmeticException`(因为除以0会抛出这个异常),如果不是这个异常,而`try`块中发生了其他异常,就会被`Exception`(所有异常的父类)类型的`catch`块捕获。
2024-10-05 11:58:48
752
原创 Java中的接口以及抽象类与接口的关系
例如,`Duck`具有飞行和游泳的能力,所以`Duck`实现`Flyable`和`Swimmable`接口。- 在这个例子中,`Mammal`接口继承了`Animal`接口,这意味着实现`Mammal`接口的类不仅要实现`giveBirth`方法,还要实现`eat`方法。例如,`Circle`是一种`Shape`,所以`Circle`可以继承`Shape`抽象类。- 在这个`Shape`抽象类中,`color`是成员变量,`getColor`是普通的非抽象方法,`getArea`是抽象方法。
2024-09-26 11:16:12
1282
原创 Java中的抽象类
这个抽象类有一个成员变量`color`表示图形的颜色,一个构造函数用于初始化颜色,一个非抽象方法`getColor`用于获取颜色,还有一个抽象方法`getArea`用于获取图形的面积,这个方法的具体实现将由不同的子类来完成。- `Circle`类继承了`Shape`类,在构造函数中调用了父类的构造函数来初始化颜色,并且实现了`getArea`方法来计算圆的面积。- `Dog`类继承了`Animal`类并实现了`makeSound`方法来表示狗叫的声音。System.out.println("喵喵喵!
2024-09-26 11:09:06
668
原创 Java中对象的类型转换以及多态性
在这个示例中,我们首先定义了`Animal`类和它的子类`Dog`。然后在`main`方法中,我们创建了一个`Dog`对象`dog`,接着将`dog`向上转型为`Animal`类型并赋值给`animal`变量。当调用`animal.makeSound()`时,由于动态绑定机制,实际调用的是`Dog`类中重写后的`makeSound`方法,输出`Dog barks`。因为这个`Vehicle`对象实际上是`Car`的实例,所以向下转型成功,可以正常调用`Car`类中的`drive`方法和`honk`方法。
2024-09-20 14:46:12
1650
原创 instanceof的用法
在这个例子中,`animal` 是 `Animal` 类的实例,`dog` 是 `Dog` 类的实例,而 `Dog` 是 `Animal` 的子类。在这个例子中,`Fish` 类实现了 `Swimmable` 接口,因此 `fish instanceof Swimmable` 返回 `true`。- `false`:如果 `object` 不是 `ClassName` 的实例或其子类的实例。- `true`:如果 `object` 是 `ClassName` 的实例或其子类的实例。
2024-09-18 11:08:39
741
原创 龟兔赛跑(一个简单飞行棋游戏)
兔子类中:(if语句检查当前是否遇到了传送格if(Map.map[position].equals("==") 还进行了判断,判断如果兔子在后20格遇到了传送就传送到终点,前80格遇到传送就往后数一个传送格的位置,其中的break是保证兔子让传送到了下一个传送格之后不会再次运行程序再传送一次)到目前为止我们的程序已经可以进行操作运行并且正常结束了,因为我们普通格和特殊格已经设计好了,只是没有给特殊格进行特殊功能处理,但是不影响程序的正常开始和结束。这就是传送格的全部逻辑了,其实就和地雷格几乎没差。
2024-09-12 12:19:56
903
原创 super与final关键字
在这个例子中,`Car`类中的`speed`变量覆盖了父类`Vehicle`的`speed`变量。在上面的例子中,`Dog`类的构造方法通过`super(name)`显式地调用了父类`Animal`的有参构造方法,从而初始化了父类的`name`属性。在这个例子中,`Dog`类重写了`makeSound`方法,并在方法中通过`super.makeSound()`调用了父类的`makeSound`方法。在上面的例子中,`MAX_SPEED`被声明为`final`变量,其值为200,且不能被修改。
2024-09-12 10:55:02
623
原创 Java中的继承和重写
例如,如果父类方法的访问修饰符是`protected`,那么子类方法的访问修饰符可以是`protected`或`public`,但不能是`private`。例如,如果父类方法的访问修饰符是`protected`,那么子类方法的访问修饰符可以是`protected`或`public`。在上面的例子中,`Dog`和`Cat`都是`Animal`的实例,但调用`makeSound()`方法时,会根据实际对象的类型调用相应的方法。- **方法重写**:子类可以重写父类的方法,以实现不同的行为。cat.eat();
2024-09-07 22:46:10
1661
原创 Java中包装类的作用
在Java编程中,基本数据类型(如`int`、`char`、`boolean`等)是构成程序的基础。包装类的主要作用是提供一种方式,使得基本数据类型可以像对象一样操作,从而在需要对象的场景中使用。Java中的包装类提供了一种将基本数据类型转换为对象的方式,使得这些数据类型可以在需要对象的场景中使用。Java的集合框架(如`ArrayList`、`HashMap`等)只能存储对象,不能直接存储基本数据类型。// 相当于 int intValue = intObj.intValue();// 自动拆箱和装箱。
2024-09-06 14:12:43
438
原创 Java中的字符串操作
通过掌握获取字符串长度、正向和反向查找、以及查找和替换字符串的方法,通过掌握获取子字符串、去除字符串前后空格、替换字符串中的字符以及字符串中字母的大小写转换,你可以在处理字符串时更加得心应手。本文将详细介绍Java中字符串的几个关键操作,包括获取子字符串、去除字符串前后空格、替换字符串中的字符以及字符串中字母的大小写转换。Java的`String`类提供了`replaceAll()`和`replaceFirst()`方法,这两个方法接受正则表达式作为参数。替换字符串中的字符或子字符串是另一个常见的操作。
2024-09-01 19:41:10
829
原创 Java中的数组用法(复制、替换、查找与排序)
System.out.println("元素 " + target + " 在索引 " + mid + " 处找到");System.out.println("元素 " + target + " 在索引 " + i + " 处找到");当然这些都是一些很基础的东西,可以做一些题来培养自己的逻辑思维,毕竟真正工作这些东西是不够使的,逻辑思维可以让你在代码中更容易编写。System.out.println("自定义排序后的数组: " + Arrays.toString(array));
2024-08-28 22:55:59
683
原创 理解Java中的继承(构建类层次结构)
在Java编程中,继承是一个核心概念,它允许我们创建一个新的类,从一个已存在的类中继承属性和方法。假设我们有一个表示交通工具的类`Vehicle`,然后我们创建一个表示汽车的类`Car`,它继承自`Vehicle`。- `Car` 类继承了 `Vehicle` 类,并添加了自己特有的属性 `numberOfDoors` 和方法 `openDoors`。- `Main` 类中创建了 `Car` 的对象,并调用了它的 `drive` 和 `openDoors` 方法。// 父类的属性和方法。
2024-08-19 21:09:12
433
原创 java的简单介绍(面向对象)
3. **封装(Encapsulation)**:封装是将数据(属性)和操作数据的方法绑定在一起,并对外隐藏对象的内部实现细节,只暴露必要的接口。4. **继承(Inheritance)**:继承是一种机制,它允许一个类(子类)继承另一个类(父类)的属性和方法。- `Main` 类中创建了 `Animal` 和 `Dog` 的对象,并调用了它们的 `speak` 方法,展示了多态性。2. **对象(Object)**:对象是类的实例,它是具体的,具有类定义的属性和行为。
2024-08-19 21:01:30
376
原创 Spring MVC 基础教程:构建Web应用程序
同时,下载并配置Spring MVC相关的库。使用Maven来管理项目依赖是一个不错的选择。创建一个新的Maven项目,并在`pom.xml`中添加以下依赖:(配置有点多,但是以后可以直接复用)在`web.xml`中配置`DispatcherServlet`,这是Spring MVC的核心Servlet,负责处理所有的请求。创建`spring-mvc-config.xml`文件,配置Spring MVC的上下文。在`/WEB-INF/views/`目录下创建一个JSP文件`home.jsp`。
2024-08-18 14:09:26
579
原创 JDBC的简单使用(连接数据库与增删改查)
JDBC(Java Database Connectivity)是Java语言中用于执行SQL语句的API。本文将介绍如何使用JDBC连接到数据库,并执行常见的增删改查操作(下面均有列举)。本文介绍了如何使用JDBC连接到数据库,并执行常见的增删改查操作。希望这个简单的示例能帮助你入门JDBC编程。如果你使用的是Maven项目,可以在`pom.xml`中添加以下依赖:(Maven添加依赖比单纯为了建立连接方便很多,否则代码会复杂很多)插入数据使用`PreparedStatement`可以防止SQL注入。
2024-08-18 13:35:57
1303
1
原创 springboot框架的基本构建
通过本文,你已经学会了如何使用 Spring Initializr 创建一个 Spring Boot 项目,并进行了基础配置。随着你对 Spring Boot 的深入了解,你会发现它提供了更多的功能和模块,帮助你构建复杂的企业级应用。Spring Boot 使用 `application.properties` 或 `application.yml` 文件来进行配置。在IDE中运行 `Application` 类,Spring Boot 将会启动嵌入式的Tomcat服务器,并监听默认的8080端口。
2024-08-10 18:27:46
1077
原创 spring框架的基本构建
(因为我在此写了@RequestMapping("/api")所以说我的访问路径是http://localhost:8080/api/hello,如果我不写@RequestMapping("/api"),我们访问路径就可以写http://localhost:8080/hello。当然,因为我们现在刚开始学习框架并没有整合使用,所以会感觉一个框架的使用很繁琐,不如单独创建一个新对象方便,但是当我们以后与多人合作整同一个项目才能体现出框架的便捷性。在开始之前,确保你的开发环境已经准备就绪。
2024-08-10 18:08:27
1119
原创 mybatis框架基本构建(2.简单使用)
紧接上一篇,我们使用数据库必须要连接数据库,不然我们的数据没有地方去存储并调用查找修改在此利用HeidiSQL建一个数据库名为blog,并建立一张名为posts的表,并且运行的话使用右键选中每步单独运行,全体运行会把全部语句都执行若是还有其他语句修改的话容易出问题。之后我们要在Java包中再建一个包,报名随意(本人在此建立mybatis)在建立的包中 需要建立一个类与我们所选中的数据库的表的名字相同,为Posts类,在Posts类中需要与我们数据库中的posts创建的属性实现get,set方法。
2024-08-03 20:22:29
337
原创 mybatis框架基本构建(1.简单配置)
记得在</project>的上方配置,要不然配置不生效,配置好后再选择右侧的Maven中的选择我们的文档中的Lifecycle中的compile,之后当下方配置文件显示BUILD SUCCESS后刷新,我们的程序就可以正常编写了。创建成功后在IDEA的右侧选择Maven,在此看到我们创建的文件mybatis62,在此中选择Lifecucle中的compile双击运行且必须刷新(刷新按钮为小绿锤子正下方的循环按钮)如下图所示。Java中最常用的便是框架,今天就是框架中的mybatis框架。
2024-08-03 19:07:28
311
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅