Wesley13 Wesley13
4年前
java集合系列之HashMap源码
java集合系列之HashMap源码HashMap的源码可真不好消化!!!首先简单介绍一下HashMap集合的特点。HashMap存放键值对,键值对封装在Node(代码如下,比较简单,不再介绍)节点中,Node节点实现了Map.Entry。存放的键值对的键不可重复。jdk1.8后,HashMap底层采用的是数组加链表、红黑树的数据结构,因此实现起
Wesley13 Wesley13
4年前
java堆排序(大根堆)
实现堆排序的算法思路是先创建堆,也就是从叶子节点起对每一层的孩子节点及其对应位置的父亲节点进行比较,较大的孩子节点替换较小的父亲节点,一级一级比较替换,就创建出了大根堆,小根堆反之。创建好大根堆以后,我们,将整棵树的根节点与最后最后一个节点替换位置,然后去除最后一个节点,在创建一个新的大根堆,以此类推,完成排序。代码如下:/\\\<p堆排
Wesley13 Wesley13
4年前
java Api 读取HDFS文件内容
packagedao;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.;importjava.io.;publicclassHDFSApi{/
Wesley13 Wesley13
4年前
java 模拟发送post请求测试
方法一:HttpClientpublicvoidpostTest(HttpServletRequestrequest,Integertype,Stringphone,Stringpasswd,Stringschoolld,Stringagent){Stringurl"xxxxxxxxx";//发
Wesley13 Wesley13
4年前
java8 stream 用法收集
publicclassTest1{publicstaticvoidmain(Stringargs){List<IntegernumbersnewArrayList<(Arrays.asList(1,2,3,4,5,6,7,8,9));
Wesley13 Wesley13
4年前
Java多线程之Semaphore用法
本文目录:Semaphore基本概念Semaphore使用案例:3个停车位,6辆车去抢,走一辆,抢一个停车位。1.Semaphore基本概念在信号量上我们定义两种操作:1.信号量主要用于两个目的,一个是用于多个共享资源的互斥使用,另一个用于并发线程数的控制。2.acquire(获取)
Wesley13 Wesley13
4年前
Java并发源码之ReentrantLock
ReentrantLock介绍ReentrantLock是一个可重入的互斥锁,与使用synchronized方法和语句访问的隐式监视锁具有相同的基本行为和语义,但具有扩展功能。ReentrantLock属于最后一个成功加锁并且还没有释放锁的线程。当一个线程请求lock时,如果锁不属于任何线程,将立马得到这个锁;如果锁已经被
Wesley13 Wesley13
4年前
Java并发 wait()、notify()和notifyAll()
一个线程修改一个对象的值,而另一个线程则感知到了变化,然后进行相应的操作,这就是wait()、notify()和notifyAll()方法的本质。具体体现到方法上则是这样的:一个线程A调用了对象obj的wait方法进入到等待状态,而另一个线程调用了对象obj的notify()或者notifyAll()方法,线程A收到通知后从对象obj的wait方法返回,继续
Wesley13 Wesley13
4年前
Java基础之字符串
5.1字符字符指的用单引号括起来的单个字母。java中,char表示字符的数据类型。一个字符在内存中占16位大小的空间(2个字节)。5.2字符串字符串或串是由零个或多个字符组成的有限序列,它是编程语言表示文本的数据类型。串的两个最基本的存储方式是顺序存储方式和链接存储方式5.2.1字符串声明与赋值String是字符串变量的类型
Wesley13 Wesley13
4年前
Java设计模式之命令模式
介绍命令模式是一种行为型设计模式。在命令模式中,所有的请求都会被包装成为一个对象。参考了一下其他关于命令模式的文章,其中有谈到说是可以用不同的请求对客户进行参数化。对这句话的理解是,因为将请求封装成为对象,所以客户的所有操作,其实就是多个命令类的对象而已,即参数化了。命令模式的最大的特点就是将请求的调用者与请求的最终执行者进行了解