基础训练营复习4_嘘嘘喵
10.16
学习内容
1、foreach
for(Type element : array){
do();
}
其效果为:对于 array 数组中的每一个 element ,执行 do() 方法。
工作内容
1、树结构遍历
package com.xxm.exam1;
import java.util.ArrayList;
import java.util.List;
public class task29 {
public static void main(String[] args) {
/*示例
Node<String> root = new Node<>("root");
//定义根节点
Node<String> node1 = root.addChild(new Node<String>("node 1"));
//增加一个结子节点,其父节点是root
*/
Node<String> node1 = new Node<String>("中国");
Node<String> node2 = node1.addChild(new Node<String>("北京市"));
Node<String> node3 = node2.addChild(new Node<String>("朝阳区"));
Node<String> node4 = node2.addChild(new Node<String>("海淀区"));
Node<String> node5 = node1.addChild(new Node<String>("湖北省"));
Node<String> node6 = node5.addChild(new Node<String>("武汉市"));
Node<String> node7 = node6.addChild(new Node<String>("江汉区"));
Node<String> node8 = node6.addChild(new Node<String>("江夏区"));
Node<String> node9 = node1.addChild(new Node<String>("湖南省"));
Node<String> node10 = node9.addChild(new Node<String>("长沙市"));
Node<String> node11 = node9.addChild(new Node<String>("郴州市"));
Node<String> node12 = new Node<String>("美国");
Node<String> node13 = node12.addChild(new Node<String>("加利福尼亚州"));
Node<String> node14 = node12.addChild(new Node<String>("得克萨斯州"));
printTree(node1, " ", "·");
printTree(node12, " ", "·");
}
public static class Node<T> {
//定义Note类
private T data = null;
//定义并初始化
private List<Node<T>> children = new ArrayList<>();
//声明并初始化Node类的子节点
private Node<T> parent = null;
//声明并初始化Node类的父节点
public Node(T data) {
this.data = data;
}
//定义Node类数据的设置方法
public Node<T> addChild(Node<T> child) {
child.setParent(this);
this.children.add(child);
return child;
}
//定义增加单个子节点的方法
public void addChildren(List<Node<T>> children) {
children.forEach(each -> each.setParent(this));
this.children.addAll(children);
}
//定义增加多个子节点的方法
public Node<T> getParent() {
return parent;
}
//定义获取父节点的方法
public T getData() {
return data;
}
//定义获取特定节点数据的方法
public void setData(T data) {
this.data = data;
}
//定义当前节点数据的设置方法
public void setParent(Node<T> parent) {
this.parent = parent;
}
//定义设置父节点的方法
public void setChildren(List<Node<T>> children) {
this.children = children;
}
//定义设置多个子节点的方法
public List<Node<T>> getChildren() {
return children;
}
//定义获取多个子节点的方法
} //至此,树型结构构造完毕
public static <T> void printTree(Node<T> node, String appender, String dot) {
System.out.println(appender + dot + node.getData());
node.getChildren().forEach(each -> printTree(each, appender + appender, dot));
}
}
2、java的逻辑与算法
把任务4里的递归、分支、顺序查找、二分查找、插值查找、快速排序自己在java里又实现了一遍。
10.18
学习内容
finalize() 方法
Java 虚拟机在销毁对象之前调用 finalize() 方法。
该方法用于释放系统资源或执行其他清理任务。
Object 类包含 finalize() 方法,这意味着所有其他类都是如此(因为所有 Java 类都是从 Object 类派生的)。你可以直接在类中实现自己的 finalize() 方法。
finalize方法往往不会被调用,更像是一个备份。
static 变量和方法
类的每个实例只能存在 static 变量的一个副本,并且必须使用类名访问该副本
类的方法分为两种:
实例方法是在对象上调用的,并且可以访问该对象的数据。
- static 方法没有该访问权限,因为它们根本没有对象引用。
- static方法可以引用类的 static 变量和其他 static 方法。
- static 方法无法处理非 static 方法或非 static 变量
static方法的优点:
- 不必传递对象引用即可使用 static 方法和变量
- 有时需要只有一个变量副本
- 有时你需要先调用一个方法,然后才能创建对象
工作内容
基础训练营试卷错题
1、在centos中,rpm -q命令的作用是___
答:查询软件包是否安装。
2、TCP的三次握手
第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认。
SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
3、HTML5的应用程序缓存manifest文件包括哪几个部分?
CACHE MANIFEST - 文件申明。
CACHE - 需要缓存的文件。
NETWORK - 不被缓存的文件。
FALLBACK - 制定无法访问文件时的文件。
4、输入框的图标可以使用什么属性展现出来?
通过background属性。
5、Window.document和Document有什么区别
简单来说,Document是Window的一个对象属性。是 Window 对象的一部分,可通过 window.document 属性对其进行访问。
Window 对象表示浏览器中打开的窗口。
如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。
6、怎么显示文档对象中所有cookie的键值对
<script>
document.write(document.cookie);
<\script>
7、如何输出文件增删改的统计数据
git status
git log
git blame <file>
8、如何撤销未push的本地上一次commit
git reset <commit id>
注:commit it 可以在 git log 指令中查看
3个参数:
–mixed 修改本地仓库、暂存区里面的数据为commitId对应快照里的数据,是默认参数,可省略。 暂存区的数据会被快照中的数据覆盖
–soft 修改本地仓库里面的数据为commitId对应快照的数据。(仅改变指向快照的指针指向)
–hard 修改本地仓库、暂存区、工作区里面的数据为commitId对应快照的内数据。
java任务
相关推荐
2026安卓开发从零实战指南:环境搭建、核心基础与避坑干货(适配新版Android_Studio).pdf
2026安卓开发从零实战指南:环境搭建、核心基础与避坑干货(适配新版Android_Studio).pdf
如何实现科研成果转化率的有效提升与技术市场精准对接?.docx
如何实现科研成果转化率的有效提升与技术市场精准对接?
基于PID控制的ABS汽车防抱死制动系统、车轮滑移率+最优滑移率Carsim和Simulink联合仿真(带参考文献)
内容概要:本文档系统研究了基于PID控制的ABS汽车防抱死制动系统,聚焦于车轮滑移率与最优滑移率的动态控制问题,采用Carsim与Simulink联合仿真平台构建高精度车辆动力学模型与控制系统。研究详细阐述了ABS的工作机理,通过设计PID控制器实时调节制动压力,确保车轮滑移率稳定在最优区间,从而最大化轮胎与路面间的摩擦力,提升制动效能与行车安全性。文档涵盖了完整的建模流程、控制策略设计、仿真验证方法及参数整定过程,并提供了详实的参考文献支持,增强了研究的可复现性与工程应用价值。; 适合人群:具备车辆工程、自动化或控制理论等相关专业背景,熟悉MATLAB/Simulink与Carsim仿真环境的研究生、科研人员及汽车行业技术研发工程师。; 使用场景及目标:①用于ABS控制算法的教学讲解与科研实验;②支撑车辆制动性能优化、主动安全系统开发等实际工程应用;③为相关学术论文撰写、课题复现与技术创新提供理论依据与技术参考。; 阅读建议:建议读者结合所提供的仿真模型与参考文献,逐步运行并调试代码,重点关注滑移率计算逻辑、PID参数整定方法及联合仿真的数据交互机制,同时可尝试引入模糊控制、自适应控制等先进算法进行对比分析,以深入掌握ABS系统的控制精髓与优化路径。
高校如何利用技术转移数据分析优化成果转化路径?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
MATLAB采用改进的PSO实现AUV三维路径规划,配备自适应惯性权重、距离演化因子和跳出机制。.zip
MATLAB采用改进的PSO实现AUV三维路径规划,配备自适应惯性权重、距离演化因子和跳出机制。.zip


