05 2020 档案
摘要:这一章对于学过JAVA的很简单,基本就是一些基本使用 Scala语言转义字符 语言输出 package com.rzp.service object PrintDemo { def main(args: Array[String]): Unit = { var str1:String = "He
阅读全文
摘要:Scala Scalable Language 是一门多范式编程语言,就是支持面向对象、函数式编程等多种编程方式。 范式:编程方式,比如面向对象,函数式编程 Scala能够使用Java部分的语法,同时也有自己特有的语法。 Scala的类库包含特有的类库和对Java的类库包装后的库。 所以Scala需
阅读全文
摘要:JMM JMM是Java内存模型,是一些内存使用上的约定,其中一些重要的规则: 线程解锁前,必须把共享变量立刻刷回主存。 线程枷锁前,必须读取主存中的最新值到工作内存中。 加锁和解锁是同一把锁 多线程下对共享变量的8种操作 对于1个线程要读取主存中的1个变量时,有这8种操作。 read读取:从主内存
阅读全文
摘要:使用线程池以前,需要先了解阻塞队列: 阻塞队列 BlockingQueue 先进先出的数据结构。 写:如果队列满了,就必须阻塞等待消费。 取:如果队列是空的,就必须阻塞等待生产。 一般在多线程并发处理和线程池中使用。 有这些实现类,重要的是红色中的 继承结构其实和List类似 主要API 阻塞队列有
阅读全文
摘要:集合类不安全问题 List ArrayList在并发下是不安全的,就会引发java.util.ConcurrentModificationException 并发修改异常。 解决方案: 使用Vector,Vector是线程安全的 List<Object> list = new Vector<>();
阅读全文
摘要:JUC JUC其实就是指这几个util工具包 原来我们使用的: Thread:是一个普通的线程类。 Runnable:没有返回值,效率相比Callable比较低 线程和进程 和重要概念回顾 进程:一个程序 一个进程可以包含多个线程,至少包含1个。 Java默认有2个线程: main GC 1.Jav
阅读全文