`
文章列表
以下所有均摘自维基百科。   红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在Leo J. Guibas和Robert Sedgewick于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况
问题引入:今天在使用ArrayList的add(index, element)方法向list中插入数据的时候出现数组越界异常,感觉很奇怪,list不是支持动态扩展的吗?为什么会出现越界的情况呢?   有了问题,当然要首先查看JDK源码咯:   /** * Inserts the specified element at the specified position in this * list. Shifts the element currently at that position (if any) and * any subsequent el ...
今天遇到一个问题:子类重写父类中的方法之后,后期虚拟机是如何确定要执行的方法? 要解决上面的那个问题,我们先来看看Java中的方法调用。方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即要执行哪一个方法),他还不会设计方法内部的具体运行过程。 所有方法调用中的目标方法在Class文件里面都是一个常量池中的符号引用,在类加载的解析阶段,会将其中一部分的符号引用转换为直接引用。这种解析能够成立的前提是:方法在程序可以运行之前就有一个可确定的调用版本,并且这个方法的调用版本在运行期是不可改变的。换句话说,调用目标在程序代码写好,编译器进行 编译时就必须确定下 ...
首先说明一下结果:不可以,至少Java语言规范上说的是不可以。 今天遇到一个问题:向上转型是安全的,不需要进行强制类型转换。原因当然是子类是父类的超集,所以父类中的东西(成员变量和成员方法在子类中都有) /**  * @description : 测试继承 <br>  * @author Administrator <br>  */ class SuperClass { public void show() {
上一篇博文(http://woyixiaorenne.iteye.com/blog/2305280)说到JDK1.6和1.7的String.substring()的实现出现了变化,那么究竟为什么会变化呢? 注:本文大部分内容是参考或者复制作者的内容,附上原文地址http://www.importnew.com/7418.html 1、当substring()被调用的时候,内部发生什么事? 你或许会认为由于x是不可变的对象,当x被x.substring(1,3)返回的结果赋值后,它将指向一个全新的字符串如下图:  然而,这个图并不完全正确,或者说并没有完全表示出java 堆中真正发生的事 ...
  今天有时间,看了下String类中的substring()方法,现简要分析如下: /** * Returns a new string that is a substring of this string. The substring begins * with the character at the specified index and extends to the end of this string. * 上面的这段话的意思是,它会返回一个新的字符串,这个新的字符串是原来字符串的一部分, * 从某个下标的字母开始,一直到这个字符串的结束。 * 例如: ...
1、继承的类以及实现的接口: 继承自:AbstractList 实现了:List,RandomAccess,Cloneable,java.io.Serializable; 定义的成员变量: transient Object[] elementData; 是一个数组缓冲区,从下面可以看到所有的操作似乎都与之有关。(transient 表示其不可序列化) size: The size of the ArrayList (the number of elements it contains). 我们可以在创建ArrayList的时候指定其大小,相应的其实是实例化了前面提到的对象Ob ...

20160426

作为一个刚入门的新程序员,就要有遇到一切问题并想办法解决的决心和毅力,而我现在却还不具有这样的品质,表现之一就是害怕遇到问题,不敢创新,经常怀疑自己是否适合做程序员,遇到问题不能够冷静的面对和解决问题,还有一点就是缺乏行动力。突然想起了今天早上看到的一句话:如果不行动,懒惰就会生根发芽,时间越长,他的根会越扎越深,到时候就无法挽回。所以,自信点地迎难而上吧。既然选择了这条路,便应只顾风雨兼程
今天同事问我一个SQL,使用的是exists子查询,因为对SQL不是很熟,所以就趁机查了下资料,了解一下SQL中的exists和not exists的用法。 注:本文基本上是转自别人的博客,下面附上所转原文的链接: http://www.cnblogs.com/netserver/archive/2008/12/25/1362615.html 下面是转载加个人总结:   1. 引言: 比如在Northwind数据库中有一个查询为 SELECT c.CustomerId, CompanyName FROM Customers c WHERE EXISTS( SELECT Orde ...
       对于表达式A && B || C && D, 一般我们认为可能有两种执行顺序(A && B)|| (C && D), 即先执行A && B 的判断,然后执行C && D的判断,最后再执行||的判断(当然这是没有考虑Java中"短路"的一般执行顺序(后面结果的验证就是根据"短路"的特性)) 另外一种可能就是((A && B) || C) && D, 即先执行A && B的判断,将结果作为一个参数再 ...
最近在写接口的时候用到了List,但是发现每次输出的结果都是同一条数据,而且是最后一题。看了下查询出来的结果,都是正确的,经过一步步调试发现在将查出来的结果放到List的时候出了问题。 File fileinfo=new File(); Array ...
public class Contenation { public static void main(String[] args) { String str = "Happy"; String str2 = "I" + str + "now" + 21; System.out.println(str2); } } 使用javap -c Contenation反编译得到的JVM字节码: Compiled from "Contenation.java" public cla ...
/* * @(#)ListIterator.java 1.23 03/12/19 * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.util; /** * * An iterator for lists that allows the programmer * to traverse the list in e ...
/** * Returns a fixed-size list backed by the specified array. (Changes to * the returned list "write through" to the array.) This method acts * as bridge between array-based and collection-based APIs, in * combination with <tt>Collection.toArray</tt> ...
     在今天之前我一直以为不能使用eclipse输入命令行参数,所以我都是使用dos命令来输入命令行参数,但是后来才发现原来eclipse也是可以的,现在分享一下: 1、右击工程,Run As -> Run Configurations 2、在Arguments -> Program arguments处输入参数即可。  注:以前使用的是dos命令窗口   
Global site tag (gtag.js) - Google Analytics