JAVA学习笔记

服务端

  • REST URL
  • SOAP xml
基础 JDK JAVA开发工具包
  • 开发人员使用
JRE 运行环境
  • 部署人员使用
JSP
  • JAVA SERVER PAGE
  • SERVLET(中间件容器)
  • JSP等于一个SERVLET
面向切面编程
  • 切开主业务和子业务的关系
整数类型
  • 十进制0~9不能以0开头
  • 十六进制以0X开头
  • 八进制以0开头
  • float 32位
  • double 64位
  • byte short char 不能相互转换
  • 右移

    · {
    int i=32;
    int j=i>>32;
    //结果是32
    }
工具类 StringBuffer
  • StringBuffer类用于内容可以改变的字符串
  • 可以使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象
StringBuffer对象的创建 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符
方法
  • int capacity( ) 返回当前容量
  • int length( ) 返回长度(字符数)
  • StringBuffer reverse( ) 将此字符序列用其反转形式取代
  • void setCharAt(int,char) 将给定索引处的字符设置为 ch
  • void delete(int begin,int end) 移除此序列的子字符串中的字符
  • char charAt(int) 返回此序列中指定索引处的 char 值
  • String toString( ) 将StringBuffer对象转换成相应的String
  • append(String str) 将指定的字符串追加到此字符序列
  • append(int num) 将 int 参数的字符串表示形式追加到此序列
  • append(Object o) 追加 Object 参数的字符串表示形式
  • insert(int index,String str) 将字符串插入此字符序列中
  • insert(int index,char ch) 将字符插入此字符序列中
  • insert(int index,Object o) 将 Object 参数的字符串表示形式插入此字符序列中
StringBuilder类
  • StringBuilder类是一个可变的字符序列。
  • JDK自从5.0版本后引入。
  • StringBuilder类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候 。
StringBuilder对象的创建 构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符
StringBuffer和StringBuilder的区别
  • Java中定义了String与StringBuffer两个类来封装对字符串的各种操作
  • String类与StringBuffer类都被放到了java.lang包中String类对象中的内容初始化不可以改变
  • StringBuffer类对象中的内容可以改变
  • StringBuffer和StringBuilder都是长度可变的字符串。
  • StringBuffer类是线程安全的;
  • StringBuilder类是线程不安全的。
  • StringBuffer在JDK1.0中就有,而StringBuilder是在JDK5.0后才出现的。
  • StringBuilder的一些方法实现要比StringBuffer快些。
Calendar类
  • 日历类
集合类 Collection
Collection接口
  • 一组称为元素的对象
  • 一个Collection中可以放不同类型的数据
  • 是Set接口和List接口的父类
  • 是否有特定的顺序以及是否允许重复,取决于它的实现
  • Set - 无序的集合;不允许重复HashSet
  • List - 有序的集合;允许重复ArrayList、LinkedList
Collection接口的常用方法
  • boolean add(Object) 集合中加入一个对象,成功时返回true
  • boolean addAll(Collection) 集合中加入另外一个集合对象
  • int size() 集合内容纳的元素数量
  • boolean isEmpty() 集合是否为空
  • boolean contains(Object) 集合内是否含有参数对象
  • Iterator iterator() 产生一个迭代器
  • Object[] toArray() 返回一个包含所有元素的对象数组
  • Object[] toArray(Object[]) 把所有元素放入对象数组中
  • boolean remove(Object) 从集合中删除对象
  • boolean removeAll(Collection) 清空指定集合
  • boolean containsAll(Collection) 判断集合内是否包含子集
  • boolean retainAll(Collection) 删除子集合不包含的元素
  • void clear() 清空集合
  • Object[] toArray(Object[]) 把所有元素放入对象数组中
Set接口
  • Collection的子接口
  • 用来包含一组 无序无重复 的对象
  • 无序 — 是指元素存入顺序和集合内存储的顺序不同
  • 无重复 — 两个对象e1和e2,如果e1.equals(e2)返回true,则认为e1和e2重复
  • Set有两种主要的集合实现类:
  • HashSet — HashSet的特性在于其内部对象的散列存取,即采用哈希技术
  • TreeSet — TreeSet存入的顺序跟存储的顺序不同,但是存储是按照排序存储的
List接口 示例 ListDemo.java
  • Collection的子接口
  • 用来包含一组 有序有重复 的对象
  • List中的元素都对应一个整数型的序号,记载其在容器中的位置,可以根据序号存取容器中的元素
  • List有两种主要的集合实现类:
    ArrayList
    LinkedList
  • 方法 含义
  • void add(int index,Object element) 在列表中的index位置,添加element元素
  • Object get(int index) 返回列表中指定位置的元素
  • int indexOf(Object o) 在list中查询元素的索引值,如不存在,返回-1。
  • int lastIndexOf(Object o) List中如果存在多个重复元素,indexOf()方法返回第一个匹配元素的index。lastIndexOf(o)是返回最后一个匹配元素的index.
  • ListIterator listIterator() 返回列表中元素的列表迭代器
  • Object remove(int index) 移除列表中指定位置的元素
  • Object set(int index,Object element) 用指定元素替换列表中指定位置的元素
ArrayList类
  • ArrayList是线性顺序存储的,是一种线性表
  • 它的特性和数组很接近,数组大小是不变的,而ArrayList的大小是可以动态改变的
LinkedList类
  • 是数据结构中链表的java实现
  • 相对于List来说,LinkedList最主要的功能方面的增强是可以在List的头部和尾部添加、删除、取得元素,直接提供了这些方法的实现。所以它可以非常方便的实现我们数据结构中的常见的Stack(栈)、queue(队列)等
LinkedList类的特有方法
  • void addFirst(Object o) 将给定元素插入此列表的开头
  • void addLast(Object o) 将给定元素追加到此列表的结尾
  • Object getFirst() 返回此列表的第一个元素
  • Object getLast() 返回此列表的最后一个元素
  • Object removeFirst() 移除并返回此列表的第一个元素
  • Object removeLast() 移除并返回此列表的最后一个元素
ArrayList与LinkedList的比较 存储结构
  • ArrayList是线性顺序存储
  • LinkedList对象间彼此串连起来的一个链表
操作性能
  • ArrayList适合随机查询的场合
  • LinkedList元素的插入和删除操作性高
  • 从功能上,LinkedList要多一些
Iterator接口
  • Iterator对象称作迭代器,用来方便的实现对容器内的元素进行遍历操作
  • 所有实现了Collection接口的集合类都有一个iterator( )方法,返回一个实现了Iterator接口的对象
  • Iterator对象实现了统一的一个用来遍历
    Collection中对象的方法
  • Iterator是为遍历而设计,能够从集合中取
    出元素和删除元素,但是没有添加元素的
    功能
  • Iterator的功能上比较简单,使用中,只
    能单向移动
方法
  • Object next() 返回游标右边的元素并将游标移动到下一个位置
  • boolean hasNext() 判断游标右边是否有元素
  • void remove() 删除游标左边的元素,在执行完next之后,该操作只能执行一次
示例 HashSet set = new HashSet();
for (int i = 1; i < 6; i++) {
set.add(new Integer(i));
}
【JAVA学习笔记】Iterator it = set.iterator();
while(it.hasNext()){
Integer j = (Integer)it.next();
System.out.println(j);
//it.remove();
//it.remove();
}
System.out.println(set);
Map接口
  • Map内存储的是键/值对这样以成对的对象组(可以把一组对象当成一个元素),通过“键”对象来查询“值”对象
  • Map是不同于Collection的另外一种集合接口
  • Map中,key值是唯一的(不能重复),而key对象是与value对象关联在一起的
Map接口有两个实现:
  • HashMap — key/value对是按照
    Hash算法存储的
  • TreeMap — key/value对是排序
    (按key排序)存储的
常用方法
  • Object put(Object key,Object value) 将指定的值与此映射中的指定键相关联
  • void putAll(Map t) 将映射t中所有映射关系复制到此映射中
  • Object get(Object key) 返回此映射中映射到指定键的值
  • Object remove(Object key) 若存在此键的映射关系,将其从映射中移除
  • boolean containsKey(Object key) 若此映射包含指定键的映射关系,返回 true
  • boolean containsValue(Object value) 若此映射为指定值映射一个或多个键,返回 true
  • int size() 返回此映射中的键-值映射对数
  • void clear() 从此映射中移除所有映射关系
  • boolean isEmpty() 若此映射未包含键-值映射关系,返回 true
  • Set keySet() 返回此映射中包含的键的 set 视图
如何选择集合类
  • Set内存放的元素不允许重复,List存放的元素有一定的顺序。
  • Map的应用主要在利用键/值对进行快速查询。
  • ArrayList和LinkedList的区别在于随机查询性能上ArrayList要好,但LinkedList的中间元素的插入与删除性能好 。
  • HashSet和TreeSet的区别在于集合内元素是否排序 。

    推荐阅读