大顶堆排序
大顶堆排序的步骤: 1、看明白Java实现大顶堆和小顶堆 2、在“//堆积排序”过程中,将堆顶的最大值和最后节点交换 3、调用ad_heap方法,
大顶堆排序的步骤: 1、看明白Java实现大顶堆和小顶堆 2、在“//堆积排序”过程中,将堆顶的最大值和最后节点交换 3、调用ad_heap方法,
算法复杂度分析
插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法
归并 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型
快速排序解释 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟
测试环境中突然发生这种错误 运行内存发生了溢出 Tomcat下catalina.sh下配置的JAVA_OPTS定义了运行的相关内存等设置 JAVA_OPTS="-Xms400m -Xmx400m -Xss1024K -XX:PermSize=64m
@transient 就是在给某个javabean上需要添加个属性,但是这个属性你又不希望给存到数据库中去,仅仅是做个临时变量,用一下。不修改已经存在数据库的数
概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 Spring Framework对事务管理提供了一致的抽象,其特点
注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们
String是最常用的类没有之一,现在开始看一些String的源码。 先看String的hashCode实现。 /** * Returns a hash code for this string. The hash code for a * {@code
jdk8新方法forEach更好的遍历map数组进行操作了。 现在先看看以前的遍历写法: 以前总结的: String key = null; String value = null; for(Map.Entry<String,String> entry:map.entrySet()){ key = entry.getKey(); value = entry.getValue(); System.out.println("key;"+ key+",value:"+value); } for(String key:
hashmap里面的这个merge方法,融合的意思,将新的value和旧的value进行融合。 @Override public V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction) { if (value == null) throw
这个和之前的两个方法相同。 @Override public V compute(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) { if (remappingFunction == null) throw new NullPointerException(); int hash = hash(key); Node<K,V>[] tab; Node<K,V> first; int n, i; int binCount = 0; TreeNode<K,V> t = null; Node<K,V> old = null; if (size > threshold || (tab = table) == null ||
这个方法和computeIfAbsent这个都是Java8的新的内容,都是可以在添加map的时候添加一个方法来对key进行操作存储value
这个是Java8里面新增的功能 代码: public V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) { if (mappingFunction == null) throw new NullPointerException(); int hash = hash(key); Node<K,V>[] tab; Node<K,V> first; int n, i; int binCount = 0; TreeNode<K,V> t = null; Node<K,V> old = null; if (size > threshold || (tab = table) == null
HashMap#put() /** * Associates the specified value with the specified key in this map. * If the map previously contained a mapping for the key, the old * value is replaced. * * @param key key with which the specified value is to be associated * @param value value to be associated with the specified key * @return the previous value associated with <tt>key</tt>, or * <tt>null</tt> if there was
HashMap#resize() 在HashMap源码(2)最后有相关源码: 源码的注释翻译为: 初始化或者翻倍表大小。如果表为null,则根据存放在threshold变量中的
HashMap#hash() 为什么要有HashMap的hash()方法,难道不能直接使用KV中K原有的hash值吗?在HashMap的put、get操作时为什么不能直
HashMap初始化 初始化的几种情况: /** * Constructs an empty <tt>HashMap</tt> with the specified initial * capacity and load factor. * * @param initialCapacity the initial capacity * @param loadFactor the load factor * @throws IllegalArgumentException if the initial capacity is negative * or the load factor is nonpositive */ public HashMap(int initialCapacity, float loadFactor) {
常量定义 1.默认容量 /** * The default initial capacity - MUST be a power of two. */ static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 默认初始化的容量是16,必须是2的幂。 2.最大容量 /** * The maximum capacity, used if a higher value
清空表数据:truncate Table tablename 查重 查找表中多余的重复记录,重复记录时根据单个字段来判断: SELECT * FROM RADA_CHN_DOR_L2_QC_F_TAB WHERE V_FILE_NAME IN (SELECT V_FILE_NAME FROM RADA_CHN_DOR_L2_QC_F_TAB GROUP BY V_FILE_NAME HAVING COUNT(V_FILE_NAME)>1) 删除表中多余的重复
统计某文件夹下文件个数 ls -l |grep “^-”|wc -l 统计某文件夹下目录的个数 ls -l |grep “^-d”|wc -l 统计文件夹下文件的个数,包括子文件夹下的 ls -lR|grep “^-”|wc -l ls -lR 长列表输出该目录下文件
现在聊LinkedList的peek操作,这个操作都是进行输出参数,不会删除相关Node的。 /** * Retrieves, but does not remove, the first element of this list, * or returns {@code null} if this list is empty. *
在使用List的 时候经常是ArrayList和LinkedList他们两个各有千秋,根据自己的业务使用情况来使用,现在咱们看看LinkedL
现在接着说ArrayList的另外一个常用方法remove(). remove同样也是存在两个方法 1. public E remove(int index) { rangeCheck(index); modCount++; E oldValue = elementData(index); int numMoved = size - index - 1; if
volatile是共享变量“可见性”关键字,当该变量在一处更改后,在其他线程里读到的是这个修改后的值。它是轻量级的synchronized,
ArrayList继承了AbstractList并实现了List接口。 三种初始化的方法: 第一种:规定List长度的参数 public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) throw new
Java中的final关键字非常重要,它可以应用于类、方法以及变量。将变量,方法和类声明为final代表了什么?使用final的好处是什么?
transient的作用和使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为
前两篇写了add和remove相关的源码,现在剩下的是零散的一些和Itr、SubList、ListItr几个相关的代码,这些应用次数也多但是
静态导包就是Java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性。 一般我们导入一个类都用 import co
如果一个类成员被声明为static,它就能够在类的任何对象创建之前被访问,而不必引用任何对象。static 成员的最常见的例子是main( ) 。
static{}静态块会在类被加载的时候执行一次,一般用来初始化静态变量和调用静态方法。 1、static{}语句块执行的时机,类被加载的准确
问题描述: 是Git管理代码,从git服务器上获取Contacts模块的代码: git clone your-git-server 提示:warning: remote HEAD refers to nonexistent ref, unable to checkout. 并且Contact
Zookeeper的通信架构 在Zookeeper整个系统中,有3中角色的服务,client、Follower、leader。其中client
HashMap和HashTable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主
原理 mysql主(称master)从(称slave)复制的原理: 1、 master将数据改变记录到二进制日志(binary log)中,也即是配
Redis Sentinel是一个分布式系统,你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocol
HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类
Zookeeper概述 Zookeeper是一个工具,可以实现集群中的分布式协调服务。 所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传
一、HBASE概述 HBase是一个分布式的、面向列的开源数据库。HBase不同于一般关系数据库,它是一个适合于非结构化数据存储的数据库。另一
一、 Hadoop 特点 1、支持超大文件 一般来说,HDFS存储的文件可以支持TB和PB级别的数据。 2、检测和快速应对硬件故障 在集群环境中,硬件故障是常见性
1、hadoop简单介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设