疯狂java学习笔记
是是是22222222
少时诵诗书所所所所所所所所所所所所所所所所所所所所所所所所所所所所
展开
-
io表
转载 2014-05-03 16:26:04 · 3460 阅读 · 0 评论 -
不能更改map 中key的属性
根据前面两篇的介绍,我们知道了HashMap原创 2014-04-17 23:22:39 · 3358 阅读 · 0 评论 -
关于异常的一些理解
首先看下面的代码原创 2014-04-21 15:28:38 · 399 阅读 · 0 评论 -
集合中判断相等的标准
1. 在HashSet中的元素、 HashMap Hashtable中的key判断相等的标准是 hashcode和equals。2. 在TreeSet和TreeMap的key中判断相等的标准是compareTo返回true。3. 其他大多数时候判断的标准是equals返回true。map的key和set中应该存放不可变对象,否则会出现无法定位或者出现与约定不符的原创 2014-04-21 15:31:37 · 565 阅读 · 0 评论 -
正则表达式
正则表达式中的三种字符在字符串中的表示:1. 普通字符 跟普通字符串中无异2. 特殊字符 * ? | () [] {}a 表示本来的含义 在字符串中要写成”\\?” 注意是两个转义符, 第一个转义是在字符串中表示一个反斜杠\ ,然后这个反斜杠和特殊字符一起表示正则表达式中它的本来含义b 表示特殊含义 直接写就行3. 预定义字符(不包括. . 可以看作特殊字符)原创 2014-04-21 16:59:15 · 332 阅读 · 0 评论 -
强制类型转换
强制类型转换:首先要明白为什么会需要向下强制类型转换:因为根据多态的特征,父类引用指向一个子类的对象,仅仅能够调用父类中定义的方法,如果希望使用子类的方法,就需要强制为子类的引用。转换的本质是 A a = (A)b;子类的引用转换成父类(向上):无意义的,因为子类本来就是父类,可以直接把一个子类的引用赋值给父类。父类转换为子类(向下):需要满足两个条件:1. 两原创 2014-04-21 17:02:13 · 403 阅读 · 0 评论 -
内部类
非静态内部类中保存着一个外部类的引用A.this,为什么?因为这个内部类要使用的话,一定要在外部类的方法中首先定义一个内部类的对象,然后再去调用内部类的方法,即在这个过程中产生了两个对象,一个是外部对象,一个是内部类对象,其实这就对应了保存在内部类中的两个引用 A.this和 this原创 2014-04-21 17:01:01 · 423 阅读 · 0 评论 -
重写equals方法的同时为什么要重写hashcode方法
首先我们来分析一下HashMap的add方法的源码原创 2014-04-17 20:06:17 · 386 阅读 · 0 评论 -
instaceof
a instaceof B不要管a的编译时类型,要看a的运行时类型,只要a的运行时类型是B的类型或者是B的子类型就返回true。 它的最常出现的情形是在向下强制类型转换时做判断:Object o = newString(“hello”);String s = null;if(o instanceofString){ //向下强制转换s = (Str原创 2014-04-21 17:03:50 · 468 阅读 · 0 评论 -
sql总结
原创 2014-04-24 17:01:02 · 271 阅读 · 0 评论 -
数据库隔离级别
数据库隔离级别转载 2014-04-26 01:57:15 · 512 阅读 · 0 评论 -
DBCP
#连接设置driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/myusername=rootpassword=root#initialSize=10#最大连接数量maxActive=50#maxIdle=20#minIdle=5#maxWait=60000#JDBC驱动原创 2014-04-26 03:51:31 · 355 阅读 · 0 评论 -
关于TreeSet的元素改变field后的删除
李刚书中P290 关于TreeSet删除情况,自己实验的结果与书中不一致,说明如下:TreeSet中的可变对象改变了属性后,如果还能够保证正确的升序,那么依然可以正常删除,如果改变了这个顺序,那么就无法删除了;另外,如果改变了的属性和原来存在的某个位置的元素相等,如果这两个元素不是相邻的,那么改变了的那个一定打乱了正确的顺序,那么改变了的那个就删不掉,但是未改变的那个可以被删掉,看程序吧。原创 2014-04-21 11:06:26 · 1234 阅读 · 0 评论 -
set Map中存放不可变类
HashSet HashMap的key TreeSet TreeMap的key中应该存放不可变对象,以保证代码的健壮性,不可变类:1. field为private final的2. 在构造器中初始化field3. 仅有getter,没有setter4. 通常情况下需要重写equals和hashcode方法。原创 2014-04-21 10:57:22 · 297 阅读 · 0 评论 -
泛型与数组
由于这种数组设计的缺陷,导致了在数组中不能够定义含有泛型的数组对象。例如newArrayList[10] 是不合法的。归根到底的原因还是由于在数组中设计的缺陷造成的。看下面的代码: //下面这行是错误的。 List[] lsa = new ArrayList[10]; Object[] os = lsa; List li = new ArrayList();原创 2014-04-21 11:03:18 · 1037 阅读 · 0 评论 -
数组不能强制类型转换的情况
一个运行时类型为父类的数组,如果其存放的都是子类的元素,也不能够将其转换为子类的数组。例如:Object[] os = new Object[]{"hello","world"};String[] ss =(String[])os;其实这和普通的向下强转没什么不同,例如一个父类引用的运行时类型就是父类,当然不能向下强转为子类,之所以我们认为其能强转,是被数组中存放的元素的类型迷惑了原创 2014-05-03 16:07:06 · 1292 阅读 · 1 评论 -
jdbc总结
jdbc中sql的占位符出现的位置:where子句和values()中,select后和from后不行,要记住?一定是可变的,在查询同一个表中式可变的。原创 2014-05-03 16:26:47 · 438 阅读 · 0 评论 -
nio.2 nio 和传统io
java nio.2 主要提供了Paths和Files这两个队文件的访问类。Files提供了操作文件的便捷方式:1. 复制文件 copy原创 2014-05-03 16:16:04 · 508 阅读 · 0 评论 -
File
相对路径和绝对路径所对应的File对象时不相等的(equals方法重写了)File file1 = newFile("d:/a.txt");File file2 = newFile("b.txt"); System.out.println(file1.getAbsoluteFile().equals(file1));//绝对路径trueSystem.out.print原创 2014-05-03 16:17:05 · 318 阅读 · 0 评论 -
Aop(面向切面编程)代理
像上面这样相同代码块在多个地方出现很显然是不可取的,可以通过提取方法来改进:原创 2014-05-03 16:04:56 · 424 阅读 · 0 评论 -
序列化注意事项
1. 在反序列化的时候必须得有对应的class文件,否则抛出ClassNotFoundExeception。2. 序列化对象的直接或者间接父类要么是能够序列化的,要么就得有无参的构造器,否则无法完成反序列化,抛出InvalidClassException,对与无法序列化但是有无参构造器的情况,父类中的filed无法写入序列化文件。3. 对于一个文件序列化多个对象而言,反序列化时原创 2014-05-03 16:24:54 · 599 阅读 · 0 评论 -
TreeMap的key和TreeSet理解
首先TreeMap底层一个NavigableMap原创 2014-04-18 15:50:47 · 712 阅读 · 0 评论 -
泛型
类(接口)中的泛型:class A,V extends Number>方法中的泛型public Map) test(T t, List list, Vv)泛型通配符?类中的泛型可以在定义对象时传入从而确定,方法中的泛型应该通过传入的实参来让系统能够推断出来,通配符不应该出现在上面的红色部分中。方法泛型的使用场景:方法泛型能够反映出形参类型之间的依赖关系或者形参类型和返原创 2014-04-21 10:59:12 · 382 阅读 · 0 评论 -
遍历collection的注意事项
1.无论是使用iterator还是增强的for原创 2014-04-18 00:04:32 · 457 阅读 · 0 评论 -
collection的remove方法对HashSet ArrayList的不同
ArrayList底层是一个数组,每次加入就是依次向后加入,当删除的时候,比较的是传入的参数是否equals保存在ArrayList中的某个元素,与Hashcode无关,所以一个类如果仅仅重写了equals方法而没有重写hashcode方法,这要两个对象equals返回true,那么就可以成功删除。HashSet底层是HashMap,根据前面的介绍必须使用hashcode和equals来查原创 2014-04-17 21:35:32 · 703 阅读 · 0 评论 -
List相关
在List中判断两个元素相等的依据是equals返回true,在indexof和remove方法中都有所体现。源代码:if(o.equals(elementData[i])) return i; AbstractList抽象类实现了List接口,但是其执行add remove操作会抛出UnsupportedOperationException,实现的源代码为:原创 2014-04-21 10:53:24 · 309 阅读 · 0 评论 -
jdbc总结
原创 2014-04-25 21:53:29 · 293 阅读 · 0 评论