java 中常用方法_java_中常用的方法总结
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_中常用的方法总结相关推荐
- PythonStock(13):使用stockstats计算股票中的16个常用指标方法大全
前言 使用Python开发一个股票项目. 项目地址: https://github.com/pythonstock/stock 相关资料: http://blog.csdn.net/freewebsy ...
- Python中字典取值常用的方法!
字典是Python中比较常见的数据类型之一,它是一种可变容器模型,可以存储任意数量的任意类型的数据,而且字典中的每个元素由一个键和一个值组成,键和值之间用冒号分隔.本文为大家介绍一下Python中字典 ...
- 19【numpy中的nan和常用方法】01numpy中的nan和常用统计方法
numpy中的nan和inf 什么是nan nan/NAN/Nan not a number 表示不是一个数字 什么时候会出现nan 当我们在做类似于0/0 无穷-无穷这种无意义的运算时 当我们读取本 ...
- python中字符串(str)的常用处理方法
str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str) 例:print '%s length ...
- java 吸血鬼数字_JAVA_吸血鬼数字 多种方法实现
packagetest4;importjava.util.Arrays;/*** 从TIJ中第4章的练习10看到"吸血鬼数字",以下几种方法实现以及执行时间对比 * 找出四位数的所 ...
- php中遍历数组_PHP中遍历数组的三种常用方法实例分析
本文实例讲述了PHP中遍历数组的三种常用方法.分享给大家供大家参考,具体如下: 在PHP中操作最多的数据估计也就是数组了,有着效率高.速度快.存储方便的特点. PHP中遍历数组有三种常用的方法: 1. ...
- java request获取url_java中HttpServletRequest常用获取url、资源名等方法总结
HttpServletRequest客户端获取请求,客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中.所以我们能够从对象中获取相应信息 端口 request.getSe ...
- 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 ...
- Java中的常用异常处理方法
觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 ...
最新文章
- 这届 AI 预测欧洲杯冠军,通通被打脸
- 微型小乐器 : MicroSynth 小巧而优美
- solrCloud源码分析之CloudSolrClient
- ov5640帧率配置_赛博朋克2077 优化设置大全!帧数50暴涨100
- 北邮人工智能学院刘勇教授实验室,招聘博士后研究人员
- 看到别人的简历,mark一下。
- 前端:常用单词(专业版)
- mysql 授权指定库,mysql创建新用户并给授权指定的数据库权限
- phpunit autoload.php,关于php:Composer不会创建所有需要的phpunit包含路径
- DVWA-CSRF-low级别
- kalman filter java_Kalman filters(一)
- 我的“技术架构”之旅
- Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
- Java第二次作业參考代码
- 用友商贸宝问题解答一
- 基于java廉价房屋租赁管理系统
- Vs code PIO一直loading
- win10刚安装linux黑屏,win10 + Ubuntu18.04 双系统,UEFI+GPT,从win10切换到Ubuntu时黑屏问题...
- WPS 宣布将推出“WPS AI”
- 17 -> 详解 openWRT 的 gpio 配置关系说明
热门文章
- layui上传图片列表展示_layui怎么做图片在列表中显示 | 学步园
- 收藏 | 服务器和存储技术知识
- 谁来养活中国人?他,用小麦增产千亿斤让中国成为粮食大国
- R语言使用download.file函数下载网络文件到本地(Download File from the Internet)
- R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行YeoJohnson变换(将非正态分布数据列转换为正态分布数据、可以处理负数)、设置参数为YeoJohnson
- Python使用matplotlib可视化华夫饼图(Waffle Chart) 、华夫饼图可以直观地显示完成度(百分比)或者部分占整体的比例、华夫饼图适合于同类型指标的比较(Waffle Chart)
- pandas计算滑动窗口中的最大值实战(Rolling Maximum in a Pandas Column):计算单数据列滑动窗口中的最大值、计算多数据列滑动窗口中的最大值
- R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置边界颜色)实战
- CLI、终端 (Terminal)、Shell、TTY、Console、Bash都是什么?
- Xshell+技巧+快捷键