基础训练营复习4_嘘嘘喵

嘘嘘喵 社区会员 2021-10-18 21:48:16

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方法的优点:

  1. 不必传递对象引用即可使用 static 方法和变量
  2. 有时需要只有一个变量副本
  3. 有时你需要先调用一个方法,然后才能创建对象

工作内容

基础训练营试卷错题

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任务

java学习笔记13_嘘嘘喵的博客-CSDN博客

 

...全文
542 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110

社区成员

发帖
与我相关
我的任务
社区描述
训练、训练、训练!
其他 其他
社区管理员
  • 实训001
  • 非鱼up
  • andy421
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

自律训练,自信挑战!

试试用AI创作助手写篇文章吧