Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

十种常见经典排序 比较排序: 通过比较来决定元素间的相互顺序 非比较排序: (冒泡排序,快排,插入,选择,基数,桶,希尔,归并,堆) 冒泡排序算法思想相邻元素两两比较,将较大(较小)的交换到后面。 代码123456789101112public int[] bubbleSort(int[] arr){ for(int i=0; i<arr.length; i++...

为什么要有泛型它的一个主要目标是将运行时才能发现的错误转移到编译期。 泛型是什么所谓泛型,就是将类型参数化,即把类型也作为一种参数。如何做到这点呢?通过解耦类或方法与所使用的类型之间的约束。 表面使用泛型类1234567891011121314151617181920212223242526public class GenericsDemo <T> { priva...
Java

海量数据相关的面试题已经是个老生常谈的话题了。相比于小量数据,海量数据存在两点限制:内存装不下或者读取太慢。 关于海量数据的面试题一般有一下几种: 寻找出现次数最多/最少/没有出现的数 对于海量数据的处理方式也不外乎以下几种: 分而治之(将大文件拆分成小文件) hash bitmap 题目1. 海量日志数据,提取出某日访问百度次数最多的那个IP思路 这是一道关于统计次数的题,...

finalize是什么finalize()是定义在Object类中的一个方法,用于垃圾回收。 finalize原理当JVM的GC打算回收某个对象时,如果这个对象覆盖了finalize()方法,并且finalize()方法没有被执行过,会把这个对象放在一个叫做F-Queue的队列中,稍后由一个由虚拟机自动建立的,低优先级的Finalizer线程去触发finalize的执行。稍后GC将对F-Qu...
Java

参考 Java提高篇——Java 异常处理
Java

分类成员内部类得先创建外部类,然后才能创建内部类。 保存了一个指向外部对象的引用,所以可以访问外部对象的成员。 方法内部类匿名内部类匿名类没有名字,继承自父类或者实现了某个接口,它是没有构造器的,因为它连名字都没有。 通过使用实例初始化,就能达到为匿名内部类创建一个构造器的效果(其实就是在定义类的时候在大括号里面再加个大括号写入想要初始化的内容)。 静态内部类(嵌套类 Nested Clas...
Java

ReentrantReadWriteLock 看下它的类图 可以看到ReentrantReadWriteLock实现了ReadWriteLock接口。ReadWriteLock就是读写锁的意思,那么问题来了,为什么要有个读写锁呢?为什么要把读锁和写锁分开呢?这里就是出于对性能的考虑了,多个线程之间,可以同时读,但是不可以同时写或者一个读一个写,所以分开之后,读锁和写锁各司其职,可以提高效...
Java

AbstractQueuedSynchronizer 简写AQS, 队列同步器,是用来构建锁或者其他同步组件的基础框架,Lock接口的实现,如ReentrantLock等都有它的身影,都是通过它来实现线程同步的。从名字可以看出,首先它是个同步器,其次它里面还有个队列。 AQS使用了模板方法模式,这意味着AQS类里面大体有两种方法:需要被子类重写的涉及到具体细节的方法和模板方法,而模板方法...
Java

Lock是JUC包中的一个接口,是在synchronized关键字之后出现的,用来提供锁的功能,本文主要讨论Lock接口以及其实现类,以及为什么有了synchronized关键字了还要有Lock. synchronized作为内嵌的Java关键字,其可以隐式地获取和释放锁,它简化了同步的管理,同时也固化了锁的获取和释放,缺少灵活性。 在Java SE 5 之后,新增了Lock接口(以及相...
Java

相比于http的明问传输,易被篡改的特点,提出了https。 https利用了对称加密和非对称加密,引入了第三方机构CA,证书权威机构 协议上讲它在应用层下面加了个SSL/TLS层。 首先服务端会向第三方机构申请证书,如何申请呢?服务端告诉认证中心自己的个人身份信息以及公钥,认证中心经过核实后发给服务端一个证书。证书包含了哪些内容呢? 证书颁发机构名称 证书本身的数字签名(先hash再用...