今天是寒假学JAVA第五天,主要学习了常用的包、常用的类以及可变参数的知识,希望大家认真学习。
目录
一、常用类
1.常用的包
java.lang包:该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动导入。如:System类、String类、…
java.util包:该包是Java语言的工具包,里面提供了大量工具类以及集合类。如:scanner类、Random类、List集合、…
java.io包: 该包是Java语言中的输入输出包,里面提供了大量读写文件相关的类。如:
FileInputStream类、FileOutputStream类、
java.net包:该包是Java语言中的网络包,里面提供了大量网络编程相关的类。 如:ServerSocket类、Socket类、…
2.Object类
(1)基本概念java.lang.Object类是Java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间接子类。
(2)常用的方法(重点)
boolean equals(Object obj)
用于判断调用对象是否与参数对象相等;
该方法默认比较两个对象的地址,与的效果等价;
若希望比较两个对象的内容,则需要重写该方法;
若该方法重写时,应该重写hashCode方法。
int hashCode()
用获取调用对象的哈希码值(内存地址的编号) 若两个对象调用equals方法的结果相同,则各自调用hashCode方法的数值必须相等。
若两个对象调用equals方法的结果不同,则各自调用hashCode方法的数值应该不相等。
String toString0
用于返回调用对象的字符串形式。
默认字符串的内容有:包名,类名@哈希码值的无符号十六进制形式
为了返回更有意义的数据内容需要重写该方法。
使用print()或println()打印或+拼接时,都会自动调用toString方法。
3.包装类
Person p = new Person():表示声明Person类型的引用指向Person类型的对象;p代表对象 int num = 10;表示声明一个int类型的变量num初始值为10。num不代表对象,Java语言是一门纯面向对象的编程语言,万物皆对象!
- 包装类的概念
通常情况下基本数据类型的变量不是对象,为了满足万物接对象的理念就需要对基本数据类型的变量进行打包封装处理变成对象,而负责将这些变量声明为成员变量进行对象化处理的相关类,叫做
包装类。 常用的包装类int=> java.lang.Integer类,char =>
java.lang.Character类,其它类型都是将首字母改为大写即可。
- Integer类
(1)基本概念java.lang.Integer类内部包装了一个int类型的
变量作为成员变量,主要用于实现对int类型的包装并提供int类型到String类之间的转换等方法。
(2)常用的方法
Integer(int value) Integer(String s) int intValue() static Integer valueOf(int i) static int parseInt(String s)
注意:JDK5发布之前使用包装类对象进行运算时,需要较为繁琐的"拆箱"和"装箱"操作,JDK 5增加了自动"装箱"和"拆箱"的功能。
4.数学处理类
4.1 BigDecimal类
(1)基本概念 :由于float类型和double类型在运算时可能会有误差,若希望实现精确运算则借助java.math.BigDecimal类型加以描述。
(2)常用的方法
BigDecimal(String val)
BigDecimal add(BigDecimal add)
BigDecimalsubtract(BigDecimal sub)
BigDecimal multiply(BigDecimal mul)
BigDecimal divide(BigDecimal div)- static int ROUND HALFUP(向最接近的数字舍入,“四舍五入”);
4.2 String类(重点)
java.lang.String类主要用于描述字符串内容,Java程序中所有字符串字面值都可以使用该类的实例(对象)加以描述,如:"abc"等。
该类由final关键字修饰表示该类不能被继承,该类描述的字符串内容是个常量不可改变,因此可以被共享。如:String
str1=“abc”;其中"abc"这个字符串是个常量不可改变,但str1的数值可以改变str1=“123”;表示将"123"字符串的地址赋值给变量str1,覆盖str1中原来的数值也就是改变str1的指向并没有改变指向的内容。
4.3 常量池(原理)
String strl =“abc”;String str2 =“123”; //比较str1 == str2 String
str3=“abc”; //比较strl= str3
由于String类型描述的字符事内容是个常量不可改变,因此Java虚拟机将首次出现的字符事放入常量中,若后续代码中出现了相同的字符事内容则直接使用池中已有的字符事对象而无需申请内存以及创建对象,从而提高了性能。
5.StringBuilder类和StringBuffer类(重点)
基本概念
由于String类描述的字符串内容是个常量,不可改变,当需要在Java代码中描述大量类似的字符串时,只能单独申请和存储,此时会造成内存空间的浪费。
为了解决上述问题,可以使用java.lang.StringBuilder类和StringBuffer类来描述字符序列可以改变的字符串,如:“ab”,“abc”,“abcd”。
其中StringBuffer类是从jdk1.0开始存在,属于线程安全的类,因此效率比较低;其中StringBuilder类是从jdk1.5开始存在,属于非线程安全的类,因此效率比较高;
6.日期相关的类(会用即可)
6.1 Date类
(1)基本概念
java.util.Date类主要用于描述特定的瞬间,也就是年月日时分秒,可以精确到毫秒。
(2)常用的方法
Date()- Date(long date) ﹣分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为"历元(epoch)",即1970年1月1日 00:00:00 GMT)以来的指定毫秒数
long getTime() 返回自 1970 年 1月 1日00:00:00 GMT 以来此 Date 对象表示的毫秒数。
void setTime (long time) - 设置此 Date对象,以表示 1970 年 1月1日 00:00:00 GMT 以后 time 毫秒的时间点。
6.2 SimpleDateFormat类
(1)基本概念java.text.SimpleDateFormat类主要用于实现日期类型和文本类型之间的转换。
(2)常用的方法
SimpleDateFormat()﹣用默认的模式和默认语言环境的日期格式符号构适造
7.可变参数
一个方法中定义完了参数,则在调用的时候必须传入与其一,对应的参数,但是在JDK 1.5之后提供了新的功能,可以根据需要自动传入任意个数的参数。
语法:
返回值类型 方法名称(数据类型… 参数名称){
//参数在方法内部以数组的形式来接收
}
可变参数只能出现在参数列表的最后。
总结
学习五天了,对JAVA基础知识掌握的差不多了,下学期开始学进阶部分,加油!!