ThreadLocal原理

ThreadLocal是什么

早在JDK 1.2的版本中就提供Java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。

初识java多线程

多线程与多线程概念

首先,我们来介绍一下并发的基本概念和原理。对于现代操作系统来说,大部分操作系统都是多任务操作系统。什么是“多任务”呢?指的是每个系统在同时能够运行多个进程。例如,在windows中,可能开着一个Word窗口写文档,开着一个eclipse写代码,开着一个QQ聊天,开着一个IE浏览网页,开着一个Winamp听歌……这就意味着,在一个操作系统中,同时有多个程序在内存中运行着。每一个运行着的程序,就是操作系统中运行着的一个任务,也就是我们所说的“进程”。例如,在windows中,可以通过“任务管理器”来查看系统中有多少进程正在运行。

Java I/O流的分类及常见输入/输出流

概述

在程序运行的过程当中,JVM的内存中必然会存放很多数据,包括基本类型和对象类型。但是当程序结束,JVM关闭的时候,这些数据必然会随之消失。我们可能希望通过某种方式,让这些数据能够保存下来,以备再次使用。因此我们会把数据存入文件,或通过网络发送出去,或存入数据库。反之,我们当然也需要用某种方式,把保存的数据重新读回JVM。这些,都涉及到JVM与外部进行数据交换。将JVM中的数据写出去,我们称为数据的输出。反之,将数据读入JVM,我们称之为数据的输入。因此,Java中解决这部分问题的API被称为I/O。

Java数据类型

基本数据类型

变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。
Java 的两大数据类型:

  • 内置数据类型
  • 引用数据类型