3 Hakuna-Matata

尚未进行身份认证

耐心是一种美德!

等级
TA的排名 114w+

19、多线程

在日常生活中,很多事情都是同时进行的。例如,人可以同时进行呼吸、血液循环、思考问题等活动。在使用计算机的过程中,应用程序也可以同时运行,用户可以使用计算机一边听歌,一边打游戏。在应用程序中,不同的程序块也是可以同时运行的,这种多个程序块同时运行的现象被称做并发执行。 多线程就是指一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程,它们会交替执行,彼此之间可以进行通信。1.1进程

2017-07-22 18:49:58

十八、Object类的各个方法及其作用

一、简介Object类  1、Object类是所有类的父类,即每个类都直接或简介继承自该类。所以一个Object类型的变量可以引用任何对象,不论是类实例还是数组。  在不明确给出父类的情况下,Java会自动把Object作为要定义类的父类。  Object类有一个默认构造方法publicObject(),在构造子类实例时,都会先调用这个默认构造方法。 二、方法预览

2017-07-19 21:51:49

十六、数据结构---链表

一、链表 概念:  链式存储结构是基于指针实现的。我们把一个数据元素和一个指针称为结点。  数据域:存储数据元素信息的域。  指针域:存储直接后继位置的域。 1.链式存储结构是用指针把相互直接关联的结点(即直接前驱结点或直接后继结点)链接起来。链式存储结构的线性表称为链表。 2.单链表:链表的每个结点中只包含一个指针域,叫做单链表(即构成链表的每个结点只有一个指

2017-07-15 22:01:55

十五、数据结构---红黑树

二叉查找树  二叉查找树,也称有序二叉树(orderedbinarytree),或已排序二叉树(sortedbinarytree),是指一棵空树或者具有下列性质的二叉树:  若任意结点的左子树不空,则左子树上的所有结点的值均小于它的根结点的值;  若任意结点的右子树不空,则右子树上的所有结点的值均大于它的根结点的值;  任意结点的左,右子树也分别为二叉查找树

2017-07-14 22:50:07

十四、数据机构---堆排序

1、堆是一种重要的数据结构,为一棵完全二叉树,  底层一般用数组存储数据。假设某个元素为序号为i(Java数组从0开始,i为0到n-1),如果它有左子树,那么左子树的位置是2i+1,如果有右子树,右子树的位置是2i+2,如果有父节点,父节点的位置是(n-1)/2取整。  其任何一非叶结点满足性质:  Key[i]  或者  Key[i]>=Key[2i+1]

2017-07-09 15:44:55

十三、数据结构---B+树

一、B-树 1、什么是B-树  具体讲解之前,有一点,再次强调下:B-树,即为B树。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-tree,其实,这是个非常不好的直译,很容易让人产生误解。如人们很可能会以为B-树是一种树,而B树又是另一种树。而事实上是,B-tree就是指的B树。 我们知道,B树是为了磁盘或其他存储设备而设计的一种多叉(下面你会看到,相

2017-07-09 14:53:53

十二、JVM如何利用工具来监控调优前后的性能变化。

工具做为图形化界面来展示更能直观的发现问题,另一方面一些消耗性能的分析(dump文件分析)一般也不会在生产直接分析,往往dump下来的文件达1G左右,人工分析效率低,因此利用工具来分析jvm相关问题,常常可以达到事半功倍的效果来。  JVM监控分析工具一般分为两类,一种是jdk自带的工具,一种是第三方的分析工具。jdk自带工具一般在jdkbin目录下面,以exe的形式直接点击就可

2017-07-08 16:27:15

十一、JVM调优-命令篇

运行JVM自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然JVM调优成熟的工具已经有很多:jconsole,大名鼎鼎的VisualVM,IBM的MemoryAnalyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面我们总喜欢在出现问题的时候在终端输入一些命令来解决。所有的工具几乎都是依赖于JDK的接口和底层的这些命令,研究这些命令的使用也让我

2017-07-08 15:47:44

十、JVM常用启动参数

一、JVM启动参数共分为三类: 1.其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 2.其二是非标准参数(-X),指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,并不保证所有JVM实现都满足,所以为了提高性能,往往需要调整这些参数,以求系统达到最佳性能。另外这些参数不保证向后兼容,也即是说"如有变更,恕不在

2017-07-08 10:30:00

九、JVM垃圾算法(GC算法)和垃圾回收器

1、垃圾收集算法 GC最基础的算法有三种:标记-清除算法,复制算法,标记-压缩算法,我们常用的垃圾回收器一般都采用分代收及算法。  (1)标记-清除算法  标记-清除算法,如它的名字一样,算法分为"标记"和"清除"两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而

2017-07-07 16:45:59

八、JVM内存基本结构

Java程序运行在JVM上,可以吧JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。一个完整的Java程序运行过程会涉及到以下内存区域:  (1)寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。  (2)栈:保存局部变量的值,包括:a.用来保存基本数据类型的值;b.保存类的实例,即堆区对象的引用(指针)。

2017-07-07 10:10:07

七、在LinkedHashMap中,String a = new String("abcd");String b = new String("abcd");都作为key,会如何?

1、什么是LinkedHashMap? LinkedHashMap是HashMap的一个子类,它保留插入的顺序,即输出的顺序和输入时的顺序相同,允许键值对为空,key重复会覆盖,value允许重复,并且有序,安全。 LinkedHashMap可以认为是HashMap+LinkedList,即它既实用HashMap操作数据结构,又使用LinkedList维护插入元素的先后顺序。 L

2017-07-01 15:32:44

六、遍历HashMap的方法。

1、先遍历Map集合中所有的键,再根据键获取相应的值。 SetkeySet=map.keySet();  //调用Map对象的keySet()方法,获取键的集合 Iteratorit=keySet.iterator(); //获取Iterator对象 while(it.hasNext()){//it.hasNext()判断it对象中有没有下一条数据有则返回t

2017-07-01 11:23:31

五、Vector ArrayList里面的数据的排序。

1、Vector定义。 vector可实现自动增长的对象数组。 2、Vector与ArrayList的区别与联系。 联系:都是通过数组实现的。 区别:(1)vector支持线程的同步,即某一时刻只有一个线程能够写vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问ArrayList慢。(2)当数组的大小不够的时候,需要重新建立数组,然后

2017-06-30 10:19:25

四、ArrayList和LinkedList内部的实现大致是怎样的?

1、ArrayList集合   ArrayList是List接口的一个实现类,它是程序中最常见的一种集合。在ArrayList内部封装了一个长度可变的数组对象,当存入的元素超过数组长度时,ArrayList会在内存分配一个更大的数组来存储这些元素,因此ArrayList集合看做一个长度可变的数组。 2、LinkedList集合   LinkedList是List接口的另一个实现

2017-06-29 20:48:49

三、如何实现线程安全的HashMap

1、为什么HashMap线程不安全? transientNode[]table;  staticclassNodeimplementsMap.Entry{    finalinthash;    finalKkey;    Vvalue;    Nodenext;} HashMap内部存储是一个Node数

2017-06-29 10:33:07

二、解决Hash冲突的主要方法

二、解决Hash冲突的主要方法1、几个概念  (1)什么是hash表?    散列表(Hashtable,也叫哈希表),是根据键值对直接进行访问的数据结构。它通过建立关键字和存储位置之间的一个确定的对应关系f,使得,每个关键字与结构中唯一一个存储位置相对应。这个对应关系f叫做哈希函数,存放记录的数组叫做哈希表。  (2)什么是冲突?    对于不同的关

2017-06-28 21:59:30

一、HashMap数据结构

初学HashMap,希望大家批评指正。

2017-06-28 09:58:23
勋章 我的勋章
    暂无奖章