实习笔记(第二周):先保持坚定

本周知识涵盖Java集合、线程和Vue相关内容。Java集合介绍了体系及常见类,如List、Set、Map等;线程部分讲解了创建、生命周期和同步;Vue则涉及环境搭建,包括工具和插件,还有入门知识如v - for、双花括号和v - bind的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本周知识清单:

  • Java集合
  • 线程
  • vue环境搭建和绑定属性、class、style

1.Java集合(此块参考美团实习| 周记(二)
这块知识很多,但有些不是很常用,限于篇幅,下面只介绍常用的几种(参考疯狂Java讲义)。

a.Java集合是什么?
java集合可用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等等。除此之外,Java集合还可用于保存具有映射关系的关联数组。

b.Java集合有几个体系?
大致分为四个体系,Set、List、Map、Queue。

  • Set:代表无序、不可重复的集合
  • List:代表有序、可重复的集合
  • Map:代表具有映射关系的集合
  • Queue:代表一种队列集合

白话:Set跟我们数学中学的集合定义一样,List跟它相反,Map就是存储的键值对,两个数据绑定在一块。Queue用的较少,有点类似于List。

下面粗略地介绍各个常见类:
(1)Collection接口:

  • 是List、Set和Queue接口的父接口,该接口中定义的方法可操作以上三种集合。
  • 常用方法:添加对象add()、删除对象remove()、清空容器clear()、判断容器是否为空isEmpty()等。

(2)List

  • ArrayList:
    • 底层结构是数组,可用索引实现快速查找
    • 非线程安全
    • 动态数组,默认初始容量为10,每次扩容为原1.5倍
  • LinkList
    • 底层是链表,增删速度快
    • 非线程安全
    • 是一个双向循环链表
    • 包含一个非常重要的内部类Entry,是双向链表节点所对应的数据结构,其包括的属性有『当前节点所包含的值』、『上一个节点』、『下一个节点』.

(3)Set:

  • HashSet

    • 不能保证元素的排列顺序

    • 使用Hash算法来存储集合中的元素,有良好的存取和查找性能

    • 非同步,多线程并发要注意线程同问题

    • 集合元素值可为null

    • 通过equal()判断两个元素是否相等,并两个元素的hashCode()返回值也相等

    • TreeSet

    • 是SortedSet接口的实现类,根据元素实际值的大小进行排序

    • 采用红黑树的数据结构来存储集合元素

    • 非同步

    • 支持两种排序方法:自然排序(默认情况)和定制排序。前者通过实现Comparable接口中的compareTo()比较两个元素之间大小关系,然后按升序排列;后者通过实现Comparator接口中的compare()比较两个元素之间大小关系,实现定制排列。
      (4)Map(只提HashMap和HashTable):

  • HashMap

    • 基于AbstractMap类,实现了Map、Cloneable(能被克隆)、Serializable(支持序列化)接口
    • 无序
    • 非线程安全
    • 允许存在一个为nullkey和任意个为nullvalue
    • 采用链表散列的数据结构,即数组和链表的结合
    • 初始容量为16,填充因子默认为0.75,扩容时是当前容量翻倍,即2capacity
  • HashTable

    • 基于Map接口Dictionary类
    • 无序
    • 线程安全,开销比HashMap大,如果多线程访问一个Map对象,使用Hashtable更好
    • 不允许使用null作为key和value
    • 底层基于哈希表结构
    • 初始容量为11,填充因子默认为0.75,扩容时是容量翻倍+1,即2capacity+1。

2.线程
学过操作系统都知道,关于线程和进程的定义,线程是系统调度的基本单位,进程是系统分配资源的基本单位。在Java中,经常用到多线程编程,是因为线程较进程更加灵活多个线程可以共享一个进程的资源空间,也更加的方便线程通信。以下部分总结:

  • 线程创建和启动

    • 继承Thread类创建线程类,重写run方法,调用start方法启动
    • 实现runnable接口创建线程类,重写run方法,调用start方法启动
    • 使用Callable和Future创建(暂未遇到)
      ps:这里请注意,启动线程一定是start方法,如果用run方法启动,则多线程就成了单线程,run方法就成了普通方法。
  • 线程的生命周期

    • 新建、就绪、运行、阻塞和死亡
      线程状态图
  • 线程死亡、join线程、后台线程、线程睡眠、改变线程优先级

  • 线程同步
    由于线程具有随机性,所以需要同步。关键字:synchronized。代码示例:

synchronized(obj){
		....
		//此处的代码就是同步代码块
}

3.Vue的环境搭建和绑定属性、class、style

  • Vue的环境搭建
    首先vue的环境搭建是很简单的,百度“vue环境搭建”一大堆,但是比较遗憾的是没有补充简洁的方式去操作vue,我是看视频才知道还有vscode以及插件等等。视频链接:学 Vue.js 看这个就够了Vue.js文档。列举一下有用的东西:

    • 工具:vscode
    • 浏览器插件:reveal in exploer、view in brower
    • 建立项目的简单方式,在视频中有教。你需要下载一个vue.js文件。
  • Vue入门知识:

    • v-for:列表渲染,可以把数据中的一个数组对应为一组元素,需要以 item in items 形式的特殊语法, items 是源数据数组并且 item 是数组元素迭代的别名。
<template>
  <div id="app">
      <h2>{{msg}}</h2>

      <br>
      这是根组件

      <br>
      <h3>{{obj.name}}</h3>

      <br>
      <hr>
      <br/>

      <ul>
        <li v-for="item in list">
          {{item}}
        </li>
      
      </ul>

      <br>
      <hr>
      <br/>

      <ul>
          <li v-for="item in list1">
            {{item.title}}
          </li>
        
        </ul>


      <br>
      <hr>
      <br/>

      <ul>
          <li v-for="item in list2">
            {{item.cate}}

            <ol>
              <li v-for="news in item.list">
                    {{news.title}}
              </li>
            
            </ol>
          </li>
        
      </ul>

  </div>
</template>


<script>
export default {
  data(){
    return {
      msg:'你好vue',
      obj:{
        name:"张三"
      },
      list:['111','222','333'],
      list1:[
        {'title':'11111'},
        {'title':'222'},
        {'title':'333333'},
        {'title':'44444'},
        ],
        
        list2:[
            {
              "cate":"国内新闻",
              list:[
                {'title':'11111'},
                {'title':'国内新闻2222'}
              ]
            },
            {
              "cate":"国际新闻",
              list:[
                {'title':'11111'},
                {'title':'国内新闻2222'}
              ]
            }

        ]
    }
  }
}


</script>
  • {{}}:双花括号,声明式渲染,Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统,其实是加载数据的。

  • v-bind:Class 与 Style 绑定。V-bind详细使用

来到这里两周了,上周因为返校,没有时间写博客总结,总结也不全面,后面会再补充。最近心情有所缓和,与师哥们交谈中学习到很多东西。现在觉得,无论在哪个公司,都会有这样那样的问题,所以我现在能做的和可做的,只有放平心态,先保持坚定,去学习一切能学习的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值