我是一棵小树🌳
二叉树二叉树的遍历(非递归)
前序遍历基本思路是把根节点入栈,然后出栈并访问,接着把右子节点入栈,最后把左子节点入栈。
1234567891011public void preOrderIterative(TreeNode root) { if (root == null) return; Stack<TreeNode> stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { TreeNode node = stack.pop(); System.out.print(node.val + " "); // 访问根节点 if (node.right != null) stack.push(node.right); // 右子节点先入栈 if (node.left != null) stack.push(node.left); // 左子节点后入栈 } ...
Linux网络编程
无论是 Web 服务器处理网页请求、即时通讯工具的消息传递,还是在线游戏的数据同步,都离不开 Socket 的支持。Socket 的本质,是将复杂的网络通信抽象成一个简单的接口,让开发者可以通过像操作文件一样的方式实现数据的收发。这也是”Unix中万物皆文件”。本文将以 TCP Socket 编程为例,逐步拆解从服务器端到客户端的交互过程,解析系统调用的作用,建立清晰的理解框架。
什么是 Socket?Socket 提供了一种通信的端点,就像电器与电源的插座。通过 Socket,两个设备之间可以建立通信链接。程序员只需要按照 Socket 提供的接口进行操作,不需要关心底层的复杂网络协议。
Socket 的现代实现被称为 Berkeley Sockets,因为它起源于 Berkeley Unix(BSD Unix)中,是基于 Unix 操作系统设计的。Berkeley Sockets 的出现奠定了今天网络编程的基础。
在Web浏览器与Web服务器通信:浏览器通过 Socket 向服务器发送 HTTP 请求,服务器通过 Socket 返回 HTTP 响应。
在即时通讯工具中传递消息:客 ...
软件项目管理课程
软件项目管理(一)项目管理的定义项目a temporary endeavor undertaken to create a unique product, service, or result.(一个临时性的工作,为了创造一个独特的产品、服务或结果)
项目属性
过程上,临时性的有时限性、不确定性、逐步精化
输入:特定目的 输出:推动变革创造价值
投入上,有发起人、需要资源、有经理人
项目目标成功的项目意味着满足三个目标:Scope goal、Time goal、Cost goal 并让发起者满意
项目约束
六个约束:成本、风险、资源、质量、时间、范围(Cost, Risk, Resource, Quality, Time, Scope)
怎么平衡约束?
项目群管理
项目群:一组相互关联的项目,被协调和管理以获得更好的效益,这些效益单独管理项目无法获得
将项目合并为组,有助于管理、招聘员工、采购以及其他工作快捷化,而且要经济些。
项目组合管理
项目组合:一组项目、子项目、项目群、子项目群、以及运营工作,被协调和管理以实现一些特定的战略目标
项目Projects、项目群 ...
Avalonia 全栈开发课程
读写数据库如何在Avalonia中建立数据库连接,如何在数据库中插入数据
Mvvm设计模式:Model、ViewModel、View 客户端开发的一种设计模式(MVC是服务端开发的设计模式)
从Model开始,添加新类作为模型类12345public class Poetry { public int Id { get; set; } public string Name { get; set; } = string.Empty;}
service层,添加新类作为服务类 接口IPoetryStorage,实现类PoetryStorage123public interface IPoetryStorage { Task InsertAsync(Poetry poetry);}
这是一个异步操作,函数名以Async结尾,返回值是Task,参数是Poetry类型的对象异步操作:不会阻塞当前线程,而是在另一个线程上执行,执行完毕后会通知当前线程
什么时候用异步操作? 当操作比较耗时的时候,比如 ...
springboot注册
注册
请求参数有两个:username和password,分别表示用户名和密码。请求参数是通过URL传递的,如`/login?username=admin&password=123456
响应数据: code(相应码,0表示成功,1表示失败)、message(响应消息)、data(响应数据)。12345{ "code": 0, "message": "登录成功", "data": null}
定义一个有如上三个成员变量的result类,用于封装响应数据,spring自动将其转换为json格式返回给前端。
Result.java12345678910111213141516171819@AllArgsConstructor@NoArgsConstructorpublic class Result<T> { private int code; private String message; priv ...
mybatis
springboot整合mybatismodel类 Liujinhe.java12345678910111213141516171819package org.jetos.neu.demooo.model;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.sql.Timestamp;@Data@NoArgsConstructor@AllArgsConstructorpublic class LiuJinHe { private int id; private String name; private int age; private String usage; private Timestamp createTime;}
建表 Liujinhe1234567891011121314151617181920212223242526CREATE DATABASE IF NOT EXISTS mydb ...
springboot的一些项目依赖
创建项目依赖(单体服务器):Docker Compose Support项目会自动创建一个名为compose.yaml的Docker Compose文件。在这个文件中,已经定义了以下服务:
123456789101112131415161718192021services: mysql: image: 'mysql:latest' environment: - 'MYSQL_DATABASE=mydatabase' - 'MYSQL_PASSWORD=secret' - 'MYSQL_ROOT_PASSWORD=verysecret' - 'MYSQL_USER=myuser' ports: - '3306:3306' # x:y x是宿主机端口,y是容器端口 rabbitmq: image: 'rabbitmq:latest' environment: ...
Welcome to Skye's Cottage!
🌲 Deep in a secluded valley, far from the hustle and bustle of the world, there stands a tiny wooden cottage, surrounded by lush green forests and twinkling stars. This is Skye’s Cottage, the cozy home of a programmer who—let’s be honest—isn’t exactly great at magic. 🧙♀️💻
Skye is a little wizard who loves tinkering with computers, but whether it’s casting spells or writing code, she always seems to mess things up. Her magic doesn’t make broomsticks fly—it gets them stuck in tree branches, wo ...