摘要:
一、环境准备 参考基础《TODO》 二、联合类型和类型保护 interface Bird { fly: boolean; sing: () => {}; } interface Dog { fly: boolean; bark: () => {}; } // 联合类型 function trainA 阅读全文
摘要:
第一章 概览 es6代码是不能够直接被浏览器执行的,需要转化成es5,react脚手架工程可以通过执行npm run build。 第三章 类组件 取变量的方式 >???使用变量jsx 如果jsx中的内容是动态的,可以通过表达式来获取, 书写规则:{表达式},大括号内可以是变量、字符串、数组、函数调 阅读全文
摘要:
Java进程和线程 任务A执行I/O操作时,去执行任务B。 进程独占内存空间,线程共享进程的内存资源。 一、区别 进程时资源分配的最小单位,线程时CPU调度的最小单位 1、线程属于某个进程,共享其资源 2、线程只有堆栈寄存器、程序计数器和线程控制表(TCB)组成 线程的抢占 CAS自旋 JMM 结合 阅读全文
摘要:
Java try catch finally 一、什么是finally try关键字最后可以定义finally代码块。finally块中定义的代码,总是在try和任何catch块之后、方法完成之前运行。 正常情况下,不管是否抛出或捕获异常finally块都会执行。 二、什么是异常 // 一个方法体内 阅读全文
摘要:
Java CAS synchronized为悲观锁,CAS乐观锁机制 包含三个操作数 内存位置V、预期原值A、和新值B,V和A相等的时候,才会更换成B。 缺点 1、循环时间长,则开销大 2、只能保证一个共享变量原子操作 3、ABA问题,改回去改回来,解决:juc提供了AtomicStampedRef 阅读全文
摘要:
一、为什么需要锁 存在共享数据。 当出现ConcurrentModificationException的时候,存在多个线程对一个集合同时进行遍历或者修改。 单线程就不需要考虑这种情况。 二、解决方案 当前类中涉及集合修改和遍历操作加上synchronized关键字,或者是这两个逻辑放在一个线程中完成 阅读全文
摘要:
一、Java内存模型(JMM) 线程-》工作内存-》主内存 主内存 1、存储Java实例对象 2、包括成员变量、类信息、常量、静态变量等 3、属于数据共享区域,多线程并发操作时会引发线程安全 工作内存 1、存储当前方法的所有本地变量信息,本地变量对其他线程不可见 2、属于对主内存变量的拷贝 3、字节 阅读全文