110
社区成员
for(Type element : array){
do();
}
其效果为:对于 array 数组中的每一个 element ,执行 do() 方法。
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));
}
}
把任务4里的递归、分支、顺序查找、二分查找、插值查找、快速排序自己在java里又实现了一遍。
Java 虚拟机在销毁对象之前调用 finalize() 方法。
该方法用于释放系统资源或执行其他清理任务。
Object 类包含 finalize() 方法,这意味着所有其他类都是如此(因为所有 Java 类都是从 Object 类派生的)。你可以直接在类中实现自己的 finalize() 方法。
finalize方法往往不会被调用,更像是一个备份。
类的每个实例只能存在 static 变量的一个副本,并且必须使用类名访问该副本
类的方法分为两种:
实例方法是在对象上调用的,并且可以访问该对象的数据。
static方法的优点:
答:查询软件包是否安装。
第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认。
SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户端的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态。
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
CACHE MANIFEST - 文件申明。
CACHE - 需要缓存的文件。
NETWORK - 不被缓存的文件。
FALLBACK - 制定无法访问文件时的文件。
通过background属性。
简单来说,Document是Window的一个对象属性。是 Window 对象的一部分,可通过 window.document 属性对其进行访问。
Window 对象表示浏览器中打开的窗口。
如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。
<script>
document.write(document.cookie);
<\script>
git status
git log
git blame <file>
git reset <commit id>
注:commit it 可以在 git log 指令中查看
3个参数:
–mixed 修改本地仓库、暂存区里面的数据为commitId对应快照里的数据,是默认参数,可省略。 暂存区的数据会被快照中的数据覆盖
–soft 修改本地仓库里面的数据为commitId对应快照的数据。(仅改变指向快照的指针指向)
–hard 修改本地仓库、暂存区、工作区里面的数据为commitId对应快照的内数据。