自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java学习,获取URL响应头信息

浏览器或客户端向服务器发送请求时,服务器除了返回,请求的资源内容外,还会返回一些额外的信息,这些信息被称为响应头(Response Headers)。响应头包含了关于响应的元数据,如内容类型、编码、缓存控制策略、服务器类型等。子类,它提供了用于发送 HTTP 请求和接收 HTTP 响应的方法。// 设置请求方法为 GET(默认)// 创建 URL 对象。// 可以读取响应体内容。// 获取响应头字段。// 打印响应体内容。Java 要获取URL响应头信息,需要使用。

2025-03-25 08:49:40 1131

原创 Java学习,解析URL

/ 如果端口号是默认端口,返回 -1。Java中,URL(Uniform Resource Locator)用于标识,互联网上资源位置的字符串。// 获取 URL 连接对象。// 解析查询参数为键值对。// 创建URL 对象。

2025-03-25 08:49:28 1146

原创 Java学习, Socket连接指定主机 客服务端

中Socket是网络通信的一个重要概念,它提供了在不同计算机或设备之间,进行数据交换的方式。System.out.println("收到客户端消息: " + message);writer.println("服务器已收到你的消息: " + message);System.out.println("服务器已启动,等待客户端连接...");System.out.println("客户端已连接");// 获取输入和输出流。// 发送响应给客户端。// 接受客户端连接。// 读取客户端数据。

2025-03-20 10:31:43 454

原创 Java学习, Socket连接指定主机 客户端

中Socket是网络通信的一个重要概念,它提供了在不同计算机或设备之间,进行数据交换的方式。// 服务器主机名或 IP 地址。System.err.println("无法找到主机: " + hostname);System.out.println("服务器响应: " + response);System.out.println("已连接到服务器");// 服务器监听的端口号。// 获取输出和输入流。// 发送消息到服务器。// 读取服务器的响应。

2025-03-20 10:31:36 600

原创 Java学习,实践三角形输出

通过嵌套循环,可以控制每一行,打印的字符数量,生成不同形状的三角形。int n = 5;int n = 5;int n = 5;Java打印三角形,通常涉及到循环结构使用,例如。

2025-03-18 08:55:03 1212

原创 Java学习,打印平行四边形

平行四边形可以看作,由多个等长的行组成,每一行包含相同数量的字符,这些字符在行中的位置有所不同,形成所需的平行四边形形状。Java打印平行四边形,也涉及到循环结构,特别是嵌套。

2025-03-18 08:54:54 345

原创 Java 学习,查看端口使用与否

Java查看端口是否已被使用,通常涉及尝试绑定一个到指定的端口,并捕获可能抛出的异常。如果绑定成功,则说明端口未被使用;如果抛出异常,则说明端口已被占用。

2025-03-17 09:24:26 1375

原创 Java学习,查看主机文件修改时间

System.out.println("文件 " + filePath + " 的最后修改时间是: " + lastModifiedTime);System.err.println("无法读取文件属性: " + e.getMessage());// 将Instant转换为LocalDateTime(指定时区)// 这里使用系统默认时区,可以指定其他时区。// 创建Path对象。// 获取最后修改时间。* 获取文件修改时间。

2025-03-17 09:24:19 386

原创 Java学习,获取本机ip地址及主机名

InetAddress类类用于表示IP地址,它有IPv4地址,也有IPv6地址。这个类提供了,获取本地机器IP地址和主机名的方法。本地主机:在计算机网络中,本地主机指,当前正在运行代码的机器。环回地址(Loopback Address):环回地址是一个特殊的IP地址,用于网络软件测试以及本机通信。IPv4的环回地址是127.0.0.1,IPv6的环回地址是::1。网络接口:计算机可能有多个网络接口(如以太网、Wi-Fi、虚拟网络接口等),每个接口都可能有一个或多个IP地址。

2025-03-13 08:57:54 769

原创 Java学习,获取主机IP地址

Java 获取指定主机IP地址,通常涉及使用Java的网络库,尤其是java.net包。这个过程主要依赖于DNS(域名系统)解析,即将主机名转换为对应的IP地址。

2025-03-11 08:51:29 529

原创 Java学习,生产者/消费者

Java生产者/消费者问题,是经典的并发编程问题,描述两个或多个线程之间的协作:一个或多个生产者线程生成数据,将其放入缓冲区,另外一个或多个消费者线程从缓冲区,取出数据进行处理。缓冲区通常有一个固定的大小,当缓冲区满时,生产者必须等待消费者取出数据;缓冲区是一个共享的数据结构,用于存储生产者生成的数据。// 将数据放入缓冲区。// 从缓冲区取出数据。// 创建一个阻塞队列作为缓冲区。将数据放入缓冲区中,供消费者线程使用。// 创建生产者线程。// 创建消费者线程。消费者线程,负责处理数据。

2025-03-10 08:57:19 553

原创 全球能干活的AI Agent, manus 智能体来了

2025年3月6日,中国团队Monica.im扔出一颗“技术突破”——:DeepSeek更擅长结构化知识输出(写代码、改合同);:上传压缩包,自动筛选简历→分析→生成Excel排名表;🎨 降低创意门槛:一句话生成网页游戏、定制量子力学课件;官网申请内测→体验「未来工作模式」,当前需要邀请码。:关掉电脑,它仍在云端默默完成股票分析、旅行规划;,行业首个实现任务闭环的AI Agent!:HR、分析师、设计师告别重复劳动;

2025-03-07 11:08:56 334

原创 Java学习,中断线程

/ 注意:InterruptedException捕获会清除中断状态,通常不需要再调用interrupt()Java中断线程是一个重要的概念,用于线程停止当前工作。然而,Java没有提供直接停止线程的方法,如C++中的。,因为强制停止线程可能导致资源泄漏、数据不一致等问题。相反,Java可使用协作机制来处理线程的中断。// 捕获InterruptedException,并清除中断状态。// 等待工作线程结束。// 主线程休眠2秒。

2025-03-07 10:25:57 678

原创 Java学习,查看线程优先级

Java 每个线程都有一个与之关联的优先级,它决定了线程相对于其他线程被调度的机会。查看线程的优先级,可以通过访问线程的。// 查看和打印优先级。// 主线程和新线程的优先级。// 设置线程的优先级。// 打印线程名称和优先级。

2025-03-06 08:56:36 614

原创 Java学习,获取线程状态

System.out.println("调用 start() 方法后线程状态: " + state);System.out.println("主线程休眠 1 秒后线程状态: " + state);System.out.println("主线程休眠 2 秒后线程状态: " + state);System.out.println("线程执行完毕后的状态: " + state);System.out.println("线程初始状态: " + state);// 线程获取锁后等待,进入 WAITING 状态。

2025-03-06 08:56:28 886

原创 Java学习,终止线程

interrupt()方法,用于向线程发送一个中断信号。:stop(),suspend()和resume()方法已被弃用,它们可能导致死锁等不安全问题。System.out.println("线程运行...");System.out.println("线程被中断");:线程完成任务后自然会终止,线程run()方法执行完毕,线程就进入了终止状态。System.out.println("线程终止");System.out.println("中断线程");// 主线程休眠3秒。

2025-03-04 08:57:15 441

原创 Java学习,线程挂起

Java线程挂起(Suspending a Thread)是指暂时停止一个线程的执行,使其进入一种等待状态。通常是为了协调线程间执行顺序或等待,某些条件满足后再继续执行。Java提供了同步机制,如。和条件变量等,来处理线程间的通信和协调。方式实现,让线程休眠一段时间,或者使用。方法让线程等待特定对象的通知。

2025-03-03 07:51:29 1008

原创 Java学习,获取线程id

System.out.println("新线程的ID: " + threadId);System.out.println("新线程的ID: " + newThreadId);System.out.println("主线程的ID: " + mainThreadId);System.out.println("当前线程的ID: " + threadId);Java每个线程都有一个唯一的标识符,称为线程ID。方法来获取当前线程的线程ID。

2025-02-28 08:48:11 940

原创 Java学习,线程优先级设置

Java每个线程都有优先级,线程优先级决定了线程被调度器选中的机会。// 设置线程优先级。

2025-02-27 12:39:03 404

原创 Java学习,线程状态监测

Java线程状态监测是一项重要任务,可以帮助理解线程的行为和性能。Java提供了一些方法和工具来监测线程的状态。可以通过继承Thread 类,使用 currentThread.getName() 方法来监测线程的状态。

2025-02-26 08:45:43 554

原创 C语言学习,快速排序

C语言,快速排序是一种高效排序算法,它采用分治法策略,在区间中随机挑选一个元素作基准,将小于基准的元素放在基准之前,大于基准的元素放在基准之后,再分别对小数区与大数区进行排序。// 选择最右边元素作为基准。// pi 是分区索引,arr[pi] 已经在正确位置。// 较小元素的索引。// 分别对分区索引左右两边的子数组进行排序。// 增加较小元素的索引。// 如当前元素小于或等于基准。// 分区函数,选择数组中间元素作为基准。

2025-02-26 08:45:36 495

原创 Java学习,获取当前线程名

System.out.println("当前线程的名称是: " + threadName);// 默认情况下,main方法是由主线程执行,名称通常是 "main"方法,获取当前正在执行的线程对象,然后通过调用该对象的。// 获取当前线程的名称。// 打印当前线程的名称。// 获取当前线程对象。Java中,可以通过调用。方法来获取线程的名称。

2025-02-25 08:54:01 770

原创 c语言学习,归并排序

C语言,归并排序是经典的分治算法,基本思想是将,待排序的数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并成一个有序的数组。归并排序的时间复杂度为O(n log n),且具有稳定性。// 合并数组到arr[left..right]// 拷贝L[]剩余的元素(如果有)// 拷贝R[]剩余的元素(如果有)// 合并两个已排序的子数组。// 拷贝数据到数组L[]和R[]// 递归排序两个子数组。// 合并有序子数组。

2025-02-25 08:53:54 377

原创 C语言学习,希尔排序

C语言,希尔排序是插入排序的一种,也称为递减增量排序。通过比较距离较远的元素,然后逐渐缩小间隔,直到整个数组变成有序的。这种排序方法减少了插入排序,大数据集的移动次数,提高了效率。示例:// 交换元素void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp;} // 希尔排序void shellSort(int arr[], int n) { // 初始间隔为数组长度的一半,逐渐减小到1 f

2025-02-24 08:51:17 376

原创 C语言学习,插入排序

C语言,插入排序是一种简单直观的排序算法,插入排序是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。// 将arr[i]插入已排序序列arr[0...i-1]中。printf("排序前的数组: \n");printf("排序后的数组: \n");

2025-02-20 07:32:02 498

原创 C语言学习,选择排序

C语言,选择排序(Selection sort)是一种简单直观的排序算法。实现原理,先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾,直到所有元素均排序。printf("排序前的数组: \n");printf("排序后的数组: \n");// 交换找到的最小值和当前元素。// 在未排序部分寻找最小值。// 假设当前元素为最小值。

2025-02-19 08:58:16 314

原创 C学习, 排序算法

C语言,冒泡排序(Bubble Sort)是一种基础的排序算法,通过多次遍历待排序数组,每次比较相邻的两个元素,并根据比较结果决定是否交换它们的位置,从而逐渐将较大的元素“冒泡”到数组的末尾。if (arr[j] > arr[j+1]) { // 当前元素大于下一个元素,则交换它们。j < n-i-1;最好情况:O(n)(当数组已经有序时,经过第一轮比较后没有发生交换,算法结束)。最坏情况:O(n^2)(当数组完全逆序时,需要进行比较和交换)。printf("排序后的数组: \n");

2025-02-18 08:55:55 504

原创 Git学习,基础命令

Git是分布式版本控制系统,用于管理多人协同开发项目。git rm //从工作区和暂存区删除文件,-f强制删除,--cached只从暂存区删除,保留工作区中的文件。示例:git clone https://github.com/user/repo.git。git checkout -b <分支名> // 创建并切换到新分支(旧版写法)git reset // 版本回退,使用--hard或--soft指定回退的情况。git init// 初始化一个Git仓库,在当前目录下创建一个.git文件夹。

2025-02-18 08:55:44 404

原创 Java学习,线程异常处理

Java线程编程中,异常处理非常重要,未处理的异常可能会导致线程意外终止,影响到整个应用程序的稳定性和可靠性。// 模拟任务执行时间。// 可能抛出异常的任务。// 关闭线程池,等待所有任务完成。// 偶数任务抛出异常。// 奇数任务正常执行。// 提交多个任务给线程池。// 模拟任务方法,可能抛出异常。

2025-02-07 16:09:48 450

原创 Java学习,查看线程是否存活

/ 再等待足够长的时间,确保线程完成执行。如果线程已经死亡(完成执行或未启动过),则返回。方法返回一个布尔值,如果线程仍然在运行,则返回。// 检查线程是否存活。方法检查线程是否仍然存活。

2025-02-07 16:09:42 662

原创 Java学习,List 元素替换

/ 将索引为1的元素(Banana)替换为Orange。接口,提供了多种方法来替换元素,可以通过索引,访问和替换。// 创建ArrayList。// 通过索引替换元素。// 打印替换后的列表。

2025-01-21 08:49:06 998

原创 Java学习,List截取

/ 将子列表中的第二个元素(Cherry)替换为Blueberry。方法,该方法允许获取原始列表的一个视图(view),该视图包含从指定起始索引(包含)到指定结束索引(不包含)之间的元素。// 注意:subList是原始列表的一个视图,因此对它所做的更改将反映在原始列表中。System.out.println("子列表 :"+sublist);// 使用subList方法截取列表的一部分。// 再次打印原始列表以查看更改。// 创建ArrayList。// 打印截取后的子列表。// 从索引1到索引4。

2025-01-21 08:48:59 723

原创 Java学习,集合添加不同类型元素

Java集合(Collections)框架,提供了一系列接口和类,用于存储和操作对象集合。等)都是类型化的,它们只能存储特定类型的对象。有一些方法,可以在集合中“存储”不同类型的元素。//创建Object类型的ArrayList。//需要进行类型检查和转换。//集合添加不同类型元素。//遍历集合并打印元素。

2025-01-20 09:39:52 362

原创 Java学习,遍历HashTable键值

/遍历HashTable的键值对。//遍历HashTable的键。//遍历HashTable的值。是一个同步的键值对集合,适用于多线程环境。//创建HashTable。常用,在需要线程安全场景,

2025-01-20 09:39:46 546

原创 Java学习,List移动元素

System.out.println("向右移动"+rotateCount+"个位置后的列表:"+rotatedList);//防止移动超过列表长度。Java实现List中元素的循环移动(即将列表中的元素向右或向左移动指定数量的位置),可以使用多种方法。System.out.println("原始列表:"+list);//循环移动位置(向右移动3个位置)//将后部分元素移到新列表的前面。//将前部分元素移到新列表的后面。*将列表元素向右循环移动指定的位置。

2025-01-18 23:42:32 788

原创 Java学习,查找List最大最小值

System.out.println("最大值:"+Collections.max(list));System.out.println("最小值:"+Collections.min(list));System.out.println("最大值:"+max.get());System.out.println("最小值:"+min.get());System.out.println("列表为空,无法找到最大值");System.out.println("列表为空,无法找到最小值");

2025-01-18 23:42:19 1003

原创 Java学习,集合输出

Java集合(Collections)是用于存储一组对象的框架,Java有多种集合类,例如。// 增强型for循环输出HashMap键值对。// 增强型for循环输出HashSet。// 迭代器输出ArrayList。// 输出 ArrayList。// 创建ArrayList。// 输出 HashSet。// 输出 HashMap。// 创建HashSet。// 创建HashMap。

2025-01-17 08:59:50 673

原创 Java学习,集合转数组

等),可以方便地转换为数组。使用Java Util类的list.add()和 list.toArray() 方法很容易,将集合转为数组。// 避免类型转换,使用 Object[] 类型。// 将ArrayList转换为数组。// 特定类型的数组,可使用以下方式。// 创建HashSe并添加元素。// 将HashSet转换为数组。// 创建ArrayList。

2025-01-17 08:59:41 803

原创 Java学习,删除集合指定元素

Java删除集合中指定元素,通常依赖于集合具体类型。不同的集合类型(如 ArrayList, HashSet, LinkedList 等)提供了不同的方法来执行此操作。// 添加一个重复的元素。// 删除第一个 "Banana"// 删除 "Banana"// 删除 "Banana"// 打印更新后的列表。// 打印更新后的集合。// 打印更新后的列表。// 打印更新后的列表。

2025-01-16 08:57:06 831

原创 Java学习,只读集合

Java只读集合(read-only collection)是指,不允许进行任何修改操作的集合。包括添加、删除或更新集合中的元素。// 添加元素会抛出 UnsupportedOperationException。// 添加元素会抛出 UnsupportedOperationException。// 添加元素会抛出 UnsupportedOperationException。// 添加元素会抛出 UnsupportedOperationException。

2025-01-16 08:56:57 1097

空空如也

空空如也

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

TA关注的人

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