- 博客(141)
- 资源 (11)
- 收藏
- 关注
原创 为什么使用包装的方式,而不直接使用DataOutputStream实例对象?
在 Java 中,我们通常通过“包装”的方式使用高级流(如 `DataOutputStream`),而不是直接提供一个高级流对象。这种设计源于 Java IO 的**灵活性**和**可扩展性**。以下是具体原因:
2024-12-02 06:15:00
886
原创 InetAddress怎么通过getByName得到IP地址?
优点:服务器 IP 变更时,只需更新 DNS 或主机名映射;缺点:可能因 DNS 查询延迟稍慢。和处理可能的解析失败,可以确保客户端能正确找到目标服务器的 IP 地址并建立通信。优点:无需 DNS 解析,效率高;缺点:如果服务器 IP 变更,需要更新代码。是服务器的名称或 IP 地址。文件中配置服务器名和 IP 地址映射。(直接给出的 IP 地址),则直接创建。对于开发环境或局域网中,可以手动在本地。对象,表示目标服务器的 IP 地址。对象,而不涉及网络解析。通过本地解析文件(如。
2024-12-02 06:00:00
956
原创 Java提供网络功能四大类
Java 提供的网络功能四大类(URL、InetAddress、Socket、Datagram)涵盖了从简单的资源访问到复杂的网络通信的功能。它们共同构成了 Java 网络编程的核心工具,为不同的网络需求提供了灵活的解决方案。
2024-12-01 08:15:00
802
原创 SMTP和POP3都与邮箱有关,那么他们各司何职?
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol version 3)是两种与电子邮件相关的协议,它们分别负责不同的功能,协同工作以完成邮件的发送和接收。
2024-12-01 07:00:00
322
原创 操作系统中的8核16线程与Java中的多线程是同一个线程嘛?
一开始疑惑来源于【建立Thread子类和实现Runnable接口都可以创建多线程,但它们的主要区别就在于对数据的共享上。使用Runnable接口可以轻松实现多个线程共享相同数据,只要用同一个实现了Runnable接口的类的对象作为参数创建多个线程就可以了】都可以创建多线程,但它们在设计和数据共享上的确存在显著差异。接口通常被认为是更好的设计模式,尤其是在需要线程间共享数据或任务与线程解耦时。是各自独立的,数据不会共享。
2024-11-30 12:00:00
839
1
原创 Java泛型 与 C++的模板有什么区别
C++ 模板: 功能更强大,支持复杂的模板元编程和特化,编译时生成不同版本的代码,性能上更具优势,但类型安全检查较晚,调试难度较高。Java 泛型: 提供类型安全、简单易用的泛型机制,适合大多数应用场景,运行时使用类型擦除,限制了灵活性和某些高级用法,但带来了更简洁的字节码和运行时表现。
2024-11-30 11:30:00
941
原创 Java线程间的数据共享
一开始疑惑来源于【建立Thread子类和实现Runnable接口都可以创建多线程,但它们的主要区别就在于对数据的共享上。使用Runnable接口可以轻松实现多个线程共享相同数据,只要用同一个实现了Runnable接口的类的对象作为参数创建多个线程就可以了】都可以创建多线程,但它们在设计和数据共享上的确存在显著差异。接口通常被认为是更好的设计模式,尤其是在需要线程间共享数据或任务与线程解耦时。是各自独立的,数据不会共享。
2024-11-29 00:30:00
1186
原创 Java 线程中的分时模型和抢占模型
在 Java 和现代操作系统中,抢占模型是主流,而分时模型主要存在于一些特定的嵌入式或早期系统中。这两种模型的核心区别在于线程的执行时间分配和切换方式。
2024-11-29 00:15:00
418
原创 Java:线程间通信
在 Java 中,线程间通信的主要目的是实现多个线程之间的协作与同步,以便在多线程环境中正确地共享资源和数据。以下是 Java 线程间通信的常见实现方式和背后的原理。这些方法必须在同步块或同步方法中调用,否则会抛出。方法允许一个线程等待另一个线程完成后再继续运行。线程通信的选择主要取决于具体场景和复杂度需求。是线程安全的队列,天然支持线程间通信。提供了更灵活的线程通信方式,
2024-11-28 07:00:00
381
原创 Java实例运算符 instanceof
instanceof运算符:用于检查对象是否为某个类或接口的实例。返回值:布尔类型,true或false。常用场景:类型检查、避免类型转换异常、接口实现检测。
2024-11-28 06:30:00
432
原创 Java中的基础类型及其引用类型
Java 中的基础类型和引用类型各有特点和使用场景,为了更直观地了解它们的区别和设计目的,以下从特性对比、具体区别以及原因进行详细说明。Java 提供了基础类型与包装类的无缝转换机制,降低了编码复杂度。包装类提供了许多静态方法和常量,方便开发者使用。
2024-11-27 07:00:00
656
原创 Java中的修饰符 transient
transient关键字用于防止类的某些字段被序列化,主要用于敏感信息或不需要持久化的字段。这增强了程序的安全性和灵活性。
2024-11-27 06:30:00
460
原创 Java中的修饰符 friendly
Friendly是对Java默认包级访问权限的非正式称呼。没有使用publicprivate或protected修饰符时,Java成员的访问控制是包级的,也就是所谓的"friendly"权限。这可以帮助程序员在不同类之间共享信息,避免将成员过度暴露给外部代码。
2024-11-26 06:45:00
418
原创 Java中的关键字 var
var提供了方便的类型推断功能,使代码更简洁。使用时应确保可读性,避免因为var而导致代码难以理解。它在编译时被编译器解析为具体的类型,因此运行时不会有性能影响。
2024-11-26 06:30:00
421
原创 Java中的关键字 synchronized
关键字用于多线程环境下控制对共享资源的访问,确保线程安全。可以用来同步实例方法、静态方法或代码块。使用时要小心死锁和性能问题。
2024-11-25 07:30:00
625
原创 Java中的关键字 volatile
volatile关键字用于保证多线程环境下变量的可见性和防止指令重排序。它适合用于简单的标志变量,但对于复合操作(如自增)需要使用更高级的同步机制。
2024-11-25 07:00:00
693
原创 Java中的关键字 native
native关键字用于声明在C/C++等非Java语言中实现的方法。常与JNI配合使用,以便与操作系统进行交互、性能优化或访问遗留系统。虽然功能强大,但增加了跨平台的复杂性和调试难度。
2024-11-24 15:17:22
800
原创 Java中的关键字 final
final变量:值不能被修改(常量)。final方法:不能被子类重写。final类:不能被继承。final参数:方法中参数值不能被修改。final的使用帮助确保代码的不可变性,增强安全性和设计的明确性。
2024-11-24 15:16:17
376
原创 回溯法实现“八皇后“问题(解答斜上方和斜下方判断问题)
假设在棋盘的第一行,我们不是选择第一列放置皇后,而是选择了第二列(即此时Queenes数组更新为。
2024-03-11 00:43:53
1064
原创 Dev C++ 调试设置及大小设置
选择【工具[T]】,选择【编辑器设置[E]】,然后选择【显示】,再选择字体大小【大小】首先打开编译器,选择【Tool(T)】(【工具(T)】),选择【编译选项[C]】点击旁边的行数,创建断点。
2024-03-11 00:02:38
2455
1
原创 使用分治算法解决循环赛日程安排问题
问题描述:某学校举行乒乓球比赛,在初赛阶段设置为循环赛,设有n位选手参赛,初赛共进行n-1天,每位选手要与其他每一位选手进行一场比赛,然后按照积分排名选拔进入决赛的选手,根据学校作息时间,要求每位选手每天必须比赛一场,不能轮空。当有4个选手时,我们按照分治策略,将这4个选手分为两组,每组2个选手(1和2是第一组,3和4是第二组)。首先,我们有4个选手(1, 2, 3, 4),我们需要为这些选手安排一个日程表使得每位选手都与其他所有选手进行比赛,且每轮只进行一次比赛。
2024-03-06 15:06:21
1338
原创 解决“求平方根”问题(牛顿迭代法)
牛顿迭代法(也称为牛顿-拉弗森方法或牛顿-弗森方法)是一种强大且广泛应用的数值技术,用于寻找实数和复数的方程的零点(或根)。如前所述,牛顿迭代法可用于计算数的平方根。求解(a)的平方根等价于求解(f(x) = x^2 - a = 0)的根。通过选择合适的初始值(x_0)并重复应用上述公式,(x_n)将迅速收敛到(a)的平方根。是第(n)次迭代的近似值,(f(x))是目标方程,(f’(x))是(f(x))的导数。,每次迭代的目的是找到更好的近似解(x_{n+1}),直到满足一定的终止条件。
2024-03-06 00:02:49
1355
原创 算法题:体彩29选7彩票组合(组合/回溯)
在实际代码(使用29个数字中选择7个)中,组合的数量会大得多,但基本的执行过程相同:递归地选择每个数字,直到构建出完整的组合,然后打印该组合。这样,我们需要找出所有可能的从数字集合{1, 2, 3, 4, 5}中选择3个数字的组合。假设有一种29选7的彩票,每注由7个1~29的数字组成,且这7个数字不能相同,编写程序生成所有的号码组合。这一行开始执行组合操作,即从29个数字中选择7个数字的所有组合。假设我们从5个数字(1到5)中选择3个数字的所有可能组合,即。为29),即从1到29选择7个数字。
2024-03-06 00:02:02
1065
原创 装箱问题(贪婪策略:首次适应递减(First Fit Decreasing, FFD))
装箱问题是一种典型的组合优化问题,它可以用多种贪婪(greedy)策略来解决。贪婪算法通过在每一步选择当前最优的解决方案,希望这样会导致全局最优解。使用冒泡排序算法对物品按体积进行降序排列。这样做的目的是尽可能优先处理大物品,便于后续的装箱操作。遍历箱子链,对于每个箱子,打印出其中包含的所有物品编号。这显示了每个箱子中物品的装载情况。
2024-03-05 00:14:03
1708
原创 优化算法中的数学原理与实践(贪心与回溯)
在这个问题中,我们有若干不同面额的硬币,比如1分、5分、10分、25分(美国货币体系中的常见面额),并且要求用最少的硬币数来凑成一个给定的总金额。在优化理论和实践中,数学原理不仅为我们提供了描述问题和解决方案的语言,还揭示了优化过程中的深层次结构和可能遇到的挑战。线性代数是优化问题中不可或缺的基础工具,其提供的向量和矩阵概念以及相关操作极大地简化了数据表示与处理,同时也是理解和计算函数在空间中变化的关键。则位于最深的“山谷”中。这种现象出现的原因是目标函数的复杂性导致的,它可能在不同的区域有不同的行为。
2024-03-05 00:12:37
1070
原创 Element(Java后端入门篇)
引入Element的、文件和创建核心对象官网复制Element组件代码:组件 | ElementElement中有两种布局方式:布局:通过基础的24分栏,迅速简便地创建布局(默认)布局容器:用于布局的容器组件,方便快速搭建页面的基本结构想要哪个粘贴哪个
2024-03-04 00:14:18
1334
原创 大数乘法(分治思想)
Karatsuba算法是分治策略的一个经典应用,它通过减少必须执行的乘法次数,实现了比传统方法更快的乘法运算。这种算法不仅是计算机科学的一个重要成就,也是对如何优化问题解决方案的深刻洞察。这段代码是一个实现大整数乘法的程序,采用分治策略以及类似于Karatsuba算法的思路进行优化,提高了大数乘法的效率。通过将大数拆分成较小的部分,递归地计算这些小部分的乘积,然后合并结果来得到最终的乘积。下面我将逐步解释关键函数和过程中的数学概念和细节。
2024-03-04 00:11:21
1707
原创 VUE基础知识(JAVA后端入门篇)
生命周期的八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法(钩子)v-bind: 为HTML标签绑定属性值,如设置href,css样式等。指令:HTML标签上带有V-前缀的特殊属性,不同指令具有不同含义。mounted:挂载完成,Vue初始化成功,HTML页面渲染成功。在JS代码区域,创建Vue核心对象,进行数据绑定。新建HTML页面,引入vue.js文件。v-on: 为HTML标签绑定事件。
2024-02-14 22:55:51
957
原创 Filter与Listener(Java Web)
拦截具体的资源:/index.jsp:只有访问index.jsp时才会被拦截。需求:访问服务器资源时,需要先进行登录验证,如果没有登录,则自动跳转到登录页面。一个Web应用,可以配置多个过滤器,这多个过滤器称为过滤器链。Filter拦截路径配置:可以根据需求,配置不同的拦截资源路径。后缀名拦截:*.jsp:访问后缀名为jsp的资源,都会被拦截。拦截所有:/*:访问所有资源,都会被拦截。目录拦截:/user/
2024-02-04 00:47:33
881
原创 会话跟踪技术(Cookie&Session)
在同一个客户访问过程中,在创建Session会话是时,会给它分配一个Session id,然后服务器将信息返回给用户时,会在Session前面加一个set-cookis的表头,然后客户在下一次请求会将Session id的信息带回,这样下次创建Session时,会根据id去查找Session,这样就做到了一个客户对应一个Session。但是HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享。创建Cookie对象,设置数据。
2024-02-03 22:43:00
1317
原创 JSP、MVC模式及三层架构
从之前的Servlet的学习以及本章JSP的学习,我们发现Servlet在处理web数据并返回给前端时,不太友好,但是JSP将java代码写在HTML中的方式均不太友好,因此通过不断优化下,出现了现在的主流组合,即:Servlet + html +ajax的技术组合。
2024-02-03 14:41:08
1182
原创 Servlet(java web基础篇)
Servlet是Java提供的一门动态web资源开发技术,不同的用户访问看到的效果不一样。Servlet是lavaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet:接口,并由web服务器运行Servlet。创建:定义一个类,实现Servlet接口,并重写接口中所有方法,并在service方法中输入一句话配置:在类上使用@WebServlet注解,配置该Servlet的访问路径访问:启动Tomcat,浏览器输入URL访问该ServletServlet执行流程在
2024-02-02 00:53:16
1498
原创 Request & Response 基础篇
响应行void setStatus(int sc) //:设置响应状态码响应头void setHeader(String name,.String value) //:设置响应头键值对响应体PrintWriter getWriter() //:获取字符输出流ServletOutputStream getOutputStream() //:获取字节输出流。
2024-02-02 00:51:52
1119
原创 Tomcat在Java web的应用
本来这篇博客顺应之前的内容,应该是需要写Tomcat的简介、基本使用、配置和部署项目、Web的项目结构、创建MavenWeb、idea本地集成以及Tomcat的Maven插件的笔记内容,但是总觉得没必要,因为这些内容网上肯定很多了,而且写这些东西总感觉没啥必要,但是Tomcat做了哪些操作,使得后面开发变得更为简单这件事情,是很必要的,因此基于这一点,我写了这篇博客(笔记)。模拟Tomcat的功能是一个庞大的任务,因为Tomcat是一个开源的、高度复杂的Java Web服务器。
2024-02-01 03:10:40
945
原创 HTTP(Java web方向补充篇)
概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
2024-02-01 03:09:17
1253
原创 正则表达式
正则表达式(Regular Expression,简称Regex或RegExp)是一种用于描述字符串模式的表达式,它提供了一种强大的搜索、匹配和替换文本的方式。正则表达式是由字符和特殊字符组成的字符串,用于定义文本中的搜索模式。在Java中,正则表达式主要通过包来实现。常用的类包括Pattern和Matcher。\b:匹配单词边界\d:匹配数字字符\D:匹配非数字字符\w:匹配字母、数字、下划线\W:匹配非字母、数字、下划线\s:匹配空白字符\S:匹配非空白字符。
2024-01-30 17:35:38
756
原创 MyBatis入门基础篇
为了应对JDBC内容中的硬编码和操作繁琐(见之前的文章),例如注册驱动、获取Connection连接以及SQL语句中的过程需要输入数据库驱动、数据库的账号密码,这需要重新编译和打包,然后后面获取petmt对象以及后续过程中,我们需要去手动设置参数或手动封装结果集,这都是繁琐的操作。定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下,使用方式,在资源文件夹resources文件中创建对应路径的文件夹,例如com/test/mapper,
2024-01-24 23:44:55
974
原创 Java设计模式中的代理模式
代理模式是一种结构型设计模式,它提供了一个代理对象,以控制对其他对象的访问。代理可以充当中介,用于控制对真实对象的访问。充当了代理对象,它可以在需要时创建真实对象。,从而实现虚拟代理的效果,延迟加载大图。
2024-01-24 23:36:33
611
基于pythonQt5实现的跑马灯效果,作为pythonQt 5的入门例子很适合,已经将每一行代码标注了解释,很好的入门案例
2025-01-02
实现的主要界面和功能实现说明: 首先根据要求,实现了MainActivity的代码,代码中首先通过了findViewById得到
2024-03-05
CloudSim执行流程图
2022-01-01
gpucloudsim-master.zip
2021-12-29
PureEdgeSim
2021-04-12
cloudsim-5.0(已修改)
2021-04-12
操作系统实验指导及部分答案
2018-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人