目录

1:什么情况下发生GC 2:生产环境如何打印Dump快照,如何查询Dump 3:jvm的流程,各区都存储什么数据信息 4:jvm的内存图和原理 5:系统优化和内存调优有哪些方法 6:分析服务器运行状态的方式 7:JVM的内存模型 8:虚拟机调优 9:永久代和新生代的区别...

2018-09-23 14:07:47

阅读数:21

评论数:0

目录

1:线程的工具类 2:线程的生命周期 3:多线程的理解 4:线程池的运行机制 5:线程池中变量的定义 6:corePoolSize和maxPoolSize的区别 7:线程池中的阻塞队列无限大是否合适 8:线程池的队列一般设置多少 9:线程池的实现,源码中常用的方法 10:线程池和...

2018-09-23 14:05:54

阅读数:28

评论数:0

目录

1:hashMap的原理,hash冲突如何解决 2:hashMap如何保证线程安全 3:hashMap的数据结构,hashcode进行了几次转换 4:hashMap的数据结构,get和put方法如何实现 5:hashMap查询的时间复杂度 6:linkedlist和arraylist的区...

2018-09-23 14:05:18

阅读数:24

评论数:0

目录

1:mysql优化 2:sql查询优化,sql写入优化 3:分库分表如何实现,使用什么工具 4:数据库分库分表分区 5:有哪些索引 6:索引什么情况下失效 7:什么是索引,Oracle索引的数据结构 8:oracle索引建立时需要注意什么 9:什么是游标 10:海量数据如何更新 ...

2018-11-10 15:00:59

阅读数:14

评论数:0

1.什么情况下发生GC

一:jvm运行时数据区的划分         (1)程序计数器(Program Conuter Register)         程序计数器是一块较小的内存空间,它是当前线程执行字节码的行号指示器,字节码解释工作器就是通过改变这个计数器的值来选取下一条需要执行的指令。它是线程私有的内存,...

2018-10-05 22:35:27

阅读数:132

评论数:0

9.btree结构和b+tree结构的区别

(1)B树        即二叉搜索树:        1.所有非叶子结点至多拥有两个儿子(Left和Right);        2.所有结点存储一个关键字;        3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;        如:       ...

2018-10-05 17:09:36

阅读数:68

评论数:0

8.如何理解迭代器

一:概念 迭代器:对Collection进行迭代 二:源码中的参数介绍 Collection接口的定义:        public interface Collection<E> extends Iterable<E&am...

2018-10-05 15:52:55

阅读数:39

评论数:0

7.谈谈对集合的理解

         Java集合是java提供的一个工具包,全部继承自java.util.*。主要包括两大接口Collection接口和Map接口以及相关的工具类(Iterator迭代器接口、Enumeration枚举类、Arrays和Colletions)。      (1)Collecti...

2018-10-05 11:08:10

阅读数:116

评论数:0

6.linkedlist和arraylist的区别

ArrayList和LinkedList的大致区别如下: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。  2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。  3.对于新增和删除操作...

2018-10-04 19:31:12

阅读数:22

评论数:0

5.concurrentHashMap的实现

  JDK1.7的实现 在JDK1.7版本中,ConcurrentHashMap的数据结构是由一个Segment数组和多个HashEntry组成,如下图所示:   Segment数组的意义就是将一个大的table分割成多个小的table来进行加锁,也就是上面的提到的锁分离技术,而每一个Seg...

2018-10-04 19:12:53

阅读数:29

评论数:0

2.hashMap如何保证线程安全

一:hashMap线程不安全表现 (1)在两个线程同时尝试扩容HashMap时,可能将一个链表形成环形的链表,所有的next都不为空,进入死循环; (2)在两个线程同时进行put时可能造成一个线程数据的丢失; 二:如何线程安全的使用hashMap (1)Hashtable //Hasht...

2018-10-03 20:49:37

阅读数:52

评论数:0

3.hashMap的数据结构,源码中的常用方法

一:hashMap的数据结构         HashMap储存的是键值对,并允许使用null值和null键,不保证映射的顺序。HashMap实际上是一个“链表散列”的数据结构,即数组和链表和红黑树的结合体。          数组:存储区间连续,占用内存严重,寻址容易,插入删除困难;  ...

2018-10-03 15:51:38

阅读数:14

评论数:0

1.jdk1.8中hashMap的原理,hash冲突如何解决

一:hashMap的工作原理        HashMap是基于链地址法的原理,使用put(key, value)存储对象到HashMap中,使用get(key)从HashMap中获取对象。        当我们给put()方法传递键和值时,我们先对键调用hashCode()方法计算hash从...

2018-10-03 15:25:18

阅读数:167

评论数:0

11.线程的状态,线程池的构造方式,线程池的特性

一:线程的状态 (1)初始状态         实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态。 (2) 就绪状态       1)就绪状态只是说你资格运行,调度程序没有挑选到你,你就永远是就绪状态。       2)调用线程的...

2018-09-30 20:30:26

阅读数:22

评论数:0

10.线程和线程池的区别,线程池有哪些,什么情况下使用

一:线程和线程池的区别 (1)new Thread 的弊端       a. 每次new Thread时,新建对象性能差。       b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,可能占用过多系统资源导致死机或oom。       c. 缺乏更多功能,如定时执行、定期执行、线程中...

2018-09-30 19:51:01

阅读数:79

评论数:0

9.线程池的实现,源码中常用的方法

一:程池的作用       线程池可以使线程复用,避免了每次线程都new一个新的线程,另外我们可以给线程池一个固定大小,从而避免了大量线程对CPU的占用。 二:线程池的创建         在Java用有一个Executors工具类,可以为我们创建一个线程池,其本质就是new了一个Threa...

2018-09-28 21:31:40

阅读数:19

评论数:0

8.线程池的队列一般设置多少

一、ThreadPoolExecutor的重要参数 corePoolSize:核心线程数         核心线程会一直存活,及时没有任务需要执行        当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理        设置allowCoreThreadTime...

2018-09-24 14:49:03

阅读数:515

评论数:0

7.线程池中的阻塞队列无限大是否合适

      在设置线程池队列长度时,如果长度设置的不合理就无法发挥出多线程的威力。设置线程池的队列长度取决于使用场景;比如全程异步的系统,队列可以设置为0,corePoolSize设置为cpu核数。研究tomcat、Dubbo等业界成熟的产品是如何设置线程队列,分析如何合理设置线程池队列长度。 ...

2018-09-24 11:41:48

阅读数:193

评论数:0

6.corePoolSize和maxPoolSize的区别

       受限于硬件、内存和性能,我们不可能无限制的创建任意数量的线程,每一台机器允许的最大线程是一个有界值。因此ThreadPoolExecutor管理的线程数量是有界的。线程池就是用这些有限个数的线程,去执行提交的任务。但是对于多用户、高并发的应用来说,提交的任务数量非常巨大,会比允许的最...

2018-09-24 11:41:19

阅读数:454

评论数:0

5.线程池中变量的定义

1.线程池的概念        线程:进程中负责程序执行的执行单元。一个进程中至少有一个线程。        多线程:解决多任务同时执行的需求,合理使用CPU资源。多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性。       线程池:基本思想还是一种对象池...

2018-09-24 11:41:04

阅读数:98

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭