2019年12月5日

Java并发多线程面试题 Top 50

摘要:不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的 阅读全文

posted @ 2019-12-05 16:59 wanbf 阅读(63) 评论(0) 推荐(0) 编辑

Java NIO和IO的区别

摘要:下表总结了Java NIO和IO之间的主要差别,我会更详细地描述表中每部分的差异。 复制代码 代码如下: IO NIO面向流 面向缓冲阻塞IO 非阻塞IO无 选择器 面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次 阅读全文

posted @ 2019-12-05 15:56 wanbf 阅读(16) 评论(0) 推荐(0) 编辑

2019年12月4日

【转载】线程池的原理及实现

摘要:1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提 阅读全文

posted @ 2019-12-04 16:48 wanbf 阅读(41) 评论(0) 推荐(0) 编辑

【转载】关于SimpleDateFormat安全的时间格式化线程安全问题

摘要:想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多 阅读全文

posted @ 2019-12-04 15:13 wanbf 阅读(19) 评论(0) 推荐(0) 编辑

【转载】Java对象的生命周期

摘要:Java对象的生命周期 在Java中,对象的生命周期包括以下几个阶段: 1. 创建阶段(Created) 2. 应用阶段(In Use) 3. 不可见阶段(Invisible) 4. 不可达阶段(Unreachable) 5. 收集阶段(Collected) 6. 终结阶段(Finalized) 7 阅读全文

posted @ 2019-12-04 11:43 wanbf 阅读(24) 评论(0) 推荐(0) 编辑

【转载】JVM结构、GC工作机制详解

摘要:文章主要分为以下四个部分 JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。 一、JVM结构 根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示: 从左图可知,JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class 阅读全文

posted @ 2019-12-04 10:59 wanbf 阅读(21) 评论(0) 推荐(0) 编辑

2019年7月18日

数据结构与算法---堆排序(Heap sort)

摘要:堆排序基本介绍 1、堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 2、堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆, 注意 : 没有要求结点的左孩子的值和右孩子的值 阅读全文

posted @ 2019-07-18 23:41 wanbf 阅读(338) 评论(1) 推荐(0) 编辑

2019年7月15日

数据结构与算法---线索化二叉树(Threaded BinaryTree)

摘要:先看一个问题 将数列 {1, 3, 6, 8, 10, 14 } 构建成一颗二叉树 问题分析: 线索二叉树基本介绍 1、n个结点的二叉链表中含有n+1 【公式 2n-(n-1)=n+1】 个空指针域。利用二叉链表中的空指针域,存放指向该结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为" 阅读全文

posted @ 2019-07-15 23:44 wanbf 阅读(211) 评论(0) 推荐(0) 编辑

2019年7月10日

数据结构与算法---树结构(Tree structure)

摘要:为什么需要树这种数据结构 数组存储方式的分析 优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低。 链式存储方式的分析 优点:在一定程度上对数组存储方式有优化(比如:插入一个数值节点,只需要将插入 阅读全文

posted @ 2019-07-10 23:37 wanbf 阅读(315) 评论(0) 推荐(0) 编辑

2019年7月7日

数据结构与算法---查找算法(Search Algorithm)

摘要:查找算法介绍 在java中,我们常用的查找有四种: 1)线性查找算法 示例: 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。 思路:将数列遍历匹配,就是用for循坏遍历,if匹配数据,找到下标值 阅读全文

posted @ 2019-07-07 12:52 wanbf 阅读(506) 评论(0) 推荐(0) 编辑

导航