- 博客(65)
- 资源 (12)
- 收藏
- 关注
原创 自定义一个类包含一个功能和readLine一致的方法来模拟BufferedReader
/* 明白了BufferedReader类中特有方法readLine的原理后, 可以自定义一个类包含一个功能和readLine一致的方法, 来模拟一下BufferedReader。 */import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;class M
2015-11-26 14:23:32 782
原创 通过缓冲区进行文件复制的操作
/* 通过缓冲区复制文件。 */import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class CopyTextByBuf { publ
2015-11-25 22:21:59 1419
原创 IO流缓冲区写入操作-----BufferedWriter
/* 缓冲区的出现是为了提高流的操作效率而出现的。 所以在创建缓冲区之前,必须要现有流对象。 该缓冲区中提供了一个跨平台的换行符 newLine(); 在windows操作平台,换行要用 \r\n 在linux操作平台,换行只需要 \n newLine() 可以通用。 */import java.io.BufferedWriter;import java.io.Fi
2015-11-25 21:33:33 620
原创 拷贝文本文件的两种方式
/* 将C盘的一个文本文件复制到D盘。 复制原理: 其实就是将C盘下的文件数据存储到D盘的一个文件中。 步骤: 1、在D盘创建一个文件,用于存储C盘文件中的数据。 2、定义读取流和C盘文件关联。 3、通过不断的读写完成数据存储。 4、关闭资源。 */import java.io.FileReader;import java.io.FileWriter;import j
2015-11-25 20:17:19 1415
原创 IO流文本文件读取方式二---通过字符数组进行读取
/* 第二种方式:通过字符数组进行读取 */import java.io.FileReader;import java.io.IOException;public class FileReaderDemo2 { public static void main(String[] args) { FileReader fr=null; try{ fr=new FileRe
2015-11-25 19:31:58 1481
原创 IO流---文本文件读取方式一
import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class FileReaderDemo { public static void main(String[] args) { //创建一个文件读取流对象,和指定名称的文件相关联。 //
2015-11-25 19:06:55 1179
原创 IO流对文件进行续写
/* 对已有文件进行续写 */import java.io.FileWriter;import java.io.IOException;public class FileWriterDemo3 { public static void main(String[] args) { FileWriter fw=null; try{ //传递一个true参数,代表不覆盖已
2015-11-25 11:54:41 1161
原创 IO异常的标准处理方式
/* IO异常的处理方式。 */import java.io.FileWriter;import java.io.IOException;public class FileWriterDemo2 { public static void main(String[] args) { FileWriter fw=null; try{ fw=new FileWriter("
2015-11-25 11:31:16 3611
原创 IO流中的字符流FileWriter
/* 字符流和字节流: 字节流两个基类: InputStream OutputStream 字符流两个基类: Reader Writer 先学习一下字符流的特点。 既然IO流适用于操作数据的,那么数据最常见的体现形式是文件。 需求:在硬盘上创建一个文件并写入一些数据。 找到一个专门用于操作文件的writer子类对象---FileWriter,后缀是父类
2015-11-25 11:15:34 353
原创 API中的对象Runtime
/* Runtime对象: 该类并没有提供构造函数。 说明不可以new对象,那么会直接想到该类中的方法都是静态的。 发现该类中还有非静态方法。 说明该类肯定会提供了方法用于获取本类对象,而且该方法时静态的,并且返回值是本类类型。由这个特点 可以看出该类使用了单例设计模式完成,保证了对象的唯一性。 该方法是static Runtime getRuntime(); */import
2015-11-24 15:20:30 334
原创 API中的System对象
/* System:类中的方法和属性都是静态的。 out:标准输出,默认是控制台。 in:标准输入,默认是键盘。 描述系统一些信息。 获取系统属性信息:Properties getProperties(); */import java.util.Properties;public class SystemDemo { public static void main(String
2015-11-24 14:40:09 375
原创 Arrays======数组变集合
import java.util.Arrays;import java.util.List;/* Arrays:用于操作数组的工具类。 里面都是静态方法。asList:强数组变成List集合。 */public class ArraysDemo { public static void main(String[] args) { int arr[]={2,4,5,6,4,5,
2015-11-24 12:16:43 458
原创 Collections的一些方法(replaceAll---替换指定元素--fill---替换所有元素--reverse---实现反转)
/* Collections的一些方法(replaceAll---替换指定元素--fill---替换所有元素--reverse---实现反转) */import java.util.ArrayList;import java.util.Collections;public class CollectionsDemo2 { public static void main(String
2015-11-24 11:44:54 4380
原创 集合框架的工具类----Collections
/* *集合框架的工具类 *Collections */import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;public class CollectionsDemo { public static void main(String[] args) { sor
2015-11-24 11:20:34 377
原创 获取字符串中字母出现的个数
import java.util.*;/* 练习: "sdfgzxcvasdfxcvdf"获取该字符串中的字母出现的次数。 希望打印结果:a(1)c(2)...... 通过结果发现:每一个字母都有对应的次数。 说明字母和次数之间都有映射关系。 注意:当发现有映射关系时,可以选择map集合, 因为Map集合中存放的就是映射关系。 思路: 1、将字符串转换为字符数组,因为
2015-11-22 16:48:02 1945
原创 HashMap获取学生信息
/* 每一个学生都有对应归属地。 学生Student 地址 String。 学生属性:姓名,年龄。 注意:姓名和年龄相同的视为同一个学生。 保证学生的唯一性。 步骤: 1、描述学生。 2、定义map容器,将学生作为键,地址作为值,存入。 3、获取map集合中的元素。 */import java.util.HashMap;import java.util.Iterator
2015-11-22 15:54:21 3324
原创 Map集合中的两种取出方式keySet和entrySet
/* map集合中的两种取出方式: 1、Set keySet:将map集合中所有的键存入到Set集合,因为Set具备迭代器。 所有可用迭代方式取出所有的键,再根据get方法,获取每一个键对应的值。 Map集合的取出原理:将Map集合转成Set集合,再通过迭代器取出。 2、 Set> entrySet:将Map集合中的映射关系存入到Set集合中,二这个关系的数据
2015-11-21 16:48:02 2928
原创 Map集合中的方法(添加、删除、判断、获取)
/* Map集合:该集合存储键(K)值(V)对,一对一往里存,而且要保证键的唯一性。 1、添加 put(K key,V value) putAll(Map m) 2、删除 clear() remove(Object key) 3、判断 containsValue(Object value) containsKey(Object key) is
2015-11-21 16:05:24 38435 1
原创 泛型限定二---用父类定义比较器,用于子类,减少代码,节约空间
/* 定义比较器的时候可以定义父类的比较器,这样其子类对象都可以调用,避免了要根据不同的对象定义不同的比较器。 */import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;class compare implements Comparator{ public int compare
2015-11-21 14:54:31 766
原创 集合框架---泛型限定(上限和下限)
/* ? 通配符,也可以理解为占位符。 泛型的限定: 1、 ? extends E:可以接收E类型或者E的子类型, 上限。 2、 ? super E:可以接收E类型或者E的父类型。 下限。 */import java.util.ArrayList;import java.util.Iterator;public class GenericDemo1 { pub
2015-11-21 14:52:01 648
原创 集合框架------泛型方法
/* 使用泛型的好处: 1、将运行时期出现的问题ClassCastException,转移到了编译时期, 方便于程序员解决问题你,让运行时期的问题减少,安全。 2、避免了强制转换的麻烦。 泛型格式: 通过<>来定义要操作的引用数据类型。 通常在集合框架中常见。 */ class Demo{ public void show(T t){ System.out.
2015-11-20 22:36:20 461
原创 TreeSet按照字符串的长度排序(用比较器)
/* 按照字符串的长度排序。 字符串本身具备比较性,但是它的比较方式不是所需要的。 这时就只能使用比较器。 */import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;public class TreeSetExercise { public static void mai
2015-11-20 17:55:40 2152
原创 实现Comparator方式排序
import java.util.Comparator;import java.util.Iterator;import java.util.TreeSet;public class TreetDemo { public static void main(String[] args) { TreeSet ts=new TreeSet(new MyCompare()); ts.a
2015-11-20 17:26:32 392
原创 集合框架---TreeSet存储自定义对象
/* |---Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复。 |---HashSet:底层数据结构是哈希表。 HashSet是如何保证元素唯一性的呢? 是通过元素的两个方法,hashCode和equals来完成。 如果元素的hashCode值相同,才会判断equals是否为true。 如果元素的hashCode值不同,才会调用equals。
2015-11-20 15:19:57 407
原创 ArrayList联系二------自定义对象,然后去除重复元素
/* 将自定义对象作为元素存到ArrayList集合中,并去除重复元素。 比如:存入人对象,同姓名,同年龄视为同一个人,为重复元素。 思路: 1、对人描述,将数据封装进对象。 2、定义容器将人存入。 3、去除重复的元素并取出。 List集合判断元素是否相同,依据的元素的equals方法。 */import java.util.ArrayList;import jav
2015-11-20 10:23:04 471
原创 去除ArrayList中的重复元素
/* 去除ArrayList中的重复元素 */import java.util.ArrayList;import java.util.Iterator;public class ArrayListExercise { public static ArrayList SingleElement(ArrayList li) { //定义一个临时容器 ArrayList ne
2015-11-20 09:30:29 601
原创 集合框架---使用LinkedList模拟一个堆栈或者队列数据结构
/* 使用LinkedList模拟一个堆栈或者队列数据结构 1、堆栈:先进后出。 2、队列:先进先出。 */import java.util.LinkedList;public class LinkedListExercise { public static void main(String[] args) { DuiLie dl=new DuiLie(); dl.m
2015-11-19 16:54:50 620
原创 集合框架-----LinkedList中的一些特有方法
/* LinkedList中的一些特有方法: addFirst(); addLast(); getFirst(); 获取元素 getLast(); removeFirst(); 获取并删除元素 removeLast(); */import java.util.LinkedList;public class LinkedListDemo { public
2015-11-19 15:21:39 1039
原创 集合框架-----Vector中的枚举
/* 枚举就是Vector特有的取出方式。 枚举和迭代器很相似,其实两者是一样的。 因为枚举的名称和方法的名称都过长,所以被迭代取代了。 */import java.util.Enumeration;import java.util.Vector;public class VectorDemo { public static void main(String[] args) {
2015-11-19 15:02:24 958
原创 集合框架(ListIterator)
/* Collection |---List:元素是有序的,并且元素可以重复,因为该集合体系有索引。 |---ArrayList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删稍慢。线程不同步。 |---LinkedList:底层的数据结构使用的是链表数据结构。特点:增删速度很快,查询稍慢。 |---Vector:底层是数组数据结构。线程同步,都较慢,出
2015-11-19 14:47:56 394
原创 集合框架(List集合的一些特有方法)
/* Collection: |-----List:元素是有序的,元素可以重复,应为该集合体系有索引。 |-----Set:元素是无序的,不可以重复。 List: 特有方法:凡是可以操作角标的方法都是该体系特有的方法。 增 add(index,element); addAll(index,Collection); 删 remove(index);
2015-11-18 22:14:08 1660
原创 集合框架(增加,删除,判断元素以及迭代器)
/* 1、add方法的参数类型是Object,以便于接收任意类型对象。 2、集合中存储的都是对象的引用(地址) 迭代器其实就是集合取出元素的方式 把取出方式定义在集合内部,这样取出方式就可以直接访问集合内部元素。 那么取出方式也就被定义成了内部类。 而每一个容器的数据结构不同,所以取出的动作细节也不一样,但是都具有共性内容。 那么这些内部类都符合一个规则,该规则是Ite
2015-11-18 21:43:02 623
原创 获取一个字符串在一个长字符串中出现的次数
/* 获取一个字符串 kk 在一个长字符串中出现的次数 思路: 1、定义一个计数器 2、获取 kk 第一次出现的位置。 3、从第一次出现位置后剩余的字符串中继续获取 kk 出现的位置, 每获取一次就计数一次。 4当获取不到时,计数完成,返回计数器的值。 */public class Exercise2 { //方式一 public static in
2015-11-18 20:00:49 767
原创 字符串反转
/* 将一个字符串进行反转,将字符串中指定部分进行反转。 思路: 1、曾经想学习过的对数组的元素进行反转。 2、将字符串变成数组,对数组进行反转。 3、将反转后的字符数组变成字符串。 4、只要将反转的部分的开始和结束位置作为参数传递即可。 */public class Exercise1 { public static void main(String[] args)
2015-11-18 19:23:45 462
原创 基本数据类型对象包装类
/* 基本数据类型包装类。 数据类型 引用数据类型(对象) byte Byte short short int Integer long Long boolean Boolean float Float double Double char Character 基本数据类型对象包装类的最常见作用: 就是用于基本数据类型和字符串之
2015-11-18 12:47:10 558
原创 JAVA中String字符串的各种基本操作
/* String类适用于描述字符串事物。 那么它就提供了多个方法对字符串进行操作。 常用的方法如下: 1、获取: 1.1 字符串中包含的字符数,也就是字符串的长度。 int length():获取长度。 1.2 根据位置获取该位置上的某个字符。 char charAt(int index):返回指定索引处的char值。 1.3 根据字符获取该字符在字符串的
2015-11-17 22:35:54 30793 8
原创 多线程(join方法)
/* join 当A线程执行到了B线程的join方法时,A就会等待,等B线程都执行完,A线程才会执行。 join可以用来临时加入线程执行。 */class DEMO implements Runnable{ public void run() { for(int x=0;x<5;x++) { System.out.println(Thread.currentTh
2015-11-15 14:09:02 485
原创 线程间通讯------生产者与消费者(JDK升级版)
/* JDK1.5中提供了多线程升级解决方案。 将同步synchronized替换成现实Lock操作。 将Object中的wait notify notifyAll 替换成Condition对象 在该事例中,实现了本方只唤醒对方的操作。 */import java.util.concurrent.locks.Condition;import java.util.concurre
2015-11-15 13:05:38 327
原创 线程间通讯-----生产者与消费者(多线程)
/* 从单线程变成多线程,想着本来程序里的判断语句是 if,而if只判断一次, 想着换成while(flag),结果会出现生产一个商品,消费两个,或者生产两个消费一个的情况, 后来才发现把程序中的 notify()全部变成notifyAll()就解决了这个问题。 */public class ProducerConsumerDemo2 { public static void m
2015-11-15 11:45:29 397
Java面试进阶版笔记
2022-04-09
springMVC开发所需jar包
2017-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人