![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
大兔齐齐
现担任苏宁易购数据总监;曾就职于阿里巴巴;对内容生成,算法变现,推荐营销等很感兴趣
展开
-
HashMap实现原理
1.HashMap的数据结构 数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法—— 拉链法,我们可以理解为“链表的数组” ,如图: 从上图我们可以发现哈希表是由数组原创 2015-05-13 15:19:40 · 520 阅读 · 0 评论 -
《Java编程思想》学习笔记10——文件和目录常用操作
1.文件目录的List操作:Java中,File类其实代表文件的路径,它既可以代表一个特定文件的文件,也可以代表一个包含多个文件的目录名称。如果File代表目录,可以使用List列出目录中文件。[java] view plaincopyimport java.util.regex.*; import java.io.*; im转载 2015-06-03 16:16:01 · 1696 阅读 · 0 评论 -
《Java编程思想》学习笔记16——枚举
1.在枚举中添加方法:Java中的枚举是一种特殊的类,不但可以添加字段,构造方法,普通方法,甚至可以添加main()方法,例子如下:[java] view plaincopypublic enum Test{ //调用枚举构造方法创建枚举对象 WEST(“Go west”), NORTH(“Go north”),转载 2015-06-03 16:24:10 · 1055 阅读 · 0 评论 -
《Java编程思想》学习笔记11——Java I/O
Java中使用流来处理程序的输入和输出操作,流是一个抽象的概念,封装了程序数据于输入输出设备交换的底层细节。JavaIO中又将流分为字节流和字符流,字节流主要用于处理诸如图像,音频视频等二进制格式数据,而字符流主要用于处理文本字符等类型的输入输出。1.字节输入流InputStream输入流InputStream负责从各种数据/文件源产生输入,输入源包括:数组,字符串,文件,管道,一转载 2015-06-03 16:21:42 · 924 阅读 · 0 评论 -
《Java编程思想》学习笔记9——集合容器高级
1.Arrays.asList()方法产生的List是一个固定长度的数组,只支持不改变长度的操作,任何试图改变其底层数据结构长度的操作(如,增加,删除等操作)都会抛出UnsupportedOperationException异常。为了使Arrays.asList()方法产生的List集合长度可变,可以将其作为集合容器的构造方法参数,如:Set set = new HashSet(A转载 2015-06-03 16:13:57 · 842 阅读 · 0 评论 -
《Java编程思想》学习笔记7——泛型编程基础
一般的类和方法都是针对特定数据类型的,当写一个对多种数据类型都适用的类和方法时就需要使用泛型编程,java的泛型编程类似于C++中的模板,即一种参数化类型的编程方法,具体地说就是将和数据类型相关的信息抽象出来,主要提供通用的实现和逻辑,和数据类型相关的信息由使用时参数决定。1.泛型类/接口:(1).泛型接口:如一个提供产生指定类的接口:[java] view转载 2015-06-03 16:12:21 · 698 阅读 · 0 评论 -
《Java编程思想》学习笔记6——Java动态代理
代理是一种常用的程序设计模式,如同网络代理一样,代理是介于调用者和真正调用目标对象之间的中间对象,代理在调用真正目标对象时提供一些额外或者不同的操作,真正的对目标对象的操作还是通过代理调用目标对象来完成。 简单的代理例子如下:[java] view plaincopy//接口 interface Interface{转载 2015-06-03 16:12:58 · 881 阅读 · 0 评论 -
《Java编程思想》学习笔记5——正则表达式量词匹配
Java正则表达式有3中量词匹配模式:1.贪婪量词:先看整个字符串是否匹配,如果没有发现匹配,则去掉最后字符串中的最后一个字符,并再次尝试,如果还是没有发现匹配,那么,再次去掉最后一个字符串的最后一个字符,整个匹配过程会一直重复直到发现一个匹配或者字符串不剩任何字符。简单量词都是贪婪量词。贪婪量词匹配时,首先将整个字符串作为匹配的对象,然后逐步从后向前移除不匹配的字符,尽可转载 2015-06-03 16:10:24 · 945 阅读 · 0 评论 -
《Java编程思想》学习笔记15——对象序列化
Java的对象序列化是一个轻量级的持久化过程,序列化时,可以将java对象以字节序列形式写入硬盘、数据库或者通过网络传输到另一个JVM等等,反序列化是读取序列化的文件,将其在JVM中还原为java对象的过程。1.简单的序列化和反序列化:最简单的序列化是对象实现Serializable序列化接口,这个接口是一个标记接口,不需要实现任何方法。下面的小例子简单展示java对象序列转载 2015-06-03 16:24:50 · 830 阅读 · 0 评论 -
《Java编程思想》学习笔记12——Java new I/O(一)
为了提高Java I/O的速度和效率,从JDK1.4开始引入了java.nio.*包,即java new I/O(NIO)。 事实上,为了利用java nio的速度和效率优势,原来的java I/O包中相关的类已经使用java nio重新实现,因此在编程中即使没有显式地使用java nio的代码,使用传统java I/O还是利用了nio的速度和效率优势。Java nio的速度提高主要在:转载 2015-06-03 16:22:22 · 988 阅读 · 0 评论 -
《Java编程思想》学习笔记8——泛型编程高级
1.泛型边界:Java泛型编程时,编译器忽略泛型参数的具体类型,认为使用泛型的类、方法对Object都适用,这在泛型编程中称为类型信息檫除。例如:[java] view plaincopyclass GenericType{ public static void main(String[] args){转载 2015-06-03 16:14:31 · 817 阅读 · 0 评论 -
《Java编程思想》学习笔记1——面向对象和JVM基础
1.java中的4种访问制权限:(1).public:最大访问控制权限,对所有的类都可见。(2).protect:同一包可见,不在同一个包的所有子类也可见。(3).default:包访问权限,即同一个包中的类可以可见。默认不显式指定访问控制权限时就是default包访问控制权限。(4).private:最严格俄访问控制权限,仅该类本身可见,对外一切类都不可以访问(反转载 2015-06-02 20:33:59 · 961 阅读 · 0 评论 -
《Java编程思想》学习笔记2——对象初始化和面向对象特性
1.java类的初始化顺序:(1).在一个类中,初始化顺序由变量在类中的声明定义顺序决定,成员变量(非set方法和构造方法的初始化)的初始化发生在方法调用之前,包括构造方法。(2).静态变量在整个存储区只保留一份拷贝,本地变量不能使用静态关键字,基本类型的静态变量不需要初始化,它会根据类型获得初始化值,引用类型的静态变量默认初始化为null。静态变量的初始化发生在需要使用的转载 2015-06-02 20:34:01 · 731 阅读 · 0 评论 -
《Java编程思想》学习笔记3——内部类
1.java中,可以将一个类的定义放在另一个类的内部,这种叫做内部类。内部类允许编程人员将逻辑上相关的类组织在一起,并且控制内部类对其他类的可见性。2.在外部类的非静态方法中创建内部类的对象语法:外部类类名.内部类类名 对象名 = 外部类对象.new 内部类类名();如:[java] view plaincopypub转载 2015-06-02 20:35:38 · 745 阅读 · 0 评论 -
《Java编程思想》学习笔记4——集合容器
1.集合中添加另一个集合的方法:(1).Collection.addAll(被添加的Collection对象)方法:如:list1.addAll(list2);(2).Collections.addAll(添加到的目标Collection对象,可变参数的集合或者对象)方法:如:Collections.addAll(list1, new Object1(), new转载 2015-06-02 20:38:15 · 763 阅读 · 0 评论 -
《Java编程思想》学习笔记14——I/O高级
1.内存映射文件:内存映射文件允许把比内存大的文件读入内存中创建和修改,使用内存映射文件,可以像使用内存中数组一样在内存中访问整个文件,例子如下:[java] view plaincopyimport java.nio.*; import java.nio.channels.*; import java.io.*;转载 2015-06-03 16:23:51 · 1071 阅读 · 0 评论