[MyCreamWallpaper]开发日记 : 2023/3/2

我靠,属实是没想到居然开始断电了…本来前几天一直没有断电,还以为这学期开始不会再断了。虽然是情理之中,但还是在意料之外。只能说,以后一定要在12点之前处理完所有事情了。

原本今天还打算花点时间把图片详情页的部分多写一些的,看来只能等睡醒之后去处理。悲(x

今天主要还是把之前在进阶之光里面的多线程的内容再读了一遍,好好的整理了一部分笔记。但是多线程完全弄懂真的还是挺花功夫,今天看了一大半时间还只是读了一半的内容。晚上安慰了焦虑的凯子之后,原本的一些时间也无了。其实本来下午两点多的时候也是可以再学习一会儿的,可惜用去摸鱼了…虽然说还是要劳逸结合吧,但还是有点不甘心。

因为很多事情不可能是在主线程上一口气就全部就做完的,所以一些耗时间的操作都需要我们自己手动去开启线程去操作。

  • 继承Thread
  • 实现Runnable接口
  • 实现Callable接口

开启线程后,对部分需要在不同线程中进行共享的数据和对象,要做同步和加锁,以保证数据的安全。

  • volatile -> 将变量的数据进行及时更新,保证数据一致性和可见性
  • 同步方法 -> 对方法中的资源进行保护,避免竞争;自动释放
  • 同步代码块 -> 对代码块中的资源进行保护,避免竞争;手动配置需要上锁的对象,自动释放
  • 重入锁+条件对象 -> 当不满足条件时自动释放锁并阻塞线程;手动上锁和释放

再一个就是collection的HashMap,顺带还复习了一下Hash的处理方法 (话说没想到这玩意儿居然是在util包里)

  • Java 1.8开始使用数组+链表(红黑树),每次将map放进数组前需要对k.hashCode进行hash计算下标(二次hash,减少碰撞),之后保存为Node并放入数组中。当发生碰撞后,就使用链表将数据向后存放;当链表长度大于8后就改为使用红黑树。
  • 有两个关键参数:capacity和load factor。默认长度为16,比例是0.75。当使用了12个下标后,就将长度拓展为2n(也就是16),
  • get()每次从数组第一个进行查询,如果命中就直接返回;没命中就判断数组后面是否有链表/红黑树,并进去查找;再没找到,就换数组的下一个进行查询

对于Android开发本身相关的内容,今天其实并没有怎么看。和教练在晚上沟通的时候意识到实习方面还是重点在Android开发上,像是算法和Java、计算机网络八股等等并没有那么的重要。虽然算法方面我不意外,但还是担心像其他的基础内容会不会有影响。不过细想一下也是有一定道理的,确实也应该稍微把复习的内容做点微调。明天 (实际上写的时候已经是“明天”了233333) 开始复习一下
fragment和ContentProvider的内容 (其实本来是今天想要看的…) 吧,顺带看一看之前复习过的Handler和Service的使用(按照郭神书上的内容来看,这也算是Android多线程相关的内容。不过我还是觉得coroutine更重要一点,也更加接近kotlin中的多“线程”)。

还是那句话吧,不能太贪心,但是也不能没有要求。上午九点半还约了宝莱他们寝室一起去看来学院春招的企业,也不知道自己到底是个什么情况。嘛,随缘吧。

但行好事,莫问前程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值