首页
学习
活动
专区
工具
TVP
发布

BanzClub

专栏作者
53
文章
66719
阅读量
14
订阅数
Java的线程安全问题
Java面试时,总会被问到简单聊一聊线程安全问题,这时候就要考验,求职者对Java原理的掌握程度了,
搬砖俱乐部
2019-12-16
8960
Java总结
01—Java技术总结 Java语言基础 关键字 数据类型 基本数据类型 字符串 数组 流程控制 if else for while swich break continue 运算 基本运算 移位运算 位运算 浮点运算 布尔运算 面向对象 特性 封装 继承 多态 类 普通类 抽象类 接口 枚举 类成员 构造 属性 方法 静态方法 静态块 类访问 public protected 默认 private 异常处理 Throwable Error Exception RuntimeExcep
搬砖俱乐部
2019-09-25
4340
简述几种序列化方式
在Java应用中,所有对象的创建都是在内存中完成的,当应用需要保存对象到磁盘文件或通过网络发送给其他应用时,需要将对象信息转化成二进制字节流,这个从对象状态转化成二进制字节流的过程,就是序列化。相反,从字节流创建成对象的过程就是反序列化。
搬砖俱乐部
2019-06-16
4.9K0
简述Java类加载机制
Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行验证、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是Java虚拟机的类加载机制。
搬砖俱乐部
2019-06-16
1.8K0
Java I/O 常用的实现类
FileInputStream类可以将一个文件的内容作为字节流读取,我们看一下源码:
搬砖俱乐部
2019-06-16
8760
Java I/O 概览
Java IO是Java语言支持输入输出的API,Java IO主要关注文件,网络流,内部存储器缓冲区等的输入和输出。但是,Java IO不包括网络通信套接字的类,这些类在java network包中,不过,可以使用InputStream和OutputStream读取Socket的输入和输出数据流。
搬砖俱乐部
2019-06-15
6370
同步器
Java提供两种同步机制,一种是内置的synchronize,另外一种就是大名鼎鼎的AQS,基于AQS实现了很多同步器:倒数闩锁(CountDownLatch)、信号量(Semaphore)、可循环使用的屏障(CyclicBarrier)。
搬砖俱乐部
2019-06-15
4570
分治算法与Fork/Join框架
在计算机科学中,分治法是解决多项式分支递归的重要范式;也就是“分而治之”,将复杂问题分成两个或更多相似的子问题,然后将简单的子问题求解,再将子问题的解合并。有很多经典的算法就是采用了“分而治之”的思想,如:归并排序、快速排序、矩阵乘法等。
搬砖俱乐部
2019-06-15
9800
Executor执行器与线程池
Java使用Executor框架执行多线程任务,创建与操作系统线程一对一的映射线程,由操作系统分配CPU来执行。称为任务的两级调度模型,如下图所示:
搬砖俱乐部
2019-06-15
8980
阻塞队列与非阻塞队列
Java提供很多线程安全的容器,为开发人员在并发编程场景下使用,通常我们会更加关注业务实现,而不关心底层结构。但我们应该理解这些容器的原理和使用场景,以方便我们的开发和遇到问题的分析,并且有时候也能借鉴一下大神们的实现思想。
搬砖俱乐部
2019-06-15
3K0
内存模型与轻量级同步机制volatile
Java中为了线程通信的安全性(数据一致性),除了提供内置锁synchronized和显示锁ReentrantLock,还提供了另外一种线程同步机制——volatile,是一种轻量级同步机制。不过,通常很难轻易的理解volatile的真正意义。下面通过一个例子来认识一下volatile(摘自《深入理解Java虚拟机》):
搬砖俱乐部
2019-06-15
4690
线程通信之Java同步与锁
线程相对于进程的特点,是可以共享全局变量和内存,使线程间通信变得很方便,但也带来了数据一致性的问题,即线程安全问题。在很多传统软件系统中,大部分程序都是串行化执行的,业务上就很少会有并发的场景,比如:审批系统里,用户按照工作流角色的分配,进行对文件的审批,一般不会出现并发情况,所以设计上就几乎不考虑并发。而现在的互联网系统中,场景往往存在很多是数据共享的,比如:多个用户抢票,多个用户下单等,每个用户操作就是一个线程,而操作的数据确是同一份,这就涉及到是否超卖等数据一致性的问题。
搬砖俱乐部
2019-06-15
7740
线程与Java线程
对于程序的运行过程,操作系统中最重要的两个概念是进程和CPU,进程就是运行程序的一个抽象,CPU主要工作就是对进程的调度。需要理解的是,一个CPU在一个瞬间,只能执行一个进程,通常这个时间片段是几十毫秒或几百毫秒,但对于用户来讲,就像多个程序同时运行,这就是伪并行(对于一个CPU来讲)。进程包含几乎程序运行的所需要的所有信息,包括程序计数器、堆栈指针、程序对应地址空间(存放可执行程序、程序的数据、程序的堆栈等)的读写操作以及其他资源的信息。进程的执行有三个状态:正在运行的进程是运行态,还包括就绪态(可运行,CPU正在执行别的进程)、阻塞态(等待某个资源或某个事件发生之前的进程的状态)。三种状态的切换如下图所示:
搬砖俱乐部
2019-06-15
1.7K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档