java常见类——工具类

工具类

Java开发者写好的类—官方文档 API

包装类(封装类)

1.5版本之后自动拆装包

[基本类型]: byte—Byte short—Short int—Integer long—Long

float—Float double—Double boolean—Boolean char—Character

  • 1.八个包装类都在Java.lang包下,不需要导包
  • 2.八个包装类中六个数字相关都默认继承父类Number
  • 3.八个包装类都实现了Serializable,Comparable
  • 4.均有带有自己对应类型参数构造方法,除了Character都有String构造方法重载
  • 5.创建对象 对象调用属性/方法
    六个数字相关类继承Number
        xxxValue();//将一个包装类类型转化为对应的基本类型(拆包)
        
        Integer i1 = new Integer(10);//引用数据类型 包装类
		int value = i1.intValue();

		Integer i2 = 10;
		int value = new Integer(10);

		int value = Integer.parseInt("123");	Float.parseFloat("123.45")
		int value = new Integer("123");
  • 6.经常在笔试中出现的问题
		Integer i1 = 10;
		Integer i2 = 10;
		Integer i3 = new Integer(10);
		Integer i4 = new Integer(10);
		System.out.println(i1==i2);//  true--->如果数字范围超过127false
		System.out.println(i1==i3);//  false
		System.out.println(i3==i4);//  false
		System.out.println(i1.equals(i2));//true
		System.out.println(i1.equals(i3));//true
		System.out.println(i3.equals(i4));//true

1.==与equals()区别

= =可以比较基本数据类型 也可以比较引用数据类型 (变量中存储的内容)
如果比较基本类型比较是变量中存储的值
如果比较引用类型比较是变量中存储的地址引用
equals()是Object类中继承过来的方法 每一个引用类型都可以调用
默认继承的equals()方法比较与==一致 如果想要改变比较规则 可以重写equals方法
由于Integer类就重写了equals() 所以Integer比较的是数值

2.考察Integer类加载的时候 自己有一个静态的空间

空间内立即加载 Integer类型的数组 内存储256个Integer对象 -128 ~ 127
如果我们用的对象范围在这之内Integer i1 = 10; 直接取静态区中找对应的对象
如果我们用的对象范围超出了这个Integer i1 = 1000;
会帮我们创建一个新的Integer对象

数学相关

Math类
  • 1.所属的包Java.lang

  • 2.Math的构造方法是私有的,外部不能直接调用创建对象

  • 3.Math中的属性和方法都是静态static,不需要创建对象,类.属性/方法调用

  • 4.常用方法:
    abs()返回给定数字的绝对值
    double=ceil()向上取整
    double=floor()向下取整
    double=rint()临近的整数 如果两边距一样,返回偶数
    int = round() 四舍五入的整数
    max(a,b) min(a,b) (参数int long float double)
    pow(a,b) a的b次方 (参数double 返回值double)
    sqrt(double a) 获取给定参数的平方根
    double = random(); 随机产生一个 [0.0–1.0)

  • 5.Math.random()计算小数的时候精确程度可能有些损失
    0-9之间的随机整数
    int value = (int)(Math.random()*10);
    5.0—10.9之间的小数
    (Math.random()*6)+5
    0.0—0.99999 * 6
    (0.0—5.49999)+5

Random类
  • 1.在java.util包中的类 需要import导入
  • 2.没有任何继承关系 默认继承Object类
  • 3.查找构造方法—>如何创建对象
    Random r = new Random();
  • 4.类中提供的常用方法
    r.nextInt(); 随机产生 int取值范围的整数 有正有负
    r.nextInt(int bound); 随机产生一个 [0–bound) 整数
    注意bound必须为正数 否则会出现如下的运行时异常
    IllegalArgumentException
    r.nextFloat() 随机产生一个 [0.0—1.0)
    r.nextBoolean() 随机产生一个boolean值 true false
UUID类
  • 1.所属的包 java.util 需要import导入
  • 2.没有任何继承关系 默认继承Object类
  • 3.构造方法有 没有无参数的 我们通常不会创建对象
    UUID uuid = UUID.randomUUID();
    System.out.println(uuid.toString());//数据库表格主键 primary key
    产生一个32位的随机元素 每一个位置是一个16进制的数字
BigInteger类

大整数 long -2的63次方 ~ 2的63次方-1

  • 1.所属的包java.math 需要import导入
  • 2.继承自Number
  • 3.如何创建对象 提供的构造方法全部都是带参数的
    通常利用带String参数的构造方法创建这个类的对象
    BigInteger bi = new BigInteger(“123”);
  • 4.类中的常用方法
    做四则运算
    add() subtract() multiply() divide()
  • 5.小例子
    设计一个方法 用来计算给定数字的阶乘 5 1 * 2 * 3 * 4 * 5==120
		//设计一个方法  用来计算给定数字的阶乘  
		//参数   返回值  
		public BigInteger factorial(int num){  
			BigInteger result = new BigInteger("1");  
			for(int i=1;i<=num;i++){  
				result = result.multiply(new BigInteger(i+""));  
			}  
			return result;  
		}
BigDecima类 超过了double取值范围
  • 1.所属的包 java.math包
  • 2.继承Number类
  • 3.通常也是可以通过 带String参数 构建对象
  • 4.类中的常用方法
    做四则运算
    add() subtract() multiply() divide()
    两个参数前面是保留小数点之后的位数 后面参数是设置的模式
    对象.setScale(2,BigDecimal.ROUND_DOWN);
DecimalFormat

将小数点之前和之后的位数都能处理的类---->格式化

  • 1.所属的包 java.text
  • 2.import导入才能使用
  • 3.通过带String参数的构造方法创建一个格式化对象 0 #
  • 4.调用format方法将一个小数格式化成一个字符串
		DecimalFormat df = new DecimalFormat("000.###");// 0必须存在 #可有可无  
        		String value = df.format(12.45);  
        		System.out.println(value);  
Scanner类
  • 1.所属的包java.util包 需要import导包
  • 2.通过一个带输入流的构造方法创建对象
  • 3.常用方法

类型相关nextInt() nextFloat() [以回车符作为截尾,不读取]
字符串形式next()[以空格作为截尾,不读取空格] nextLine()//读取到回车符,并丢弃

System类
  • 1.所属的包java.lang包 不需要导入
  • 2.不需要创建对象 通过类名就可以访问
  • 3.有三个属性及若干的方法
    三个属性:out输出流 in输入流 err处理错误信息
    方法gc()提示GC回收垃圾 exit(0);退出
    currentTimeMillis();返回当前毫秒时间 距离1970-1-1 00:08:00

日期相关

Date类
  • 1.通常使用的是java.util包
  • 2.导包 拿来使用 构建对象
  • 3.通常使用无参数的构造方法 或者带long构造方法
  • 4.Date类中常用的方法
    before(); after();
    setTime() getTime();----->long
    compareTo(); -1 1 0
  • 5.可以处理一个Date日期的格式
DateFormat类
  • 1.包java.text 需要导包使用
  • 2.此类是一个抽象类 不能创建对象 子类来使用
  • 3.SimpleDateFormat类 是DateFormat的子类
  • 4.调用带String参数的构造方法创建format对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        		String v =  sdf.format(date1);//通过sdf对象将date1格式化成你描述的样子
Calendar类 1.1版本
  • 1.所属的包java.util 需要导包
  • 2.有构造方法 用protected修饰的 通常访问不到 通常会调用默认的getInstance();
  • 3.常用方法
    after() before()
    setTime() getTime()---->Date
    getTimeInMillis()----time
    getTimeZone()—TimeZone
    Calendar里面包含一个date属性 可以操作date的某一个局部信息
    set get
    calendar.set(Calendar.YEAR,2015);
    int year = calendar.get(Calendar.YEAR);
    MONTH差一个月,西方从0开始数
TimeZone
  • 1.java.util包
  • 2.可以通过calendar对象.getTimeZone()获取 或 TimeZone.getDefault();
  • 3.常用方法
    tz.getID() ----> Asia/Shanghai
    tz.getDisplayName() 中国标准时间

字符串

String类---->引用类型 java.lang包
  • 0.常见的String笔试题
    == equals方法的区别
    == 可以比较基本类型 可以比较引用类型
    比较基本类型比较值 比较引用类型比较地址
    equals只能比较引用类型(方法)
    默认比较地址this==obj
    如果想要修改其比较规则 可以重写equals方法
    通常重写equals方法时会伴随着重写hashCode方法
    比如String类 比如Integer
    *String的不可变特性
    长度及内容
    String与StringBuffer区别
    StringBuffer与StringBuilder区别
    String对象的存储
    “abc”---->字符串常量池
    new String(“abc”)—>堆内存
    “a”+“b”+“c”+“d”
    *String中常用的方法
  • 1.存在哪儿 java.lang包
    没有任何继承关系 实现三个接口Serializable, CharSequence, Comparable
  • 2.如何构建对象
			String str = "abc"; //直接将字符串常量赋值给str   (字符串常量池)  
			String str = new String();//无参数构造方法创建空的对象  
			String str = new String("abc");//带string参数的构造方法创建对象  
			String str = new String(byte[] )//将数组中的每一个元素转化成对应的char 组合成String  
			String str = new String(char[]   )//将数组中的每一个char元素拼接成最终的String  
  • 3.String的不可变特性

String类中包含一个private final char[] value;
体现在两个地方 长度及内容
长度—>final修饰的数组 数组长度本身不变 final修饰数组的地址也不变
内容—>private修饰的属性 不能在类的外部访问

  • *4.常用的方法
			boolean = equals(Object obj);
				//继承自Object 重写啦  比较两个字串中的字面值是否相等
				equalsIgnoreCase()//忽视大小写比较
			int = hashCode();
				//继承自Object 重写啦  将当前字符串的每一个char元素拆开 乘以31求和
			int = compareTo(String str);
				//实现自Comparable接口  实现啦  按照字典(Unicode编码)索引的顺序比较
				//按照两个字符串的长度较小的那个(次数)来进行循环
		        //若每次的字符不一致 则直接返回code之差 
		        //若比较之后都一致  则直接返回长度之差
		        compareToIgnoreCase()//忽视大小写比较
			String = toString();
				//继承自Object 重写啦 不再输出 类名@hashCode  字符串中的字面值
			--------------------------------------------------------------------
			char = charAt(int index);//"abc"   0-->a
				//返回给定index对应位置的那个char值
			int = codePointAt(int index);//"abc"   0-->97
				//返回给定index对应位置的那个char所对应的code码
			int = length();
				// 返回字符串的长度   (其实就是底层char[] value属性的长度)
		        //注意:  区别数组length是属性  String的length()方法    集合size()方法
			String = concat(String);
				//将给定的字符串拼接在当前字符串之后
				//注意:  方法执行完毕需要接受返回值   String的不可变特性
		        //  concat方法与   +拼接的性能问题
		        //  开发中若遇到频繁的拼接字符串--->通常使用StringBuilder/StringBuffer
			//自己回去查看API文档
    8.boolean = contains(CharSequence s);  
	   判断给定的s是否在字符串中存在
	9. startsWith(String prefix);  
	    endsWith(String suffix);
	   判断此字符串是否已xx开头/结尾
	10.byte[] = getBytes();   --->    getBytes(String charsetName);
	     char[] = toCharArray();
	   将当前的字符串转化成数组   "我爱你中国"   char[]  '我' '爱' '你' '中' '国'
	11. int index = indexOf(int/String str [,int fromIndex] );   四个方法重载
	   找寻给定的元素在字符串中第一次出现的索引位置   若字符串不存在则返回-1
	      lastIndexOf(int/String str , [int fromIndex]);
	   找寻给定的元素在字符串中最后一次出现的索引位置  若不存在则返回-1
	12.boolean = isEmpty();
	   判断当前字符串是否为空字符串  (length是否为0)
	   注意: 与null之间的区别
	13.replace();
	     replaceAll();
	     replaceFirst(); 换第一次出现的那个字串
	   将给定的字符串替换成另外的字符串
	14.String[] = split(String regex [,int limit限度界限]);
	   按照给定的表达式将原来的字符串拆分开的
	15.String = substring(int beginIndex [,int endIndex]);
	   将当前的字符串截取一部分   
	   从beginIndex开始至endIndex结束  [beginIndex,endIndex)
	   若endIndex不写 则默认到字符串最后
	16.String = toUpperCase();
	     String = toLowerCase();
	  将全部字符串转换成大写/小写
	17.String = trim();
	  去掉字符串前后多余的空格
	18.boolean = matches(String regex)
	  regular有规律的 expression表达式

常用的方法
代码学习44

    第一梯队(重写)
	equals  hashCode  compareTo  toString
    第二梯队(常用)
	    charAt()  codePointAt()
	    indexOf()  lastIndexOf()
	    substring()  split()  replace()
	    length()  concat()  contains();  trim();
	    getBytes()   toCharArray()  matches()
	第三梯队(一般)
	    toUpperCase()  toLowerCase()
	    startsWith()  endsWith();
	    isEmpty();
StringBuffer和StringBuilder
  • 1.所属的包 java.lang包
  • 2.继承AbstractStringBuilder 间接继承 Object
    实现接口Serializable,CharSequence,Appendable
    StringBuffer/StringBuilder没有compareTo方法
    StringBuffer/StringBuilder含有一个String没有的方法 append();拼接
  • 3.特性
    可变字符串 char[] value; 动态扩容
  • 4.对象的构建
		//无参数构造方法  构建一个默认长度16个空间的对象  char[]
		StringBuilder builder = new StringBuilder();
		//利用给定的参数 构建一个自定义长度空间的对象 char[]
		StringBuilder builder = new StringBuilder(20);
		//利用带String参数的构造方法  默认数组长度字符串长度+16个
		StringBuilder builder = new StringBuilder("abc");
  • 5.StringBuilder中常用的方法
  •   最主要的方法 append()  频繁的拼接字符串的时候使用此方法 提高性能  
      ensureCapacity(int minimumCapacity)  确保底层数组容量够用  
      capacity();//字符串底层char[]的容量  
      length();//字符串有效元素个数(长度)  
      setLength();//设置字符串的有效元素个数  
      char = charAt(int index);  
      int = codePointAt(int index);  
      String = substring(int start [,int end]);  
      	注意需要接受返回值 看见截取出来的新字符串效果    
      StringBuilder = delete(int start [,int end]);    
      	StringBuilder类中独有的方法String类没有  
      	将start到end之间的字符串删掉  不用接受返回值就看到效果啦  
      StringBuilder = deleteCharAt(int index);  
      	String类中没有的方法  
      	将给定index位置的某一个字符删除掉啦
      int = indexOf(String str [,int fromIndex]);
      int = lastIndexOf(String str [,int fromIndex])
      	找寻给定的str在字符串中第一次出现的索引位置  带重载 则从某一个位置开始找
      insert(int index,value);
      	将给定的value插入在index位置之上
      replace(int start,int end,String str);
      	将start和end之间的部分替换成str
      	builder.replace(2,5,"zzt");
      setCharAt(int index,char value);
      	将index位置的字符改成给定的value
      toString()
      	将StringBuilder对象 构建成一个string对象 返回
      trimToSize()
      	将数组中无用的容量去掉  变成length长度的数组
    
知识总结
  • 1.StringBuilder类不一定需要 是为了避免String频繁拼接修改字符串信息的时候才用的
    底层数组是可变的 提高了性能

  • 2.常用方法

      与String类不同的独有方法
      append()  insert()  delete()  deleteCharAt()  reverse()
      与String类相同的方法
      length() charAt() codePointAt() indexOf() lastIndexOf() 
      substring() replace()名字相同 用法不一致
      不是很常用的方法
      ensureCapacity() capacity() setLength() trimToSize(); setCharAt();
    
  • 3.String家族笔试中经常容易考察的知识点

  1.String所属的包 继承关系 实现接口
  	java.lang 继承Object 接口Serializable,CharSequence,Comparable
  2.String构建方式
  	常量  构造方法  
  3.String对象内存结构
  	字符串常量区  new堆内存对象
  	==  equals()区别
  	"a"+"b"+"c"
  4.String不可变特性
  	长度及内容
  5.String中的常用方法---与StringBuilder的区别
  	concat();  toUpperCase();
  6.String和StringBuilder区别   |   String和StringBuffer区别
  	String不可变字符串
  		JDK1.0
  		有一个接口Comparable
  		不可变体现在长度及内容
  		有一些方法StringBuilder没有 concat  compareTo  toUpperCase
  	StringBuilder可变字符串
  		JDK1.5
  		有一个接口Appendable
  		可变字符串  没有final修饰  底层可以进行数组扩容
  		有一些方法String没有  append() insert() delete() reverse()
  7.StringBuffer和StringBuilder的不同
  	StringBuffer早期版本1.0
  	StringBuilder后来的版本1.5
  	早期版本  线程同步   	   安全性比较高  执行效率相对较低
  	后期版本  线程非同步    安全性比较低  执行效率相对较高

regex正则表达式

Regular有规律的 Expression表达式
一个带有一定规律的表达式
匹配字符串格式的

正则表达式通常的作用如下:
1.字符串的格式校验		String类中提供的一个方法 boolean = str.matches("regex");
2.字符串的拆分及替换		String类中提供的方法replace  split
3.字符串的查找		Pattern模式  Matcher匹配器

	如下的所有都用来描述字符的信息
	[abc]	abc其中的一个
	[^abc]	不能是abc其中的一个 其他都可以
	[a-zA-Z]	表示必须是这两个范围内的
	[a-z&&[^bc]]  表示a-z其中的一个但不能是b和c
	|	或者
	. 代表任意一个字符
	\d  digit数字   [0-9]
	\D  非数字       [^0-9]
	\s  space留白  一个空格 一个回车 一个换行。。。
	\S  非留白
	\w  word单词  [0-9A-Za-z]  数字或字母都可以
	\W 非单词        [^0-9A-Za-z]

	如下的所有都用来描述字符出现的次数
	?   0-1次    [0-9]?
	*   0-n次
	+  1-n次
	{n} 固定n次
	{n,} 至少出现n次
	{m,n}  m-n次

集合相关(ArrayBox LinkedBox)

集合java.util
Collection Map
存储的都是value 存储的是以key-value形式存在
List Set
有序可重复 无序无重复 key无需无重复 value无需可重复

序 : 顺序	添加进去的元素  取得元素的顺序一致   注意指的不是集合自己的顺序
重复:两个对象元素一致

ArrayList  Vector区别--->StringBuilder  StringBuffer


List集合
1.ArrayList   3.Vector   2.LinkedList
ArrayList----->底层就是一个数组
	所属的包 java.util
	如何创建对象
	无参数构造方法    带默认空间的构造方法    带collection参数的构造方法
	常用的方法---小容器
		存 add
		取 get
		删 remove
		改 set
		个数  size

		add(E e)   add(int index,E e)
		addAll(Collection c);   add(int index,Collection c)
		clear();将集合内的全部元素清除
		boolean = contains(Object);找寻某一个给定的元素是否在集合中拥有
		ensureCapacity(int minCapacity);
		E = get(int index);
		int = indexOf(Object obj);  lastIndexOf();
		boolean = isEmpty();
		Iterator = list.iterator();//迭代器
		remove(int index)  remove(Object obj)
		removeAll()差集
		retainAll();交集
		E = set(int index,E value)
		int size();
		List = subList(int begin,int end);
		toArray();	集合变成数组
		toArray(T[] );
		trimToSize();// 变成有效元素个数那么长
LinkedList类
  • 1.java.util包 自己封装过LinkedBox 内部类Node对象(节点 prev item next)
  • 2.底层使用双向链表的数据结构形式来存储
    适合于插入或删除 不适合遍历轮询
  • 3.构建对象
    无参数构造方法 带参数的构造方法(collection)
  • 4.常用的方法
  •   增删改查   add()  remove()  set()  get()  size()	offer  poll   peek
      手册中提供的其他常用方法
      addAll   addFist   addLast()  clear()  contains()
      element()  getFirst()  getLast()  indexOf()  lastIndex()
      .....
    
  • 5.插入删除的特性是否像想的那样
    对比ArrayList Linked
关于泛型的问题:
  •   由于arrayList底层是一个Object[]  什么类型都可以存进去
      取出来的时候多态的效果 需要自己造型 显得用起来非常的麻烦
      JDK1.5之后--->泛型
      用来规定数据类型的,定义的时候用一个符号代替某种类型
      在使用的时候用具体的数据类型 将定义的那个符号替换掉
      泛型可以用在哪里?
      1.泛型类
      	类定义的时候描述某种数据类型  集合的使用就是这样
      2.泛型接口
      	与泛型类的使用基本一致   子类实现接口时必须添加泛型
      3.泛型方法
      	方法调用时传参数   方法的泛型与类无关   带有泛型的方法可以不放在带有泛型的类中
      4.高级泛型  规范边界  extends  super
    
Vector类
  • 1.java.util包
  • 2.是ArrayList集合的早期版本 (StringBuffer早期 StringBuilder后来)
    Vector底层也是利用(动态)数组的形式存储
    Vector是线程同步的(synchronized) 安全性高 效率低
  • 3.扩容方式与ArrayList不同
    默认是扩容2倍 可以通过构造方法创建对象时修改这一机制
  • 4.构造方法
  • 5.常用方法
Stack类 栈
  • 1.java.util包
  • 2.构造方法只有一个无参数
  • 3.除了继承自Vacton类的方法外还有特殊的方法
    push(E e)将某一个元素压入栈顶(add())
    E = pop()将某一个元素从栈顶取出并删掉(E = remove())
    E = peek()查看栈顶的一个元素 不删除(get())
    boolean = empty()判断栈内元素是否为空(isEmpty())
    int = search()查找给定的元素在占中的位置(indexOf())
  • 4.中国象棋 悔棋
    栈中存储每一次操作的步骤
    撤销功能
Queue接口
  • 1.java.util 通常子类LinkedList ArrayDeque
  • 2.通常无参数构造方法创建
  • 3.一般方法
  •   add()
      element()---->get()
      remove()
      boolean = offer(E e);//相当于add	不会抛出异常
      E = peek();//相当于 element方法
      E = poll();剪短//  相当于remove()
    
  • 4.双十一零点秒杀
    所有进入秒杀系统的人存入队列
    Collection 以value形式存在
Set 无序无重复
  • 1.具体的实现类
    HashSet
    TreeSet
  • 2.基本的使用
  • 3.无序 无重复
    无序:我们使用集合存放元素的顺序 集合内取出来的顺序不一致
    集合本身是有自己的算法排布顺序 hash算法
HashSet---->(HashMap (数组+链表) 散列表 临接连表)
  • 1.java.util

  • 2.如何创建对象 无参数 有参数

  • 3.集合容器的基本使用

        增删改查
    	boolean = add(value)   addAll(collection c)   retainAll   removeAll
    	boolean = remove(Object)
    	没有修改方法
    	iterator()  获取一个迭代器对象
    	size()
    
  • 4.无重复的原则

  •   	首先通过String类型和Person类型存储
      	大概猜测  无重复的原则  利用equals方法进行比较
      	如果我们想要让Person对象的name一致 认为是同一个对象
      	我们可以重写equals方法
      	重写了equals方法  发现还没有产生无重复的效果
      	证明可能原则不止equals一个方法这么简单
      	还有另一个规则同时起着作用 hashCode方法  int
      	五个Person对象只剩一个   第一次存储的   还是最后一次存储
      	set集合是发现重复的元素 拒绝存入  存储的是第一个
    
TreeSet-----(TreeMap 二叉树 利用Node(left item right))
  • 无序无重复 java.util
  • 无参数构造方法 带Collection构造方法
  • 基本常用方法
  •   	add(E e)  iterator()  remove(E e)  没有修改  size()
    
  • 无重复的规则是如何实现的
  •   	treeSet集合本身有顺序   我们指的无序存入的和取出来的不一致
      	compareTo---->String类  按照字母的自然顺序排布(Unicode)
      	如果想要把自己写的类型 比如Person对象存入TreeSet集合里
      	不能随意的存储	需要让自己写的类先实现Comparable接口
    
Map
映射   通过某一个key可以直接定位到一个value值
存储的方式以  键值对  存储   key-value
key无序无重复   value无序可重复
key无序还是一样,指的是存入顺序与取得顺序不一致
key无重复当然指的是 元素不能一致
  • 1.map基本使用
  •   HashMap
      TreeMap
      Properties
    
HashMap
  • 1.包 java.util

  • 2.如何创建对象

  • 3.基本方法

  •   增删改查
      增put(key,value)	存放一组映射关系   key-value
      	1.key存储的顺序与取得顺序不同
      	2.不同的key可以存储相同的value
      	3.key若有相同的 则将 原有的value覆盖而不是拒绝存入(跟set刚好相反)
      删E = remove(key);
      改put(key,value1)    put(key,value2)
         replace(key,newValue)
      查E = get(key)
      遍历map集合?	key不一定什么样
      	获取到所有的key	遍历key	通过key获取value
      	Set<Key> = keySet()获取全部的key
      	Set<Entry> = entrySet();
      size();
    
  • 4.除了上述几个常用的方法外 其他API中提供的方法

  •   clear   containsKey(key)   containsValue(value)
      getOrDefault(key,defaultValue);如果key存在就返回对应的value 若没有找到则返回默认值
      isEmpty()
      putAll(map)
      putIfAbsent(key,value);//如果key不存在才向集合内添加  如果key存在就不添加啦
    
  • 5.map集合在什么情形下用?

    1.想要存储一组元素
    数组 or 集合 如果存储的元素以后长度不变用数组 如果长度以后不确定 用集合
    2.如果发现长度以后不确定—>集合
    List Set Map
    List家族有序的 存储有顺序用这个
    ArrayList 更适合遍历轮询
    LinkedList 更适合插入和删除
    Stack LIFO
    Set家族无重复 存储元素希望自动去掉重复元素用这个
    Hash 性能更高
    Tree 希望存进去的元素自动去重复 同时还能自动排序
    Map家族k-v 通过唯一的k快速找寻v用这个
    Hash 性能更高
    Tree 希望存进去的元素key自动排序

  • 6.登录小流程
    能体会每一个不同集合的特点

  • 7.HashMap底层的数据结构存储

    散列表的形式	数组+链表
    Person对象存入HashMap中?  可以
    hashCode方法---->不同的对象 可以产生相同的hashCode码的
    不同的hashCode码-->不同的对象
    
TreeMap

自然有序 按照Unicode编码自然有序
map集合中的key需要可比较的 key的对象需要实现Comparable接口

  • 1.java.util包
  • 2.构造方法
    无参数 带map参数
  • 3.常用方法
    put get remove replace size
  • 4.底层数据结构的存储
    红黑二叉树

异常相关

程序运行过程中,可能会发生一些不被期望的效果,肯定会阻止我们的程序按照指令去执行
这种不被预期出现的效果,肯定需要抛出来告诉我们

在Java中有一个定义好的规则Throwable(可以抛出的)
  • Error错误
    通常是一些物理性的,JVM虚拟机本身出现的问题,程序指令是处理不了的

  • Exception异常
    通常是一种人为规定的不正常的现象,通常是给定的程序指令产生了一些不符合规范的事情

    Throwable类实现了一个序列化接口
    

    Error(错误) Exception(异常)
    StackOverflowError RuntimeException(运行时) IOException。。。。。
    OutOfMemoryError

异常的分支体系
运行时异常(非检查异常)
	Error和RuntimeException都算作运行时异常
	javac编译的时候,不会提示和发现的,
	在程序编写时不要求必须做处理,如果我们愿意可以添加处理手段(try throws)
	要求大家出现这样异常的时候 知道怎么产生及如何修改
  • 1.InputMisMatchException 输入不匹配
    int value = input.nextInt();// abc
  • *2.NumberFormatException 数字格式化
    int value = Integer.parseInt(“123.45”);
  • 3.NegativeArraySizeException 数组长度负数
    int[] array = new int[-2];
  • *4.ArrayIndexOutOfBoundsException 数组索引越界
    int[] array = {1,2,3};
    array[5];
  • *5.NullPointerException 空指针异常
			int[][] array = new int[3][];
			array[0][0] =10;
			Person p = null;
			p.getName();
  • 6.ArithmeticException 数字异常
    10/0 整数不允许除以0 Infinity小数除以0会产生无穷

  • *7.ClassCastException 造型异常
    Person p = new Teacher();
    Student s = (Student)p;

  • *8.StringIndexOutOfBoundsException 字符串越界
    String str = “abc”;
    str.charAt(5);

  • *9.IndexOutOfBoundsException 集合越界

      	List家族
      	ArrayList  list = new ArrayList();
      	list.add(); list.add(); list.add();
      	list.get(5);
    
  • 10.IllegalArgumentException 非法参数异常

      	ArrayList  list = new ArrayList(-1);
    
编译时异常(检查异常)
	除了Error和RuntimeException以外其他的异常
	javac编译的时候  强制要求我们必须为这样的异常做处理(try或throws)
	因为这样的异常在程序运行过程中极有可能产生问题的
	异常产生后后续的所有执行就停止啦
            InterruptException
			try{
				Thread.sleep(5000);
			}catch(Exception e){
	
			}

后续还会有很多的编译时异常

添加处理异常的两种手段
处理异常不是   异常消失了
处理异常指的是   处理掉异常之后   后续的代码不会因为此异常而终止执行
try{}catch(){}[ finally{} ]
  • 1.try不能单独的出现

  • 2.后面必须添加catch或finally

  • 3.catch有一组括号 (NullPointerException) 目的是为了捕获某一种异常

  • 4.catch可以有很多个存在

    捕获的异常之间没有任何的继承关系
    捕获的异常需要从小到大进行捕获
    
  • 5.finally不是必须存在的

    若存在finally结构  则必须执行
    引申一个小问题:   final   finally  finalize区别
    	final  特征修饰符  修饰变量 属性 方法 类
    		修饰变量 基本类型 值不能改变 引用类型 地址不能改变(如果变量没有初值 给一次机会赋值)
    		修饰属性 特点与修饰变量类似 (要求必须给属性赋初始值 否则编译报错)
    		修饰方法 不能被子类重写
    		修饰类    不能被其他的子类继承
    	finally 处理异常手段的一部分
    		try{}catch(){}后面的一个部分
    		这个部分可有可无  如果有只能含有一份 且必须执行
    	finalize 是Object类中的一个protected方法
    		对象没有任何引用指向的时候 -- 会被GC回收
    		当对象回收的时候 默认调用finalize方法
    		若想要看到对象回收的效果  可以重写 public void finalize(){}
    
  • 6.处理异常放在方法内部 可能还会有小问题

    如果在方法内部含有返回值
    不管返回值return关键字在哪里   finally一定会执行完毕
    返回值的具体结果   看情况
    

throws抛出
  • 1.异常只能在方法上抛出 属性是不能处理异常的

  • 2.方法 构造

  • 3.方法可以抛出不止一个异常 通过,隔开

  • 4.抛出的异常与多个catch类似 要么没关系 要么先抛出小异常


Throwable的分支
Exception   Error
运行时
编译时
两种处理异常的手段 try  throws
常用的运行时异常  后续见到的编译时异常
我们也可以自己创建异常----自定义异常
  • 1.自己描述一个异常的类
  • 2.让我们自己的类继承
    如果继承是RuntimeException---->运行时异常(不需要必须添加处理手段)
    如果继承是Exception-------------->编译时异常(必须添加处理手段)
  • 3.创建一个当前自定义异常类的对象
    通过throw关键字 主动产生异常
  • 4.当我们设计描述的方法(事情) 之前没有相关的异常能描述我的问题Box
    这个时候才会利用自定义异常来描述

输入输出相关I/O

I/O相关	输入/输出	   流(数据流动)
数据流动的方向   读数据(输入Input)   写数据(输出output)
文件流  字符流  对象流  网络流....
*文件流
	低级
		字节型	FileInputStream  FileOutputStream
		字符型	FileReader  FileWriter	字符集65279
	*缓冲
		字节型	BufferedInputStream  BufferedOutputStream
		字符型	BufferedReader	BufferedWriter
数组流
	byte数组		ByteArrayInputStream	ByteArrayOutputStream
	char数组		CharArrayReader		CharArrayWriter
数据流			DataInputStream		DataOutputStream
字符串流			StringReader		StringWriter
*对象流			ObjectInputStream		ObjectOutputStream

    1.什么叫文件
    一种电脑的存储形式
    文件有不同的格式   .txt   .doc   .ppt   .mp4   .jpg   .rar   ...
	文件夹?----目录路径
	
	2. 什么叫文件流   做什么
	读取文件中的内容		向文件中写内容
	文件输入流		文件输出流
	字节型文件输入流		字节型文件输出流
	字符型文件输入流		字符型文件输出流

容器
1.变量	只能存一份
2.数组	存储好多个    数据类型统一
3.集合	存储好多个    存储后个数还能改变    泛型---数据类型统一
如上三个都是Java中的类型(对象-->内存)
都存储在内存中  程序执行完毕  虚拟机停止的时候  内存空间就回收啦
数据都是临时性存储的
----------------------------
4.文件	存储好多信息
文件是存储在硬盘上的--->永久性保存
数据虽然是安全了
文件毕竟不在内存中  需要通过IO操作文件		JDBC
字符集
字符   文字和符号总称(Character)
不同国家的数字和符号是一样的   字母
不同国家的文字   中文   日文   韩文
计算机最早产生是按照英语单词  单个字符设计的
字母  数字  符号-----1字节   8bit   256
如果计算机想要处理除了上述字母符号以外的其他字符---比如中文2字节
需要将中文进行字符编码----->拆分 和 组合
拆分合组合的规则---所谓的字符编码
常见的字符编码
	ASCII	American Standard Code for Information Interchange
	ISO-8859-1
	GB2312   GB18030   GBK	BIG5
	Unicode
	UTF-8   UTF-16
	平台(操作系统)默认字符集GBK	Linux(MacOS)默认字符集UTF-8
	编程序使用的开发环境(IDE)   Idea-->UTF-8   Eclipse-->GBK
	注意在用记事本存储文字    流操作纯文本形式的时候
	字符的形式采用UTF-8
	String s = "你我他";
	byte[] = s.getBytes("UTF-8");
	new String(byte[],"UTF-8");
File----->与电脑上的文件或文件夹产生一一对应的映射关系

File是一个类

  • 1.java.io包中

  • 2.文件或目录路径名的抽象表示形式

  • 3.File与真实硬盘中的文件或文件夹 不是一个东西
    File是在内存中的一个对象<—映射—>硬盘上的文件或文件夹

  • 4.File类中的常用的方法

    canRead()   canWrite()   isHidden()   isFile()   isDirectory()
    length()获取文件中字节的个数
    lastModified()获取文件最后的修改时间--->毫秒值
    *String path = getAbsolutePath()  获取文件的绝对路径   D://test//Test.txt
    绝对路径<---->相对路径
    绝对路径可以通过完整的字符串  定位盘符 文件夹 文件
    相对路径没有盘符的写法           当前工程(项目)所在的位置找寻
    		C:\Users\Administrator\IdeaProjects\TestFile
    String name = getName() 获取文件的名字    Test.txt
    *boolean = createNewFile()  创建新的文件
    *boolean = mkdir	              创建新的文件夹  外层没有 不能创建
    *boolean = mkdirs             创建新的文件夹  外层没有 可以自动创建
    String pname = getParent()  获取当前file的父亲file名字
    *File file = getParentFile()      获取当前file的父亲file对象
    String[] names = list()            获取当前file的所有儿子名字
    *File[] files = listFiles()             获取当前file的所有儿子对象
    *boolean = delete()	删除文件或空的文件夹  不能删除带元素的文件夹
    
学习文件流—>
	顾名思义  读取文件中的信息in   将信息写入文件中out
	文件流按照读取或写入的单位(字节数)大小来区分

	字节型文件流(1字节)
		FileInputStream/FileOutputStream
	字符型文件流(2字节--1字符)
		        FileReader/FileWriter
字节型文件输入流 FileInputStream
  • 1.包 java.io

  • 2.了解一下继承关系 InputStream类 字节型输入流的父类

  • 3.创建对象
    调用一个带File类型的构造方法
    调用一个带String类型的构造方法

  • 4.常用方法

    int code = read();	每次从流管道中读取一个字节   返回字节的code码
    

    *int count = read(byte[] ) 每次从流管道中读取若干个字节 存入数组内 返回有效元素个数
    int count = available(); 返回流管道中还有多少缓存的字节数
    skip(long n) 跳过几个字节 读取
    多线程—>利用几个线程同时读取文件
    10000字节 5个小人同时读取
    1-2000 2001-4000 4001-6000 6001-8000 8001-10000
    D当做服务器 E当做客户端
    *close() 将流管道关闭—必须要做 最好放在finally里 注意代码的健壮性 判断严谨

字节型文件输出流 FileOutputStream

将数据写入文件中

    1. java.io
  • 2.继承OutputStream 所有字节型输出流的父类

  • 3.创建对象
    调用一个带File参数 还有File boolean重载
    调用一个带String参数 还有String boolean重载

  • 4.常用方法

    write(int code); 将给定code对应的字符写入文件 ‘=’
    write(byte[]) 将数组中的全部字节写入文件 getByte()
    flush(); 将管道内的字节推入(刷新)文件
    close(); 注意在finally中关闭

字符型文件流
	FileReader	FileWriter
	只能操作纯文本文件(文件右键打开方式 记事本打开 能看懂)
	.txt 
FileReader
  • 1.java.io包
  • 2.继承 InputStreamReader Reader
  • 3.构造方法
  • 4.常用
    read()
    read(char[])
FileWriter
  • 1.java.io包

  • 2.继承 OutputStreamWriter Writer

  • 3.构造方法
    带file参数 带file,boolean参数
    带String参数 带String,boolean参数

  • 4.常用

    write(int)
    write(char[])
    write(string)
    flush close

FileInputStream/FileOutputStream
FileReader/FileWriter
read write

缓冲流
	在流管道内增加缓存的数据
	让我们使用流读取的文字更加的流畅
	高级流--->创建通过低级流
	BufferedInputStream/BufferedOutputStream
	         BufferedReader/BufferedWriter
BufferedInputStream
构建方式  使用低级流构建
基本使用与低级流的方法完全一致
read()  skip()  available()  close()
BufferedOutputStream
构建方式  使用低级流构建   注意 缓冲流构建的时候没有boolean类型的参数
基本使用与低级流的方法完全一致
write()   flush()  close()
	

	数组  box  集合(List Set Map)--->做真实数据的存储
	都不好--->临时性的存储  都在内存中
	文件----->永久性的存储  存储在硬盘上
BufferedReader
		String value = readLine();
BufferedWriter
		write(String)
		newLine()\
对象流—将对象直接存入文件中

对象拆分成字节码 直接写入文件

对象的序列化/反序列化
对象的序列化指的是 
	将一个完整的对象 拆分成字节碎片 记录在文件中
对象的反序列化指的是
	将文件中记录的对象随便 反过来组合成一个完整的对象
如果想要将对象序列化到文件中
	需要让对象实现Serializable接口
	是一个示意性接口
	同时为了让对象可以反序列化
	需要让对象中多存在一个属性  private long serialVersionUID = 任意L;
如果想要将对象反序列化
	需要给对象提供一个序列化的版本号  1.7版本-->String   1.8-->String

线程相关

程序  
	可以理解为是一组静态的代码  
进程  
	正在进行的程序	静态的代码  运行起来
线程
	正在执行程序中的小单元
eg:聚餐
聚餐之前   班级大扫除
扫除需要分配任务	任务写在纸上  列一个清单
一声令下   开始扫除    进程
每一个同学都做自己的事情   并发执行   互相不影响
  • 线程区别
    1.主线程 系统线程
    2.用户线程 main
    3.守护线程(精灵) GC

  • 线程------操作系统级别 CPU
    如何在Java中创建线程 让线程执行 多线程
    掌握每一个线程的几种不同状态 及状态之间如何切换

    new         start()       CPU分配run()       wait()	   exception  over
    创建线程------就绪状态------执行状态------等待/挂起------异常/消亡
                    |                              |
                    |______________________________|
    	                    notify/notifyAll
    
  • 继承Thread 实现线程的过程
    1.自己描述一个类
    2.继承父类Thread
    3.重写run方法
    4.new一个线程对象 调用start()方法 让线程进入就绪状态

  • 实现Runnable 实现线程的过程
    1.自己描述一个类
    2.实现一个父接口Runnable
    3.重写run方法
    4.new一个线程对象 需要创建Thread将自己的对象包起来 然后调用start()

    模拟一个火车站售票小例子
    1.车票 2.系统12306 3.窗口window 多线程

    车票
    属性
    起始站
    终点站
    票价
    系统
    属性
    集合
    方法
    窗口
    是一个线程

  • 利用Vector集合 集合本身就是线程安全
    1.如何切换线程的不同状态
    2.如果在设计中没有集合 我们自己想要控制线程安全

网络通信

反射与注解

GUI Swing(画窗口页面)

  • 4
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 accumulationByDoWhile.java 用do~while语句写的累加程序 accumulationByFor.java 用for语句写的累加程序 accumulationByWhile.java 用while语句写的累加程序 boolExample.java 演示boolean变量的程序 charExample.java 演示char变量的程序 compare.java 演示前缀、后缀自加之间区别的程序 constCharExample.java 演示转义字符 converseNumber.java 逆向输出数字 daffodilNumber.java 求水仙花数 division.java 演示整除结果 errorCompoundVariable.java 错误使用局部变量示例 factorial.java 求阶乘 Fibonacci.java 求Fiblnacci数列 GcdAndGcm.java 求最大公约数和最小公倍数 errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper.java 小写字母转换成大写字母 lozengeStar.java 输出一个由*组成的菱形 multiplyTable.java 求乘法口诀表 narrowingConversion_1.java 缩减转换引发错误示例1 narrowingConversion_2.java 缩减转换引发错误示例2 notMultipleOfThree.java 把100-200之间不能被3整除的数输出 outputByDoWhile.java 用while循环随机输出数据 outputByWhile.java 用do~while循环随机输出数据 outputMax.java 求两个数中的最大数 overflowExample.java 演示溢出 precedence.java 演示自加运算符的优先级 primeNumber.java 输出100-200之间的所有素数 ranking.java 评定成绩等级 rankingBySwitch.java 用switch语句评定成绩等级 realExample.java 演示浮点数的有效位数 remainder.java 取余运算示例 showBreak.java 利用标号语句跳转出所有循环嵌套 showCount.java 循环计数示例 showDoubleLoop.java 演示双重循环 showDoubleLoopSe.java 改进的双重循环 showOrder_1.java 演示操作数求值顺序示例1 showOrder_2.java 演示操作数求值顺序示例2 sign.java 用条件运算实现符号函数示例 signByIF.java 用if语句实现符号函数示例 triangleStar.java 输出一个由*组成的直角三角形 upperToLowCase.java 大写转换成小写 variableScopeExample.java 变量使用范围示例 第3章 示例描述:本章学习对象和。 accessMember.java 访问成员变量示例 constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate.java 私有访问权限的使用 declareProtected.java 保护访问权限的使用 deriveClass.java访问父变量示例 getLinePara.java 获取命令行参数示例 hasStaticMethod.java 静态成员方法示例 hasStatMember.java 静态成员变量示例 HelloNative.c 用C写的一个小程序 HelloNative.dll 用C生成的DLL文件 HelloNative.exp 用VC编译生成的辅助文件 HelloNative.h 用javah生成的C语言用的头文件 HelloNative.java 准备调用C函数的java文件 HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参传递示例程序 invokeByValue.java 传值调用示例程序 invokeMethod.java 同一个中调用方法示例 invokeOther.java 的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名问题示例 onlyTest.java 对象传值示例 otherClass.java的外部访问对象的成员 showInstVar.java 演示不同的对象拥有不同的成员变量 showMain.java 演示main方法访问本成员 showMethod.java 演示如何定义一个方法体 showReturn_1.java return语句示例1 showReturn_2.java return语句示例2 showStaicVar.java 演示静态变量的使用 staticBlock.java 演示静态块的使用 staticVar.java 定义静态变量 supplyTest.java 对象作为静态成员使用示例 trySwap.java 试图交换两个形参的值 useOnlyTest.java 创建多个对象,演示this的作用 useStaticBolck.java 使用静态块 useStVar.java 使用静态成员变量 第4章 示例描述:本章学习继承与多态。 absClass.java 抽象定义示例 ancestor.java定义示例1 ancestor_1.java 另一个基定义 anonymousInner.java 匿名内部 base.java 定义一个基 BaseColors.java 一个简单的接口 basePoint.java 一个测试用的基 Colorable.java 一个子接口 ColoredPoint.java 一个测试用子 common.java 一个公用 derive.java 一个测试用子 differ.java 测试静态方法与实例方法之间的区别 forefather.java 一个简单的基 grandson.java 上面这个的子 hasConstructor.java 拥有构造器的 hasFinalFun.java 拥有最终方法的 hasRecall.java 可以完成回调功能的 HasStatic.java 一个简单的拥有静态成员的 hideMember_1.java 成员隐藏示例1 hideMember_2.java 成员隐藏示例2 hideMember_3.java 成员隐藏示例3 hideMember_4.java 成员隐藏示例4 hideMember_5.java 成员隐藏示例5 implementABS.java 继承一个抽象 impRecall.java 实现回调函数 inheritConstruct_1.java 构造器继承示例1 inheritConstruct_2.java 构造器继承示例2 inheritConstruct_3.java 构造器继承示例3 inheritConstruct_4.java 构造器继承示例4 inheritConstruct_5.java 构造器继承示例5 inheritConstruct_6.java 构造器继承示例6 inheritor.java覆盖父示例 inPack.java 包示例 LotsOfColors.java 定义一个子接口 matching.java 重载解析示例 notInPack.java 用前缀引用包中的 onlyShow.java 一个简单的接口 Outer_1.java 外部示例1 Outer_2.java 外部示例2 Outer_3.java 外部示例3 Outer_4.java 外部示例4 Outer_5.java 外部示例5 Outer_6.java 外部示例6 Outer_7.java 外部示例7 Outer_8.java 外部示例8 overrideMember_1.java 成员方法覆盖示例1 overrideMember_2.java 成员方法覆盖示例2 overrideMember_3.java 成员方法覆盖示例3 overrideMember_4.java 成员方法覆盖示例4 overrideMember_5.java 成员方法覆盖示例5 Paintable.java 实现了多个接口的方法 PaintedPoint.java 实现了多个接口的方法 Point.java 一个简单的 PrintColors.java 一个子接口 RainbowColors.java 一个子接口 realPoint.java 一个子 second.java 属于一个命名包的 showDiff.java 演示隐藏与覆盖之间的区别 showSomething.java 测试运行时多态 stupid.java 试图覆盖最终方法的,它有错误 Sub.java 一个简单的子 Super.java 一个基 testOverload.java 测试方法的重载示例1 testOverload_1.java 测试方法的重载示例2 testOverload_2.java 测试方法的重载示例3 testOverload_3.java 测试方法的重载示例4 useConstructor.java 使用构造器 useHideMember_2.java 试图使用隐藏的成员变量 useInner.java 使用内部 第5章 示例描述:本章学习数组与字符串。 ArrayString.java 字符串数组 assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维数组 useStrBuf.java 使用StringBuffer示例 useString.java 使用String示例 YanghuiTri.java 构造和显示杨辉三角 第6章 示例描述:本章学习Java的异常处理。 demoException_1.java 异常示例1 demoException_2.java 异常示例2 demoException_3.java 异常示例3 demoException_4.java 异常示例4 demoException_5.java 异常示例5 divZeroError.java 除零异常 hasCheckException.java 检查型异常 MyException.java 用户自定义异常 myInput.java 输入数据示例 nestException_1.java 异常嵌套示例1 nestException_2.java 异常嵌套示例2 nestException_3.java 异常嵌套示例3 outBoundError.java 下标越界异常 throwException.java 抛出异常示例 throwsException.java 声明抛出异常 useMyException.java 使用自定义异常 第7章 示例描述:本章学习Java的输入和输出。 CopyFile.java 文件复制实例 dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字保存到文件 MyPipedIO.java 管道流示例 MySequenceIn.java 顺序输入流示例 ObjectFileTest.java 序列化对象示例 ReadAndWrite.java 读入和写出数据 ReadAndWriteFile.java 读入数据写出到文件 Student.java 定义一个用来序列化的 ThreadIn.java 接收数据用的线程 ThreadOut.java 发送数据用的线程 TypeFile.java 显示文件内容的 useScanner.java 用Scanner接收用户的输入 第8章 示例描述:本章学习多线程。 enhanceThread.java 一个自己定义的增强型线程 ThreadImRunnable.java 继承Runnable接口实现多线程 mulThread.java 创建多个线程对象的 demoJoin.java 演示使用join()以确保主线程最后结束 clicker.java 一个计数用的线程 demoPri.java 调用上面这个设置线程优先级示例 myThread.java 自己定义的一个Thread的子 mutexThread.java 一个能管理临界区的线程 demoMutex.java 使用上面这个来演示线程的互斥 commSource.java 一个共享资源的 demoSynchrony.java 演示线程的同步 setDataThread.java 设置数据的线程 readDataThread.java 读取数据的线程 demoEnhanceThread.java 使用自己定义的线程示例 producer_consumer.java 演示生产者-消费者线程 consumer.java 消费者线程 producer.java 生产者线程 common.java 公有 第9章 示例描述:本章学习运行时型识别。 Candy.java 一个用来测试的简单 changeFields.java 改变属性值示例 Circle.java 一个用于测试的简单 DumpMethods.java 使用反射机制来获取中的方法 getClassName.java 利用反射机制获取的名字 invokeConstructor.java 利用反射机制调用构造器 invokeMethod.java 利用反射机制调用成员方法 listConstructors.java 利用反射机制获取构造器列表 listFields.java 利用反射机制获取成员属性列表 listMethods.java 利用反射机制获取成员方法列表 loadClass.java 动态装载一个 Shape.java 一个用于测试的简单 useArray1.java 用反射机制使用数组示例1 useArray2.java 用反射机制使用数组示例2 第10章 示例描述:本章学习泛型。 demoBounds.java 演示有界型 demoForceChange.java 演示强制型转换 demoGeneric.java 泛型的使用示例 demoGenIF.java 测试泛型 demoGenMethods.java 泛型方法示例 demoHerit_1.java 泛型继承示例1 demoHerit_2.java 泛型继承示例2 demoRTTI_1.java 泛型型识别示例1 demoRTTI_2.java 泛型型识别示例2 demoWildcard.java 通配符使用示例 demoWipe.java 擦拭示例 derivedGen.java 泛型父继承示例 derivedNonGen.java 非泛型父继承示例 foo.java 一个有错误的 Gen.java 无限界的泛型擦拭 Generic.java 一个简单的泛型 genMethod.java 一个泛型方法 GenStr.java 有限界的泛型擦拭 MinMax.java 泛型接口示例 MyClass.java 实现一个泛型接口 nonGen.java 以非泛型为父 simpGen.java 使用泛型示例 Stats.java 一个有界泛型 superGen.java是泛型 twoGen.java 有两个参数的泛型 第11章 示例描述:本章学习集合。 CompareScore.java 实现比较器接口 demoAlgorithm.java 集合中简单算法示例 demoArrayList.java 链表使用示例 demoBinSearch.java 二分查找示例 demoEnumSet.java 枚举型示例 demoHashMap.java 哈希映射示例 demoHashSet.java 哈希集合示例 demoSort.java 排序示例 demoTreeMap.java 树映射示例 demoTreeSet.java 树集合示例 demoVector.java 向量使用示例 job.java 模拟操作系统的进程调度 monkey.java 用链表求猴子选大王 myCompare.java 自己实现的比较器接口 reverseString.java 利用栈将字符串逆序输出 scheduling.java 模拟操作系统的作业调度过程 showClothValue.java 根据用户输入型号输出相应的价格 Size.java 一个枚举 Student.java 用于记录学生信息的 第12章 示例描述:本章学习型包装器、自动装箱和元数据。 demoAnno.java 给方法做注释示例 demoAutoBox_1.java 自动装/拆箱机制示例1 demoAutoBox_2.java 自动装/拆箱机制示例2 demoAutoBox_3.java 自动装/拆箱机制示例3 demoInteger.java 整数型包装器使用示例 demoSingle.java 单成员注释使用示例 DeprecatedClass.java Deprecated注释示例 InProgress.java Documented元注释使用示例 Marker.java 一个被注释的接口 Meta.java 利用反射机制获取方法的注释 MetaAll.java 获取所有注释示例 MyAnno.java 包含了默认值的注释 MyMarker.java 标记注释使用示例 MySingle.java 单成员注释使用示例 OverrideTester.java Override注释示例 SuppressWarningsTester.java SuppressWarnings注释示例 TODO.java Target元注释使用示例 What.java 显示全部注释 第13章 示例描述:本章学习常用工具类。 checkEmail.java 利用正则表达式检验Email的合法性 currentTime_1.java 显示时间示例程序1 currentTime_2.java 显示时间示例程序2 currentTime_3.java 显示时间示例程序3 DateAndTime.java 用Calendar显示当前的日期和时间 demoFmtTime.java 使用时间格式转换符输出日期和时间 demoFormatter.java Formatter简单输出示例 demoGroup.java 组匹配使用示例 demoMathing.java 匹配方法使用示例 demoMemory.java 内存管理示例程序 demoPattern_1.java Pattern使用示例1 demoPattern_2.java Pattern使用示例2 demoRandom.java 产生随机数序列示例 demoReplace.java 替换方法使用示例 demoRound.java 取整函数使用示例 elapsed.java 计算程序运行时间 exitJVM.java 从子线程中退出虚拟机 getPI.java 利用随机数求π值 progPI.java 利用反正切函数求π的值 runNotepad.java 启动记事本 showCalendar.java 用GregorianCalendar实现一个万年历 showProperties.java 获取环境属性 textToTime.java 从文本串创建日期对象 useLog.java 利用换底公式求任意对数值 第14章 示例描述:本章学习GUI程序设计。 addNodeInJTree.java 在JTree中增加节点示例 AlarmClock.java 小闹钟程序 AWTComponents.htm 为显示AWT组件而编制的网页文件 AWTComponents.java AWT组件示例 AWTFrame.java 用AWT编写的一个简单窗口 CheckAchromatopsiat.java 色盲检测程序 demoBorderLayout.java 边框布局使用示例 demoCardLayout.java 卡片布局使用示例 demoGridBagLayout.java 增强网格布局使用示例 demoGridLayout.java 网格布局使用示例 demoJApplet.htm 运行JApplet的网页文件 demoJApplet.java JApplet使用示例 demoJButton.java 按钮使用示例 demoJCheckbox.java 复选框使用示例 demoJComboBox.java 组合框使用示例 demoJDialog.java 对话框使用示例 demoJFrame.java JFrame简单使用示例 demoJLabel_1.java 图像标签使用示例 demoJLabel_2.java 改变标签上鼠标形状示例 demoJList.java 列表框使用 demoJMenu.java 菜单使用示例 demoJPanel.java 面板使用简单示例 demoJRadioButton.java 单选按钮使用示例 demoJScrollPane_1.java 在JScrollPane创建时添加组件示例 demoJScrollPane_2.java 通过add()方法添加组件示例 demoJSplitPane_1.java 分隔板简单示例1 demoJSplitPane_2.java 分隔板简单示例2 demoJTabbedPane.java 选项板使用示例 demoJTable_1.java 表格使用示例1 demoJTable_2.java 表格使用示例2 demoJTable_3.java 表格使用示例3 demoJTable_4.java 表格使用示例4 demoJTable_5.java 表格使用示例5 demoJText.java 文本框和密码框使用示例 demoJTextArea.java 文本区使用示例 demoJToolBar.java 工具栏使用示例 demoJTree.java 创建JTree示例 ExampleFileFilter.java Sun公司提供的一个文件名过滤器 findDialog.java 查找对话框 fontDialog.java 字体选择对话框 MyTableModel.java实现了一个表格用的模型,取代默认的模型 Notebook.java 记事本 painting_1.java 在面板上画出简单图形示例1 painting_2.java 在面板上画出图形示例2 reMulEvent.java 响应单击按钮事件 showTriDialog.java 用系统预定义的对话框 本章下面还有一些编程要用到的图片和声音文件,不一一列出。 第15章 示例描述:本章学习多媒体程序设计。 building.java 调用另外一个houseCanvas画出一栋房子 CombinerCanvas.java 编写自己的画布,所要显示的图片在此画布上显示 CombinPic.java 合成两幅图片 DrawArcs.java 画椭圆和圆弧示例 DrawLines.java 画直线示例 DrawPoly.java 画多边形示例 DrawRects.java 画矩形示例 fadeInOut.java 淡入淡出效果示例 FillArea.java 填充图形示例 FontsCanvas.java 自行管理字体的画布 GetFonts.java 获取系统中安装的字体示例 GrayFilter.java 自己实现的GrayFilter GrayModel.java 实现一个具备灰度变换功能的Model houseCanvas.java 用直线画出一栋房子 illumination.java 光照特效示例 LightingLiteral.java 字体特效显示示例 ManageFonts.java 自行管理字体示例 mixing.java 显示色彩混合效果 playAudio.java 在Application中播放声音文件 playMP3.java 增强的声音播放文件 playMusic.htm 可以播放背景音乐的一个网页 playMusic.java 利用AudioClip播放声音文件 playVideo.java 媒体播放器编写示例 ResizeOval.java 缩放图形示例 ShowFonts.java 建和使用字体示例 SoundBase.javaJava Sound API封装在一个线程中 TransparencyExample.java 为实现色彩混合效果而定义的画布 viewPic.java 用标签显示图像示例 本章下面还有一些编程要用到的图片和声音文件,不一一列出 第17章 示例描述:本章学习数据库程序设计。 AddressList.java 学生信息管理系统实例 deleteData.java 从数据库中删除记录 FirstExample.mdb 本章用到的数据库文件 insertData.java 向数据库中添加新数据 queryData.java 查询数据示例 updateData.java 修改数据示例 第18章 示例描述:本章学习C/S网络程序设计。 chatClient.java 聊天客户端程序 chatServer.java 聊天服务端程序 Client.java 一个简单的客户端程序 DownFile.java 文件下载示例 GetHostName.java 根据IP查找主机名 GetIP.java 根据域名查找IP地址 GetMyIP.java 获取本机IP地址 MultiServer.java 可以响应多个客户端的服务程序 myBrowser.java 一个简单的浏览器 Server.java 一个简单的服务端程序 ServerThread.java 一个服务端的线程 UDPChat.java 用UDP实现的聊天程序示例 第19章 示例描述:本章学习JSP程序设计。本章所有文件均已经按照Tomcat网站部署的要求放置在各自的目录下,然后打包成ZIP文件。读者只需要解包后放置在某一分区中,然后在Tomcat中配置好入口就可以使用。 下面的文件均放置在ROOT目录下面 ArbitraryObject.java 实现一个事件监听者接口的 calendar.jsp 用JSP实现的日历 count.txt 站点计数器保存的数据文件 counter.jsp 用JSP实现的计数器 faq.java 连接数据库用的JavaBean leaveword.htm 留言板的主页面 Model.java 自己定义的事件源 ModelChangedListener.java 自己定义的一个事件监听者接口 MouseMovedExampleEvent.java 事件状态对象示例 MouseMovedExampleListener.java 鼠标事件监听者接口与事件监听者示例 OurButtonCustomizer.java 实现一个“按钮”Beans的定制器 query.jsp 数据库查询程序 saveword.java 用于保存记录的JavaBean saveword.jsp 后台保存数据的JSP文件 viewword.jsp 查看留言的JSP页面 WeekDayBeanInfo.java 实现BeanInfo接口示例 WeekDayEditor.java 实现属性编辑器接口 下面的文件均存放在chat目录下,是聊天室的组成文件。 chatreg.java 用户注册用到的JavaBean文件 chatreg.jsp 用户注册的前台JSP文件 chatregcof.jsp 用户注册检查JSP文件 chatroom.jsp 聊天室的主页面 confirm.jsp 检查登录是否正确的JSP文件 in.jsp 即将进入聊天室前的提示页面 listuser.jsp 显示聊天室内的所有用户名的JSP文件 logout.jsp 清除用户的相关信息 netchat.jsp 用户进入聊天室的界面文件 showmsg.jsp 显示各个用户所说的话 talk.jsp 用户聊天用的JSP文件 第21章 示例描述:本章是一个IM软件的完整代码。 ChatFrame.java 聊天用的主界面程序 ClientManageFrame.java 是好友管理窗口,也是客户端程序的主窗口 DBConnection.java 连接数据库用的JavaBean FindUserDlg.java 查找好友对话框 FindUserInfo.java 显示用户基本信息 FriendLabel.java 在list列表中显示用户的头像和字符信息 Login.java 用户登录界面 LoginUser.java 定时器的任务,用于定时获取上线的用户的信息 MyInfo_AboutBox.java 显示作者信息 ReceiveOthersDialog.java 当用户收到陌生人的消息时,这个向用户提示 RegisterDialog.java 用户注册面板 Server.java 提供各种服务的 ServerFrame.java 服务器端的主界面 ServerThread.java 与客户端通讯的线程 SetCenter.java 将窗口设置在屏幕中央的 showTimeTask.java 刷新时间的 StartServer.java 启动服务器的主 UpdateDialog.java 更新用户信息的对话框 UserInfo.java 获取用户信息的 UserInfoBean.java 保存用户信息的一个JavaBean
Java范例开发大全(全书源程序),目录如下: 第1篇  Java编程基础 第1章  Java开发环境的搭建(教学视频:9分钟) 2 1.1  理解Java 2 1.2  搭建Java所需环境 3 1.2.1  下载JDK 3 1.2.2  安装JDK 4 1.2.3  配置环境 5 1.2.4  测试JDK配置是否成功 7 实例1  开发第一个Java程序 7 第2章  Java基础型与运算符 实例2  自动提升 9 实例3  自动转换 10 实例4  常用基础型之强制转换 11 2.2  运算符 12 实例5  算术运算符 12 实例6  关系运算符 13 实例7  逻辑运算符 14 实例8  位运算符 15 实例9  移位运算符 16 实例10  转型运算符 17 2.3  其他形式 18 实例11  常量与变量 18 实例12  各种进制的转换 19 实例13  Java中的进制与移位运算符 22 第3章  条件控制语句(教学视频:75分钟) 26 3.1  if控制语句 26 实例14  判断输入的年份是否为闰年 26 实例15  抽奖活动 27 3.2  for语句 28 实例16  小九九乘法表 28 实例17  如何列出素数 29 实例18  Java中的递归 31 实例19  男生女生各多少人 32 实例20  求水仙花数 34 实例21  求任意一个正数的阶乘 35 实例22  求n的n次方 35 实例23  利用for循环输出几何图形 36 实例24  杨辉三角 38 3.3  while语句 39 实例25  求1到100之间的和 39 实例26  存上100元需要多少天 40 实例27  输出100之间的所有偶数 41 实例28  如何判断回文数字 42 3.4  do…while语句 43 实例29  输出100之间的所有奇数 44 实例30  求最大的随机数 44 3.5  switch语句 45 实例31  判断字母分 46 实例32  优良及差 47 实例33  打印任意一年日历 48 实例34  一年四季的划分 51 第2篇  Java数据处理 第4章  异常处理(教学视频:62分钟) 54 4.1  编译时异常 54 实例35  除0发生的算术异常(ArithmeticException) 54 实例36  数组下标越界异常(ArrayIndexOutOfBoundsException) 55 实例37  数组元素型不匹配异常(ArrayStoreException) 56 实例38  强制型转换异常(ClassCastException) 56 实例39  索引越界异常(IndexOutOfBoundsException) 57 实例40  空指针异常(NullPointerException) 58 实例41  数字格式转换异常(NumberFornatException) 59 实例42  字符串索引越界异常(StringIndexOutBounds) 60 实例43  操作错误(UnsupportedOperationException) 60 4.2  运行时异常 61 实例44  找不到指定时发生的异常(ClassNotFoundException) 62 实例45  请求的方法不存在(NoSuchMethodException) 63 4.3  try…catch捕获异常 65 实例46  try…catch捕获异常的实例 66 实例47  try…catch…finally捕获异常的实例 67 实例48  try…catch嵌套捕获异常的实例 68 4.4  throws声明异常 69 实例49  throws声明异常实例一 69 实例50  throws声明异常实例二 70 4.5  throw抛出异常 72 实例51  throw抛出异常实例一 72 实例52  throw抛出异常实例二 73 4.6  自定义异常 74 实例53  自定义异常实例一 74 实例54  自定义异常实例二 75 第5章  数组(教学视频:98分钟) 78 5.1  一维数组 78 实例55  一维数组的创建与使用 78 实例56  按相反的顺序输出 79 实例57  奇偶分组 80 实例58  找宝 81 实例59  寻找最小数 82 实例60  我的位置在哪里 83 实例61  复制数组 85 实例62  插入新元素 86 实例63  数组的合并 87 实例64  去除重复元素 88 实例65  数组求和计算 90 实例66  求最大值、最小值和平均值 91 5.2  二维数组 92 实例67  二维数组的创建与使用 92 实例68  矩阵转置 93 实例69  奇数阶幻
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实例1 开发第一个Java程序 7   第2章 Java基础型与运算符(教学视频:39分钟) 9   2.1 基础型 9   实例2 自动提升 9   实例3 自动转换 10   实例4 常用基础型之强制转换 11   2.2 运算符 12   实例5 算术运算符 12   实例6 关系运算符 13   实例7 逻辑运算符 14   实例8 位运算符 15   实例9 移位运算符 16   实例10 转型运算符 17   2.3 其他形式 18   实例11 常量与变量 18   实例12 各种进制的转换 19   实例13 Java中的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实例14 判断输入的年份是否为闰年 26   实例15 抽奖活动 27   3.2 for语句 28   实例16 小九九乘法表 28   实例17 如何列出素数 29   实例18 Java中的递归 31   实例19 男生女生各多少人 32   实例20 求水仙花数 34   实例21 求任意一个正数的阶乘 35   实例22 求n的n次方 35   实例23 利用for循环输出几何图形 36   实例24 杨辉三角 38   3.3 while语句 39   实例25 求1到100之间的和 39   实例26 存上100元需要多少天 40   实例27 输出100之间的所有偶数 41   实例28 如何判断回文数字 42   3.4 do…while语句 43   实例29 输出100之间的所有奇数 44   实例30 求最大的随机数 44   3.5 switch语句 45   实例31 判断字母分 46   实例32 优良及差 47   实例33 打印任意一年日历 48   实例34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实例35 除0发生的算术异常(ArithmeticException) 54   实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实例37 数组元素型不匹配异常(ArrayStoreException) 56   实例38 强制型转换异常(ClassCastException) 56   实例39 索引越界异常(IndexOutOfBoundsException) 57   实例40 空指针异常(NullPointerException) 58   实例41 数字格式转换异常(NumberFornatException) 59   实例42 字符串索引越界异常(StringIndexOutBounds) 60   实例43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实例44 找不到指定时发生的异常(ClassNotFoundException) 62   实例45 请求的方法不存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实例46 try…catch捕获异常的实例 66   实例47 try…catch…finally捕获异常的实例 67   实例48 try…catch嵌套捕获异常的实例 68   4.4 throws声明异常 69   实例49 throws声明异常实例一 69   实例50 throws声明异常实例二 70   4.5 throw抛出异常 72   实例51 throw抛出异常实例一 72   实例52 throw抛出异常实例二 73   4.6 自定义异常 74   实例53 自定义异常实例一 74   实例54 自定义异常实例二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实例55 一
第1篇 Java编程基础   第1章 Java开发环境的搭建(教学视频:9分钟) 2   1.1 理解Java 2   1.2 搭建Java所需环境 3   1.2.1 下载JDK 3   1.2.2 安装JDK 4   1.2.3 配置环境 5   1.2.4 测试JDK配置是否成功 7   实例1 开发第一个Java程序 7   第2章 Java基础型与运算符(教学视频:39分钟) 9   2.1 基础型 9   实例2 自动提升 9   实例3 自动转换 10   实例4 常用基础型之强制转换 11   2.2 运算符 12   实例5 算术运算符 12   实例6 关系运算符 13   实例7 逻辑运算符 14   实例8 位运算符 15   实例9 移位运算符 16   实例10 转型运算符 17   2.3 其他形式 18   实例11 常量与变量 18   实例12 各种进制的转换 19   实例13 Java中的进制与移位运算符 22   第3章 条件控制语句(教学视频:75分钟) 26   3.1 if控制语句 26   实例14 判断输入的年份是否为闰年 26   实例15 抽奖活动 27   3.2 for语句 28   实例16 小九九乘法表 28   实例17 如何列出素数 29   实例18 Java中的递归 31   实例19 男生女生各多少人 32   实例20 求水仙花数 34   实例21 求任意一个正数的阶乘 35   实例22 求n的n次方 35   实例23 利用for循环输出几何图形 36   实例24 杨辉三角 38   3.3 while语句 39   实例25 求1到100之间的和 39   实例26 存上100元需要多少天 40   实例27 输出100之间的所有偶数 41   实例28 如何判断回文数字 42   3.4 do…while语句 43   实例29 输出100之间的所有奇数 44   实例30 求最大的随机数 44   3.5 switch语句 45   实例31 判断字母分 46   实例32 优良及差 47   实例33 打印任意一年日历 48   实例34 一年四季的划分 51   第2篇 Java数据处理   第4章 异常处理(教学视频:62分钟) 54   4.1 编译时异常 54   实例35 除0发生的算术异常(ArithmeticException) 54   实例36 数组下标越界异常(ArrayIndexOutOfBoundsException) 55   实例37 数组元素型不匹配异常(ArrayStoreException) 56   实例38 强制型转换异常(ClassCastException) 56   实例39 索引越界异常(IndexOutOfBoundsException) 57   实例40 空指针异常(NullPointerException) 58   实例41 数字格式转换异常(NumberFornatException) 59   实例42 字符串索引越界异常(StringIndexOutBounds) 60   实例43 操作错误(UnsupportedOperationException) 60   4.2 运行时异常 61   实例44 找不到指定时发生的异常(ClassNotFoundException) 62   实例45 请求的方法不存在(NoSuchMethodException) 63   4.3 try…catch捕获异常 65   实例46 try…catch捕获异常的实例 66   实例47 try…catch…finally捕获异常的实例 67   实例48 try…catch嵌套捕获异常的实例 68   4.4 throws声明异常 69   实例49 throws声明异常实例一 69   实例50 throws声明异常实例二 70   4.5 throw抛出异常 72   实例51 throw抛出异常实例一 72   实例52 throw抛出异常实例二 73   4.6 自定义异常 74   实例53 自定义异常实例一 74   实例54 自定义异常实例二 75   第5章 数组(教学视频:98分钟) 78   5.1 一维数组 78   实例55 一维数组的创建与使用 78   实例56 按相反的顺序输出 79   实例57 奇偶分组 80   实例58 找宝 81   实例59 寻找最小数 82   实例60 我的位置在哪里 83   实例61 复制数组 85   实例62 插入新元素 86   实例63 数组的合并 87   实例64 去除重复元素 88   实例65 数组求和计算 90   实例66 求最大值、最小值和平均值 91   5.2 二维数组 92   实例67 二维数组的创建与使用 92   实例68 矩阵转置 93   实例69 奇数阶幻方 94   实例70 求方阵对角线之和 96   实例71 矩阵的加法 97   实例72 矩阵的减法 98   实例73 快递报价单 99   5.3 数组的排序 101   实例74 冒泡排序法 102   实例75 数组递增排序 103   实例76 部分数组递增排序 103   实例77 选择排序法 104   实例78 快速排序法 106   第6章 字符串(教学视频:138分钟) 108   6.1 字符串String 108   实例79 创建字符串 108   实例80 如何使用charAt()方法计算重复字符 109   实例81 按字母顺序比较大小 110   实例82 首尾相连 111   实例83 字符串间的比较 112   实例84 字符集的解码方法 113   实例85 寻找指定字符第一次出现的位置 114   实例86 寻找指定字符最后出现的位置 115   实例87 我究竟有多长 116   实例88 替换指定的字符 117   实例89 分割字符串 117   实例90 如何使用substring()方法截取子串 118   实例91 分解字符串 119   实例92 字母大小写转换 120   实例93 去除多余的空白 120   实例94 原始数组型的String形式 121   实例95 Java合法标识符 122   实例96 显示一周各星期的名称 123   实例97 构造空心方框 124   实例98 这一天是星期几 125   实例99 大小写互换 127   实例100 输出指定范围的素数 128   实例101 我出现了几次 129   实例102 算术表达式求值器 129   实例103 字符串对齐调整器 137   实例104 字符串的加密 139   实例105 使用正则表达式验证电话号码的格式 141   6.2 字符串缓存StringBuffer 143   实例106 创建字符串缓存 143   实例107 提取单个字符 144   实例108 给指定字符赋值 145   实例109 插入新的字符 146   实例110 插入新的字符串 146   实例111 获取字符串的子串 147   实例112 删除指定的字符 148   实例113 倒置字符串 149   实例114 去除重复字符 149   实例115 检查是否是回文 151   第7章 输入/输出流(教学视频:116分钟) 152   7.1 文件和目录 152   实例116 显示文件的基本信息 152   实例117 显示目录的基本信息 153   实例118 在指定的目录下创建单个文件 156   实例119 在指定的目录下创建多个临时文件 158   实例120 删除指定目录下的文件 160   实例121 移动指定目录下的文件 163   实例122 文件搜索引挚 167   7.2 字节流 169   实例123 复制指定目录下的文件 170   实例124 显示文件中的内容 173   实例125 将数据保存到指定的文件中 175   实例126 将由键盘中录入的信息保存到文件中 176   实例127 一个文件变成多个小文件 178   实例128 多个小文件合成一个文件 181   实例129 统计指定文件中的字符个数 183   实例130 对象的序列化与反序列化 185   实例131 同时显示多个文件 187   实例132 生成zip压缩文件 189   实例133 解压缩zip文件 192   实例134 生成Excel文件 194   实例135 读取Excel文件中的内容 198   实例136 生成PDF文件 199   实例137 读取PDF文件中的内容 203   实例138 用iText生成Word文件 205   实例139 利用POI读取Word文件中的内容 208   7.3 字符流 209   实例140 按顺序创建文件 210   实例141 按顺序读取文件 211   实例142 追加文件内容 211   实例143 只显示文件中指定的字符 214   实例144 读取jar包文件 215   实例145 文件的加密/解密操作 217   实例146 复制图片 219   实例147 随机读写Java文件 221   第3篇 Java面向对象编程   第8章 面向对象(教学视频:72分钟) 226   8.1 226   实例148 简单的通讯录 226   实例149 简单的长度单位转换 227   实例150 卡车和卡车司机之间的关系 229   实例151 双色球 231   8.2 成员变量和方法 236   实例152 使用作为成员变量 236   实例153 构造方法 237   实例154 使用静态成员变量计算内存中实例化的对象数目 239   实例155 实现加减乘除的方法 240   8.3 面向对象的设计模式 241   实例156 Singleton单例模式 242   实例157 招聘(简单工厂模式) 243   实例158 同学聚会(工厂方法模式) 244   实例159 图书展(抽象工厂模式) 246   实例160 汽车适配器(Adapter适配器模式) 248   8.4 垃圾回收 250   实例161 垃圾回收的机制 250   第9章 面向对象的四大特征(教学视频:65分钟) 252   9.1 抽象 252   实例162 求自定义几何图形的面积和周长 252   实例163 使用抽象方法实现的支票夹 254   9.2 封装 257   实例164 世界小姐参赛资格 257   实例165 自定义复数 261   9.3 继承 264   实例166 轿车与本田的关系 264   实例167 继承关系的加载顺序 266   实例168 如何访问同名的方法或变量 268   实例169 super()方法的使用 271   实例170 this方法的使用 274   实例171 一张考试成绩单 275   实例172 银行自动存取一体机 278   9.4 多态 284   实例173 饮食文化 284   实例174 使用构造方法的重载计算课程的GPA值 287   第10章 内部与接口(教学视频:41分钟) 290   10.1 成员内部 290   实例175 成员内部的使用规范 290   实例176 猜谜 292   10.2 方法内部 294   实例177 局部内部的使用规范 294   实例178 奖学金的评分标准 295   10.3 匿名内部 297   实例179 匿名内部的使用规范 297   实例180 电话与移动电话 299   10.4 静态内部 300   实例181 静态内部的使用规范 300   实例182 苹果的来历 302   10.5 接口 303   实例183 求n的幂数与倍数 304   实例184 商品订单 306   实例185 多功能排序 310   第11章 Java常用(教学视频:66分钟) 315   11.1 数学Math 315   实例186 求圆周率∏值 315   实例187 求对数值 316   实例188 使用取整函数 317   11.2 Random的使用 318   实例189 随机数 319   实例190 验证码 322   11.3 Date和Calendar 324   实例191 使用Date获取系统的当前时间 324   实例192 使用DateFormat获取系统的当前时间 325   实例193 使用GregorianCalendar获取系统的当前时间 326   实例194 使用SimpleDateFormat获取系统的当前时间 329   实例195 显示某年某月某一周的信息 330   实例196 显示某年某月的信息 332   实例197 时间的设置与获取 334   实例198 万年历(农历和阳历的互换) 337   11.4 Formatter的使用 347   实例199 时间格式转换符的使用 347   实例200 数据格式转换符的使用 349   11.5 System的使用 351   实例201 记录程序执行的时间 351   实例202 程序的退出 352   实例203 获取程序运行环境的信息 353   第4篇 Java高级开发技术   第12章 集合(教学视频:45分钟) 358   12.1 Set 358   实例204 利用HashSet删除学生 358   实例205 不重复的随机数序列 360   实例206 运用映射的相关(Map) 363   实例207 运用集的相关(Set) 365   12.2 List 368   实例208 增加所需的元素 368   实例209 Iterator迭代器的使用 370   实例210 谁是幸运儿 371   实例211 自定义Queue队列 373   实例212 List、Set与Array之间的相互转换 375   实例213 二分查找法的实现方法 377   实例214 模拟操作系统的进程调度 379   实例215 利用栈将字符串逆序输出 381   实例216 动态的数组链表 382   实例217 你能猜出鱼是谁的宠物吗? 387   实例218 使用Collections对List的排序操作 393   实例219 LinkedList的添加删除操作 395   实例220 运用Vector 397   实例221 改变Properties文件中的键值 399   第13章 多线程编程(教学视频:121分钟) 405   13.1 多线程的五种基本状态 405   实例222 启动线程 405   实例223 参赛者的比赛生活(线程休眠唤醒) 407   实例224 资源搜索并下载(线程等待和通报) 410   实例225 模拟淘宝购物买卖双方交易问题 412   实例226 携子之手 与子偕老(join) 415   实例227 线程让步(Yield) 417   实例228 会走动的钟(多线程) 419   实例229 变形金刚中的守护神(守护线程) 424   实例230 查看JVM中所有的线程的活动状况 426   实例231 模仿网络快车下载工具下载文件 428   13.2 多线程的同步与互斥 436   实例232 多线程同步方法的实例 436   实例233 ATM存取一体机(线程同步互斥) 437   实例234 我的钱哪里去了 440   实例235 门锁打不开了(死锁) 444   实例236 门锁终于被打开了(解决死锁) 446   实例237 一个死锁的例子 448   13.3 线程的优先级 451   实例238 排座位(线程优先级) 451   实例239 赛车 454   13.4 定时器 458   实例240 定时器(Timer) 458   实例241 数字定时器 459   13.5 线程连接池 462   实例242 手术任务(线程池) 462   实例243 模拟人工服务台(线程连接池) 466   13.6 线程应用实例 471   实例244 下雪的村庄 472   实例245 小飞侠 474   实例246 飞流直下 477   实例247 多线程断点续传 479   实例248 滚动的珠子 485   实例249 余额查询 489   实例250 滚动的文字 492   实例251 漂浮效果 495   实例252 监视内存的使用情况 499   实例253 璀璨的星空 501   实例254 银行和超市业务的模拟 505   第14章 泛型(教学视频:43分钟) 511   14.1 泛型基础 511   实例255 一个关于泛型的简单例子 511   实例256 带两个型参数的泛型 513   实例257 有界型程序示例 514   实例258 通配符使用示例 515   实例259 泛型方法使用示例 516   实例260 泛型接口示例 518   实例261 泛型实现坐标打印 519   14.2 泛型的继承 521   实例262 继承泛型示例 521   实例263 继承非泛型示例 522   实例264 泛型型识别示例 523   实例265 强制型转换示例 525   14.3 擦拭 526   实例266 无限界的擦拭 526   实例267 有限界的擦拭 527   14.4 集合泛型 528   实例268 Hashtable的泛型化 528   实例269 多功能画笔 529   第15章 网络编程(教学视频:52分钟) 534   15.1 IP地址 534   实例270 获取计算机名与IP地址 534   实例271 获取网址的IP地址 535   实例272 判断两个网址的主机名是否一样 536   实例273 测试IP的型 537   实例274 查找主机 538   实例275 主机所支持的协议 539   15.2 URL的使用 540   实例276 使用URL访问网页 540   实例277 URL的组成部分 541   实例278 通过指定的URL可以获取网页的源代码 542   实例279 一对多通信模式 544   实例280 自制浏览器 549   实例281 扫描TCP端口 551   实例282 TCP协议服务器 552   实例283 TCP协议客户机 553   实例284 Socket连接信息 555   实例285 Echo服务的客户端是如何实现的? 556   实例286 检测本机的服务端口 558   实例287 下载的页面不丢失链接 559   实例288 如何对网页进行重新定向 560   实例289 在Internet上搜索对象 560   实例290 LAN使用代理服务器 562   实例291 BBS论坛服务器端 567   实例292 UDP报文的发送与接收 579   第16章 数据库技术(教学视频:38分钟) 583   实例293 加载JDBC驱动程序 583   实例294 通过JDBC对数据库进行查询 584   实例295 数据库更新 585   实例296 获取数据库的基本信息 586   实例297 获取数据库对SQL支持的信息 589   实例298 处理访问数据库出现的常见异常情况 591   实例299 在Servlet中连接数据库 593   实例300 数据分页显示 595   实例301 批处理 601   实例302 事物处理 604   实例303 调用存储过程 608   实例304 连接ODBC数据库 611   实例305 数据库中图片文件的存取 614   第17章 界面设计--Swing(教学视频:88分钟) 618   17.1 Swing组件介绍及应用 618   实例306 JFrame框架的应用 618   实例307 Border的使用 619   实例308 使用Icon组件显示一张图片 620   实例309 Icon接口的应用 621   实例310 JLabel组件 622   实例311 Icon应用到JLabel中 623   实例312 JButton的使用 624   实例313 在JButton上设置快捷键 625   实例314 设置默认按钮 626   实例315 使用JCheckBox组件 627   实例316 JCheckBox事件处理 629   实例317 JRadioButton的使用 630   实例318 JComboBox的使用 632   实例319 利用ComboModel构造JComboBox 633   实例320 DefaultComboBoxModel的使用 635   实例321 建立有图像的JComboBox 636   实例322 建立可自行输入的JComboBox 637   实例323 JComboBox的事件处理 638   实例324 JTextField组件的使用 640   实例325 使用JTextArea组件 641   17.2 页面布局及事件监听 642   实例326 BorderLayout版面布局 643   实例327 FlowLayout布局管理 644   实例328 应用GridLayout设计版面 645   实例329 如何使用BoxLayout布局管理器 647   实例330 使用ActionEvent监听组件 648   实例331 使用WindowAdapter实现鼠标事件 649   实例332 使用MouseMotionListener监听鼠标 650   实例333 使用KeyListener监听键盘 652   17.3 组件的综合应用 654   实例334 计算器 654   实例335 创建树菜单 657   实例336 在节点中显示详细信息 658   第18章 Applet小应用程序(教学视频:39分钟) 662   实例337 不断变大的文字 662   实例338 灯光扫描的效果 664   实例339 字体逐渐展开的效果 666   实例340 飞舞的气球 668   实例341 逐渐浮现的图片 671   实例342 火焰边框的特效 674   实例343 局部放大效果 677   实例344 水波荡漾的效果 679   实例345 漫天飞花 682   实例346 动感影集 685   实例347 彩虹字 688   实例348 多功能按键 690   第19章 多媒体与图像处理(教学视频:51分钟) 694   19.1 多媒体 694   实例349 测试音频播放器 694   实例350 测试视频播放器 696   实例351 视频反色效果 698   实例352 实现一个录音机 703   实例353 建立一个调色板 707   19.2 图像处理 710   实例354 在计算机内存中创建一个图像 710   实例355 会移动的图像 712   实例356 将图片进行180度旋转 714   实例357 处理图像的明暗度 716   实例358 如何将彩色图转化为灰度图 721   实例359 锐化和模糊图像 724   实例360 显示一个图像的轮廓 727   实例361 如何放大及拉伸图像 730   第20章 JSP开发技术(教学视频:62分钟) 735   20.1 JSP基础 735   实例362 网页版的9×9乘法口诀 735   实例363 Java Servlet小程序 737   实例364 Servlet对表单的处理过程 738   实例365 获取/修改JavaBeans中的内容 741   20.2 JSP程序设计 743   实例366 喜连大三元 743   实例367 运气对对碰 748   实例368 文字样式统计器 752   实例369 图形统计器 754   20.3 垃圾信息投诉站 756   实例370 创建投诉表单 756   实例371 保存投诉的内容 760   实例372 实现投诉站的后台操作 762   实例373 取消投诉内容 764   实例374 站内信 767   20.4 网站在线评估系统 769   实例375 创建评估问卷 769   实例376 实现评估的后台操作 771   实例377 查看评估结果 773   第5篇 Java综合案例   第21章 模拟服务器与客户端之间的通信(教学视频:13分钟) 778   21.1 实例介绍 778   21.2 框架设计 779   21.2.1 项目的总体结构 779   21.2.2 搭建开发环境 779   21.2.3 确定项目工程目录 779   21.3 公用模块设计 780   21.4 客户端程序 780   21.4.1 客户端的工作流程 780   21.4.2 编写客户端的源程序 781   21.4.3 客户端源的程序解读 783   21.5 服务器端程序 785   21.5.1 服务器端的工作流程 785   21.5.2 编写服务器端的源程序 785   21.5.3 服务器端的源程序解读 788   21.6 小结 790   第22章 书店管理系统(教学视频:56分钟) 791   22.1 实例分析 791   22.2 系统设计 792   22.2.1 结构分析 792   22.2.2 搭建环境 792   22.2.3 创建目录 793   22.3 数据库设计 793   22.4 公用模块设计 795   22.4.1 data包中的 795   22.4.2 util包中的 798   22.5 用户登录模块 800   22.6 系统主界面 802   22.7 基础维护模块 804   22.7.1 图书维护 804   22.7.2 用户维护 811   22.8 借还管理模块 818   22.8.1 借书 818   22.8.2 还书 821   22.9 查询管理模块 824   22.9.1 图书查询 824   22.9.2 用户查询 826   22.10 系统管理模块 829   22.11 小结 831

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值