8月1日

练习:

合理覆盖Cat数据类型的,equals()方法

Cat.java

1 覆盖hashCode()

返回的整型值是唯一的

int    hashCode()

用法:

一般使用String提供hashCode的编码+基本数据类型

hashCode 生成原则:

1 当对象内容一致时,生成的hashCode必须是一样的

2 当对象内容不致时,生成的hashCode必须是唯一的

HashtableTest1.java

hashtable 中的key如果是自定义数据类型,那么它必须覆盖equals()和hashCode()

//考试

1 hashCode()

ArrayList *

Hashtable *

2 其他的存储方式:

LinkedList     //特点:可以删除指定位置数据

练习:

向LinkedList添加:

A

B

C

D

打印出时为: DCBA

LinkedListTest.java

练习(MyQueueTest.java):

模拟一个队伍(队列),去买票一个动作

思路:

1 模拟一个队列(add)

2 模拟出列(removeXXXX)

//先买票的人,先出队列——先入先出

队伍是一个特殊数据结构,

特点:FIFO(先入先出)

HashSet        //不允许重复元素

集合框架类的特点:

1 Collection 接口是一组允许重复的对象

2 Set接口继承Collection,但不允许重复使用自己内部的一个排列机制

3 List接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。

4 Map接口是一组成对的键——值对象,即所持有的是key—value pairs。Map中不能有重复的key。拥有自己内部机制。

5 在集合框架类中有两大类接口:

5.1 Collection

5.2 Map

注意:集合框架类——容器,容器中存储引用数据类型

继承关系:

接口 实现 历史集合类型

Set HashSet

TreeSet

List ArrayList Vector

LinkedList Stack

Map HashMap Hashtable

TreeMap Properties

集合框架类解决的问题?

1 变长数组

2 操作的效率。

集合框架类的特点:

1 Vector

2 ArrayList *

3 Hashtable *

4 HashSet

5 Properties

集合框架类的使用:

1 声明

private Vector vec;

2 构造中实例化

vec = new vector();

3 向容器中添加数据:

vec.add();

练习:

FILOTest.java

第一个进来,最后一个出去

FILO------栈

练习:

将Student类作为Hashtable的key

StudentHash

1 Student

2 StudentHash(主类)

StudentHash.java

8月2日

练习:

使用HashMap进行数据的存储,与遍历

.keySet()    //返回key的集合(Set)

.values()    //返回value的列表(ArrayList)

HashMapTest.java

HashMap与Hashtable的区别:

Hashtable是非同步的(效率高)

HashMap是同步的(效率低)

获得系统java的相关的环境变量:

System.getProperties();    //可以返回

Properties数据类型(是Map的子类),内容为系统的全部环境变量

练习:

打印输出系统中全部的环境变量:

//2 了解Properties,还可以与文件系统交互

PropertiesTest.java

思路:

1 Properties p = System….

2 遍历p

复习:

java.lang:

String特点

常用构造:

String(byte[] bytes ) //将byte型数组转换为字符串

String(char[] ch)    //将char型数组转换为字符串

String(char[] value, int offset, int count )

//将char[]转换为字符串,offset从那里开始(0)

//count(char.length) 个数

常用方法:

1 char charAt(int index)

String str = “ABC”;

Char ch = str.charAt(0);

ch ==A;

2 String concat(String str)        //连接字符串==”+”号

3 boolean equalsIgnoreCase(String anotherString)          //忽略大小写比较

4 byte[] getBytes()           // 将字符串处理为byte[]

5 int   indexOf(String str)   //判断字符串所在的索引位置,如果描述的字符串不存在,返回值为-1

6 int lastIndexOf(String str)     //字符串所在的最后一个索引位置,如果描述的字符串不存在,返回值为-1

7 int   length()     //返回字符串的长度

8 String replace(char oldChar,char newChar)       //字符串替换

9 boolean   startsWith(String prefix)     // 判断字符串的开头,是否有匹配的字符串

10 boolean   endsWitn(String prerfix)     //判断字符串的结尾,是否有匹配的字符串

11 String substring(int beginIndex, int endIndex) //字符串的截取

12 char[]     toCharArray()    //将字符串处理为char[]

13 String toLowerCase()        //将字符串处理为小写

14 String toUpperCase()        //将字符串处理为大写

15 String trim()              //除去字符串左右两边的空格

16 StringBuffer             //初始化的容量16

构造:

StringBuffer()          //初始化容量16

StringBuffer(10)        //初始化容量10

StringBuffer(String str)

方法:

StringBuffer     append(float f)   // 向StirngBuffer添加内容

int    capacity()     // 返回容量

int    length()        // 返回StringBufferInt实际存储长度

StringBuilde(效率高)==StringBuffer

基本数据类型的包装包:

Byte b = new Byte();

Int    Integer

char   Character

int a = Integer.parseInt(“11”);

System常用的方法:

System.gc();

System.exit(0);           //退出java程序,0代表正常退出,非0代表异常退出

System.arraycopy()       //数组的拷贝

System.currentTimeMillis()             //系统毫秒(1970)

System.getProperties()             //系统环境变量

Math 算术类:

Math.abs()            // 绝对值

max

min

random       //1.0 -- --0.0的随机值

round              //四舍五入

Runtime        // 获得系统运行环境,通常用于java调用

//第三方应用程序(.exe)

.exec(“ ”)

java.util

Date             //获得系统时间,不考虑时区

构造:

Date()                   //获得系统时间

Date(long date)           //根据用户传入的系统毫秒获取时间

方法:

toString()

格式化日期:

java.text.SimpleDateFormat

构造:

SimpleDateFormat(String str)

方法:

String format (date)

Calendar             //日期,可以考虑时区

固定用法:

Calendar cal = Calendar.getInstance();

//时区

TimeZone tz = TimeZone.getTimeZone(“GMT + 8:00”);

Calendar cal = Calendar.getInstance(tz);

常用的方法:

Date getTime();              //返回当前系统时区

int get (int filed);                // Calendar.静态变量

Random

构造:

Random()

方法:

int nextInt(xxxx)           //返回指定范围的随机数字

需要可以变长的数组,可以提高效率

集合框架类:一组相同元素的集合。

1 Vector

构造:

Vector()//无参构造,初始化容量为10

方法:

Boolean add(E   e)               //向容器中存储数据

Void addElement (E obj)        //向容器中存储数据

elements()        //为Enumeration提供容器的地址

2 Enumeration //应用于容器元素的遍历

方法:

boolean hasMoreElements()     //判断指针是否还有数据

E nextElement() //返回当前的元素,并且指针下移

ArrayList

构造:

ArrayList()//初始化容量10

方法:

add()

iterator()                    //为Iterator()提供容器的地址

Iterator://遍历容器中的元素

方法:

boolean hasNext()             // 判断指针是否还有数据

E next() //返回当前的元素,并且指针下移

Vector 与ArrayList的区别:

Vector效率低,线程同步

ArrayList 效率高,线程非同步

Hashtable            //存储数据时,通过key,value的方式成对存储

//只要知道key可以一次性操作value

方法:

put(key,value)          //向Hashtable容器存储数据

elements()            //返回Enumeration value的地址

key()                 //返回Enumeration提供key的地址

E get(key)              //根据表述的key一次获得value

remove(Object key) //根据表述的key删除value

Hashtable中key是一个自定义的数据类型,那么这个自定义类型,必须合理覆盖Object;

public boolean equals(Object obj)

public int hashCode()

HashMap(同步)

LinkedList            //链表——提供了方便的操作方法

方法:

addFirst()

removeFirst()

addLast()

removeLast()

继承关系:

Collection

1 Set -------不允许重复数据

2 List ---------允许重复数据

Collection list = new ArrayList(); //面向接口

Map ------成对存储

使用官方类库方法:

1 结合面向对象的思想

1.1这个类的作用

1.2这个类的构造

1.3这个类的常用方法

2 一些特殊类的固定用法

8月3日

java.io           //为硬盘文件的读,写提供功能

File     //在java中就代表磁盘上的一个文件

//它只可以访问这个文件的属性,并且它可以创建,删除文件,但是,它不可以控制文件中的内容

构造:

File(String pathname)

示例:

1 声明

File f;

2 构造中初始化

//f代表当前目录下的new.txt

f = new File(“new,txt”);

3 方法:

boolean createNewFile()     //新建一个空文件

boolean delete()            //删除这个文件

练习:

在当前目录下创建一个新的文件

1 判断这个文件是否存在

1.1 不存在,则创建一个新的文件

1.2存在,则输出这个文件的修改时间

新建项目:IO

新建类:FileTest.java

2 输出文件产相关信息

2.1 这个文件的名字

2.2 这个文件的绝对路径

I/O的基本原理:

流(stream):流是指在计算机的输入输出之间运动的数据序列。是用于I/O编程的抽象概念,表示线性的,顺序的输入和输出的数据流。

流分为两类:

输入流:代表从外设流入计算机的数据序列:输入流:源流(source stream)

输出流:代表从计算机流向外设的数据序列:输出流:目的流(sink stream)

在java中流的分类:

主体是程序

1 字节流---------代表传输的数据类型为byte类型,1字节

1.1 InputStream //可以从磁盘中读取文件

1.2 OutputStream //可以向磁盘中的文件写入内容

2 字符流---------代表传输的数据类型为char类型,2字节

2.1 Reader(输入流):可以从磁盘中读取文件

2.2 Writer(输出流):可以向磁盘中的文件写入内容

使用字节流:

练习:ByteStream中实现文件的写入,读取

1 使用FileOutputStream向hello.txt中写入内容“MyFirstOutput”

1.1 FileOutputStream 的构造:

FileOutputStream(File file)

FileOutputStream(File file, Boolean append)

//append参数:为true,将会以追加模式进行写操作

false,将会覆盖原有文件

1.2 方法:

void write(byte[] b)

void close()        //释放资源

2 使用FileInputStream()

2.1 构造

2.2 方法

int read(byte[] b)

//将读出的内容存储到byte[]中,并且返回数组的长度

操作资源三大步:

打开

操作(读,写)

关闭

ByteStream.java

练习:使用java实现copy指令:

MyCopy

要求:java MyCopy args1 args2

结果:将args1中的内容copy到args2

思路:

1、从args1中读取内容

2、将读取的内容写入到args2

书写:

1、考虑需要的属性

2、构造初始化属性

3、方法实现copy

int read() //无参read方法 返回byte型数据

int read(byte[ ] b ) //返回读取内容的长度

8月5日

字符流:char

FileReader

构造:

FileReader(String filename)       // 以参数中的文件名,创建输入字符流

FileWriter

练习:

FileRW.java

使用字符流实现文件的读写

注:程序结构参考ByteStream

字符流的特点:

由于字符流在write()实现时,使用了缓冲机制,所以在write()完毕后,必须同步缓冲区。

调用:

flush();

或者

close();

System.in    //可以接收用户在终端的输入

int read() //返回用户在程序运行过程中的键盘输入,为此输入的ascii码

System.in.read(); //程序会阻塞状态,只有当用户输入字符,并且按下“回车键”程序,才会继续运行

ReadTest.java

流链:

目的:

在实际开发中,提高基本的字节流或者字符流的读取效率(读写效率)和更方便的操作机制(除了char,byte,String),还可以操作其他数据类型。

注意:一个程序很少只用一个流类来处理数据,通常都有使用一系列流类叫流链来处理。

字节流:

BufferedInputStream

BufferdeOutputStream

//特点:为基本的I/O操作,提供缓存区域

//提高字节流的操作效率

BufferedTest.java

DataInputStream

DataOutputStream

//特点:为各种基本,特殊数据类型提供操作方式

DataTest.java

输入流量

DataSource-àFileInputStream -àBufferedInputStream --àDataInputStream -àProgram

输出流量

Program -à DataOutputStream-à BufferedOutputStream -àFileOutputStream àDatasink

练习:

字符流版本的,MyCopy

MyCharCopy.java

流链:

字节流的流链

字符流的流链

BufferedReader

BufferedWriter

//提高I/O操作效率

BufferedRW.java

Alt + shift + z          //自动写出异常

System.in.read( );

System.in //java 中的标准输入流

ReadTest.java

8月6日

1 将对象存入到文件中(序列化存储)*

ObjectSave.java

手工实现步骤:

将User数据类型的构造,封装,进行编写

使用DataxxxStream进行读写;

将User对象的数据进行拆分(setxxx,getxxx)

2 序列化存储实现:

ObjectInputStream

ObjectOutputStream

//对于对象的读和写

方法:

Object readObject()

void writeObject(Object obj)

注意:读或写的对象,必须实现Serializable (序列化)接口

示例:

//这个对象支持了序列化存储

//可以使用readObject () || writeObject ()方法了

class User implements Serializable

{

}

ObjectSerializable.java

回顾:java.io

1 File //特点:代表磁盘的文件,只可以访问文件的属性

2 流的概念:只要计算机中线性的,顺序的数据输入,输出

输入流:

输出流:

java的角度:

字节流:

InputStream        //读取内容

OutputStream       //写入内容

特点:基本数据类型byte

字符流:

Writer:

Reader:

特点:基本数据类型char

3 字节流和字符流的应用:

字节流:

FileInputStream

FileOutputStream

字符流:

FileWriter

FileReader

4 流链(包装流)

特点:

增加I/O的操作效率。(分配了一段内存-----缓冲区)

提供名种基本数据类型和特殊类型的操作机制

字节流:

1 BufferedInputStream

BufferedOutputStream //特点:提高I/O操作效率

2 DataInputStream

DataOutputStream //特点:提供基本,特殊类型操作

字符流:

1 BufferedReader             //特点:readLine();

BufferedWriter

5 序列化存储:

特点:将对象进行存储,读取

1 ObjectInputStream

ObjectOutputStream

注意:要序列化存储对象必须实现:Serializable接口

大练习:

使用

java.lang

java.util

java.io

实现一个用户的管理查询系统

功能:

1 添加用户

2 浏览用户

3 删除用户

4 查找用户

5 退出程序

见UserManager文件夹

解决数据的累加问题:

1 程序一运行的时候,就将文件中的所有数据保存在内存中。

EOFException //文件指针已经到末尾时,还要继续读取

User user

User = (User)is.readObject();

While(user != null)

{

array.add(user);

ois.readObject();

}

ArrayList:

int size() //可以返回ArrayList中的元素个数

E get(int index) //根据用户传入的索引值,返回所存储数据

remove(int index) //删除指定位置的元素

java 中常用方法_java_中常用的方法总结相关推荐

  1. PythonStock(13):使用stockstats计算股票中的16个常用指标方法大全

    前言 使用Python开发一个股票项目. 项目地址: https://github.com/pythonstock/stock 相关资料: http://blog.csdn.net/freewebsy ...

  2. Python中字典取值常用的方法!

    字典是Python中比较常见的数据类型之一,它是一种可变容器模型,可以存储任意数量的任意类型的数据,而且字典中的每个元素由一个键和一个值组成,键和值之间用冒号分隔.本文为大家介绍一下Python中字典 ...

  3. 19【numpy中的nan和常用方法】01numpy中的nan和常用统计方法

    numpy中的nan和inf 什么是nan nan/NAN/Nan not a number 表示不是一个数字 什么时候会出现nan 当我们在做类似于0/0 无穷-无穷这种无意义的运算时 当我们读取本 ...

  4. python中字符串(str)的常用处理方法

    str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str) 例:print '%s length ...

  5. java 吸血鬼数字_JAVA_吸血鬼数字 多种方法实现

    packagetest4;importjava.util.Arrays;/*** 从TIJ中第4章的练习10看到"吸血鬼数字",以下几种方法实现以及执行时间对比 * 找出四位数的所 ...

  6. php中遍历数组_PHP中遍历数组的三种常用方法实例分析

    本文实例讲述了PHP中遍历数组的三种常用方法.分享给大家供大家参考,具体如下: 在PHP中操作最多的数据估计也就是数组了,有着效率高.速度快.存储方便的特点. PHP中遍历数组有三种常用的方法: 1. ...

  7. java request获取url_java中HttpServletRequest常用获取url、资源名等方法总结

    HttpServletRequest客户端获取请求,客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中.所以我们能够从对象中获取相应信息 端口 request.getSe ...

  8. 17.Java常用实用类之String类中常用的方法以及一般应用场景,final关键字

    文章目录 1.String类学习 1.1.什么是String类 1.2.String类中常用的方法 1.2.1. 构造方法 1.2.2.public int length() 1.2.3.public ...

  9. Java中的常用异常处理方法

    觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 ...

最新文章

  1. 这届 AI 预测欧洲杯冠军,通通被打脸
  2. 微型小乐器 : MicroSynth 小巧而优美
  3. solrCloud源码分析之CloudSolrClient
  4. ov5640帧率配置_赛博朋克2077 优化设置大全!帧数50暴涨100
  5. 北邮人工智能学院刘勇教授实验室,招聘博士后研究人员
  6. 看到别人的简历,mark一下。
  7. 前端:常用单词(专业版)
  8. mysql 授权指定库,mysql创建新用户并给授权指定的数据库权限
  9. phpunit autoload.php,关于php:Composer不会创建所有需要的phpunit包含路径
  10. DVWA-CSRF-low级别
  11. kalman filter java_Kalman filters(一)
  12. 我的“技术架构”之旅
  13. Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
  14. Java第二次作业參考代码
  15. 用友商贸宝问题解答一
  16. 基于java廉价房屋租赁管理系统
  17. Vs code PIO一直loading
  18. win10刚安装linux黑屏,win10 + Ubuntu18.04 双系统,UEFI+GPT,从win10切换到Ubuntu时黑屏问题...
  19. WPS 宣布将推出“WPS AI”
  20. 17 -> 详解 openWRT 的 gpio 配置关系说明

热门文章

  1. layui上传图片列表展示_layui怎么做图片在列表中显示 | 学步园
  2. 收藏 | 服务器和存储技术知识
  3. 谁来养活中国人?他,用小麦增产千亿斤让中国成为粮食大国
  4. R语言使用download.file函数下载网络文件到本地(Download File from the Internet)
  5. R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行YeoJohnson变换(将非正态分布数据列转换为正态分布数据、可以处理负数)、设置参数为YeoJohnson
  6. Python使用matplotlib可视化华夫饼图(Waffle Chart) 、华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例、华夫饼图适合于同类型指标的比较(Waffle Chart)
  7. pandas计算滑动窗口中的最大值实战(Rolling Maximum in a Pandas Column):计算单数据列滑动窗口中的最大值、计算多数据列滑动窗口中的最大值
  8. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置边界颜色)实战
  9. CLI、终端 (Terminal)、Shell、TTY、Console、Bash都是什么?
  10. Xshell+技巧+快捷键