- 浏览: 147762 次
- 性别:
- 来自: 北京
最新评论
-
isaiah282485068:
怎么不出书出来啊,市场上好却这方面的书啊
mule in action翻译1 : 第一部分 mule 核心
文章列表
面试问题 什么守护线程
- 博客分类:
- 面试系列
面试问题 什么守护线程
这个是曾遇到的面试题 没回答好 ,这里记录下来。
1、解释守护线程 : 顾名思义就是守护其他线程的线程。守护线程不能独立存在,其它线程都结束过后
守护线程也会结束。
2、举个例子: jvm 的GC 线程就是 守护线程
面试问题 Java HashMap 1.8的改进
- 博客分类:
- 面试系列
面试问题 Java HashMap 1.8的改进
1、 1.7 中的HashMap 的问题
(1)查找效率低:极端情况下--所有的 hash值都是冲突的话 查找一个key 就要遍历整个链表一遍
(2)扩容可能导致 死循环:
2、1.8 中的HashMap 改进
(1) 链表长度到达阀值(默认是8),就会将链表转换成红黑树
(2) 解决了扩容死循环问题:jdk1.8之前和之后不同之处就是jdk1.8后是直接把节点放到
newtable[j]尾节点,而 ...
面试-java锁--synchronized
- 博客分类:
- 面试系列
面试-java锁--synchronized
0、synchronized 隐式锁
1、锁的目的:控制并发,防止多线程修改数据出问题。
2、最简单的 -- synchronized
2.1 Monitor
Java虚拟机给每个对象和class字节码都设置了一个监听器Monitor ...
面试 BIO NIO AIO
- 博客分类:
- 面试系列
面试 BIO NIO AIO
1、 BIO NIO AIO
阻塞 是 否 否
同步 是 是 否
可以参考 https://blog.csdn.net/m0_38109046/article/details/89449305
2、阻塞 : 指的是处理线程的阻塞
InputStream 的 read 方法是阻塞的 :jdk 文档里说:
This method blo ...
转--ThreadPoolExecutor 使用说明----熟悉一下应付面试
ThreadPoolExecutor 使用说明
它是一个ExecutorService,使用线程池中的线程执行提交的任务。通常我们使用Executors框架,定义使用。
线程池主要用来解决两类问题:通过缓存一定数量的可用线程,避免频繁的线程创建,销毁,来提升执行大量异步任务的性能;资源管理,包括线程及任务。同时也维护一些诸如完成任务数等统计数据。
为了能够获得更广泛的适用性,此类提供了多个可调整的参数及扩展性钩子,但是,开发者通常更倾向于使用更为便捷的Executors框架, ...
面试线程池
1、为什么用线程池
1.减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2.可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)。
2、
3、
4、
三种排队策略:
直接传递:通常使
面试JVM模型
1、内存区域划分:
DK1.7及之后版本的 JVM 已经将运行时常量池从方法区中移了出来,在 Java 堆(Heap)中开辟了一块区域存放运行时常量池。
2、
3、判断对像是否存活的算法
引用计数算法:
给对象中添加一个引用计数器,每当有一个地方引用它时,计数器+1,当引用失效,计数器-1.任何时刻计数器为0的对象就是不可能再被使用的。
优点:实现简单,判定效率高效,被actionscript3和python中广泛应用。
缺点:无法解决对象之间的相互引用问题。java没有采纳
面试之JDK1.8新特性
- 博客分类:
- 面试系列
面试之JDK1.8新特性
看到网上有个人总结了这样一句话,感觉比较通俗易懂;
速度更快 – 红黑树
代码更少 – Lambda
强大的Stream API
StreamStream作为Java8的一大亮点,它与java.io包里的InputStream和OutputStream是完全不同的概念。
它也不同于StAX对XML解析的Stream,也不是Amazon Kinesis对大数据实时处理的Stream。
Java8中的Stream是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的 聚合操作(aggregate operation),
或者 ...
面试讲讲Java HashMap
- 博客分类:
- 面试系列
面试讲讲Java HashMap
1、先讲1.7的
HashMap 是基于数组和单向链表的
默认长度 16
Entity 结构:
扩容可能导致死循环
解决 扩容安全:
把一个线程非安全的集合作为全局共享的,本身就是一种错误的做法,并发下一定会产生错误。
所以,解决这个问题的办法很简单,有两种:
1、使用Collections.synchronizedMap(Map<K,V> m)方法把HashMap变成一个线程安全的Map
2、使用Hashtable、Co ...
面试请说说链表和数组
- 博客分类:
- 面试系列
面试请说说链表和数组
链表 数组
长度 不固定 固定
内存连续 不要求 连续内存
内存使用 不浪费 可能浪费内存
追加节点 ...
转--解决hash冲突的三个方法
- 博客分类:
- 面试系列
转--解决hash冲突的三个方法
这个东西没怎么看懂 希望被问到时有个印象
目录
开放定址法
线性探测再散列
二次探测再散列
伪随机探测再散列
再哈希法
转--数组和链表的区别和优缺点总结
- 博客分类:
- 面试系列
转--数组和链表的区别和优缺点总结
数组和链表是两种基本的数据结构,他们在内存存储上的表现不一样,所以也有各自的特点。
链表中各结点在内存中的存放位置是任意的。
链表与数组的主要区别
(1)数组的元素个数是固定的,而组成链表的结点个数可按需要增减;
面试请讲讲Redis
- 博客分类:
- 面试系列
面试请讲讲Redis
1、Redis 是什么 : 一个开源的、高性能、内存数据库
开源---- 使用多 发展好
高性能--- 官网说 能到 10万 qps
内 ...
转--Redis常见面试题
- 博客分类:
- 面试系列
转--Redis常见面试题
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。
传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。
Github 源码:https://github.com/antirez/redis
Redis 官网:https://redis.io/
Redis支持的数据类型? ...