1.什么是桥接方法 桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法. 判断方法 我们可以通过 Method.isBridge() 来判断一个方法是不是桥接方法. 桥接方法的 access_flag 在字节码中,桥接方法会被标记 ACC_BRIDGE 和 ACC_SYNTHETIC ACC_BRIDGE 用来说明 桥接方法是由 Java 编译器 生成的 ACC_SYNCTHETIC 用来表示 该类成员没有出现在源…
Java基础关于Map(字典)的方法使用 java中一般用map与hashmap来创建一个key-value对象 使用前提是要导入方法包: import java.util.HashMap: import java.util.Map;格式: Map 数据名称 = new HashMap(); key(键)-value(值)类似python里面的字典key-value是[一对一]对应关系(简单的打比方例如生活中的丈夫与妻子的关系)就例如看到key就会想到说这是value的老公,你看到value就会…
在上一篇博文中:http://www.cnblogs.com/guangshan/p/4660564.html 源码中有些地方用到了 this.bridgedMethod = BridgeMethodResolver.findBridgedMethod(method); 那么bridgedMethod是什么呢? 经查找发现,这个叫做桥接方法:http://freish.iteye.com/blog/1158008 java编译器采用bridge方法来兼容本该使用泛型的地方使用了非泛型的用法的问题…
导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写.两种方法,一种是丢手绢法,另外一种,是迷路法. 这两种方法的基本思想:假设有环(顿时想到了三个数中找最大的,假设一个最大值有木有,更有木有想到一个排序算法呢?) 一.丢手绢法(指针追赶法) 其实,这种方法时有个很高大上的名称的,叫做指针追赶法.不过,我刚开始想了半天没想明白,后来等我想明白了之后,哇塞,其实思想就是我小时候玩得丢手绢的游戏. 趣说指针追赶法…
方法 (1)方法的定义:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; } 返回值类型:就是功能结果的数据类型 方法名:就是起了一个名字,方便我们调用该方法. 参数类型:就是参数的数据类型 参数名:就是变量(一般不超过5个) 参数分类: 实参:实际参与运算的数据 形参:方法上定义的,用于接收实际参数的变量 方法体语句:…
不得不说,有很多java初学者写java实体类的时候,并没有真正理解重写toString() 方法,可能是口头知道也可能是跟风随带添加toString() 方法,并没有真正理解其意义,如果真要被问起来未必有十足把握回答上 ~中枪了咩~,这篇文章旨在帮助初学者正确解读实体类重写toString() 方法. 解读一:java默认的toString方法来自Object 类 在Java中每个类都直接或者间接继承Object 类,toString() 方法同样来自于Object 类. 其实这不难理解,在没…
方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 修饰符 返回值类型 方法名(参数类型 参数名){ -- 方法体 -- return 返回值: } 方法包含一个方法头和一个方法体.下面是一个方法的所有部分: 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法.定义了该方法的访问类型,如:static.public.final(常量标志) 返回值类型:方法可能会返回值.returnValueType是方法返回值的数据类型.有…
hashCode()方法基本实现 hashCode方法是Java的Object类所定义的几个基本方法之一.我们可以深入到Object类的源码中去查看: public native int hashCode(); 其中native关键字表明这个函数是由非java语言来实现的,这个函数的功能就是返回这个对象在内存中的地址. hashCode()方法的应用 大部分类都会重新覆写一下hashCode方法,原因有很多.那么这个方法主要被应用在什么场景下呢?一个非常重要的应用就是当我们处理散列集合类的时候,…
要想对List进行排序,可以让实体对象实现Comparable接口,重写compareTo方法即可实现按某一属性排序,但是这种写法很单一,只能按照固定的一个属性排序,没变法变化.通过下面这种方法,可以动态的指定List按照某一个属性进行排序,例子很简单,看代码就明白了. import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; publ…
最近回顾了下HashMap的源码(JDK1.7),当读到putAll方法时,发现了之前写的TODO标记,当时由于时间匆忙没来得及深究,现在回顾到了就再仔细思考了下 @Override public void putAll(Map<? extends K, ? extends V> m) { int numKeysToBeAdded = m.size(); if (numKeysToBeAdded == 0) return; // TODO 这里的numKeysToBeAdded是不是应该要th…