目录
Java API(Java Application Programming Interface)
即Java应用程序编程接口,它是运行库的集合,预先定义了一些接口和类,程序员可以直接使用已经打包的接口和类做具体的应用。
除了“应用程序编程接口”的意思外,API也称为帮助文档
Java语言的强大之处在于它提供了多种多样的类库,从而大大提高了程序编程的效率和质量。
从Java5.0开始,引入了一种新的类型——枚举
枚举:指由一组固定的常量组成的类型
枚举的优势
枚举可以使代码易于维护,保证类型安全。
枚举易于输入,使用枚举赋值,只需要输入枚举名,然后输入点操作符就能将所有值都显示出来。
枚举使代码更清晰,允许使用描述性的名称表示数据,使用时直观方便。
Java语言是面向对象的,但是Java中的基本数据类型却不是面向对象的,实际开发中存在不便。所以在设计类时为每个基本数据类型设计了一个对应的类,称为包装类。
每个基本类型在java.lang包中都有一个相应的包装类
包装类的作用
提供了一系列实用的属性和方法,方便对象的操作。
集合不允许存放基本数据类型,存放数字时,要使用包装类型。
包装类和基本数据类型的对应
基本数据类型 | 包装类 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例。
包装类的构造方法有两种形式
1、public Type (type value)
Type表示包装类,参数type为基本数据类型。
例如:Integer i = new Integer (520);
2、public Type (String value)
出Character类外其它包装类可将一个字符串作为参数构造它们的实例
Type表示包装类,参数type为基本数据类型
例如:Integer?i = new Integer("520");
包装类的构造方法
1.Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
2.当包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译通过,运行时NumberFormatException异常
包装类的常用方法
xxxValue();方法:包装类转换成基本数据类型
例如:Integer i = new INneger;
? ? ? ? int j = num .intValanl();
所有包装类都有如下方法(Character类除外)
public static 基本数据类型 parsexxx(String valan)
parseXXX()方法的作用:把字符串转换为相应的基本数据类型数据
byte b=Byte.parseByte("125");
short s=Short.parseShort("3256");
int num=Integer.parseInt("36");
long l=Long.parseLong("123456789");
float f=Float.parseFloat("3.14");
final double PI=Double.parseDouble("3.14159");
boolean bool=Boolean.parseBoolean("false");
?
toString()方法:以字符串形式返回包装对象表示的基本数据类型
byte bt=12;
String b=Byte.toString(bt);
short sh=25;
String s=Short.toString(sh);
String num=Integer.toString(520);
String l=Long.toString(123456789l);
String f=Float.toString(3.14f);
String PI=Double.toString(3.1415926d);
String bool=Boolean.toString(false);
Java5.0以后,程序员不需要编码实现基本数据类型和包装类型的转换,编译器会自动完成。
装箱:基本类型转换为包装类的对象
拆箱:包装类对象转换为基本类型
例如: Integer intObj = 5;? ? ? ? //装箱
? ? ? ? int intValue =?intObj;? ? ? ? //拆箱
包装类的特点:
所有包装类都是final类型,不能创建它们的子类
Java 5.0版本以后,程序员不需要编码实现基本数据类型和包装类之间的转换,编译器会自动完成。
JDK1.5后,允许基本数据类型和包装类型进行混合数学运算。
包装类并不是用来取代基本数据类型的
在基本数据类型需要用对象表示时使用
Math类提供了常用的数学运算方法和两个静态常量E(自然对数的底数)和PI
方法名 | 备注 |
abs(int a) | 返回 int 值的绝对值 |
ceil(double a) | 返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。 |
floor(double a) | 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。 |
max(int a, int b) | 返回两个 int 值中较大的一个。 |
min(int a, int b) | 返回两个 int 值中较小的一个。 |
random() | 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 |
round(double a) | 返回最接近参数的 long。 |
sqrt(double a) | 返回正确舍入的 double 值的正平方根。 |
Random类用于生成伪随机数流
方法名 | 作用 |
char charAt(int index) | 返回指定索引处的 char 值。 |
String concat(String str) | 将指定字符串连接到此字符串的结尾。 |
boolean contains(CharSequence s) | 当此字符串包含指定的 char 值序列时,返回 true。 |
boolean equals(Object anObject) | 将此字符串与指定的对象比较。 |
boolean equalsIgnoreCase(StringanotherString) | 将此 String 与另一个 String 比较,不考虑大小写。 |
byte[]? getBytes() | 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的索引。 |
int lastIndexOf(String str) | 返回指定子字符串在此字符串中最右边出现处的索引。 |
int length( ) | 返回此字符串的长度。 |
boolean matches(String regex) | 告知此字符串是否匹配给定的正则表达式。 |
String类的length 和trim方法
int length();? ? ? ? 返回字符串中的字符数。
String trim();? ? ? ? 返回字符串的副本,忽略前导空白和尾部空白。
String 类的equals()方法
boolean equals(Object anObject):比较存储在两个字符串对象的内容是否一致。
String重写了Object类的equals()方法,检查字符串内容是否完全一致
“==”和equals()有什么区别
==判断两个字符串在内存中的地址,即判断两个字符是否是同一个字符串对象
字符串的其它比较方法
boolean equalsIgnoreCase(StringanotherString) :字符串比较时不考虑大小写。?
String toLowerCase() 方法:将此 String 中的所有字符都转换为小写。
String toUpperCase()方法:将此 String 中的所有字符都转换为大写。
字符串连接
1、使用 + 运算符
2、使用String类的concat()方法
String s = new String("你好,");
String name = new String("张三!");
String sentence = s.concat(name);
System.out.println(sentence);
字符串搜索和提取方法
方法名 | 说明 |
public int indexOf(int ch) | 搜索第一个出现的字符ch(或字符串value), 如果没有找到,返回-1 |
public int indexOf(String value) | |
public int lastIndexOf(int ch) | 搜索最后一个出现的字符ch(或字符串value), 如果没有找到,返回-1 |
public int lastIndexOf(String value) | |
public String substring(int index) | 提取从位置索引开始的字符串部分 |
public String substring(int beginindex, int endindex) | 提取beginindex和endindex之间的字符串部分 |
StringBuffer类
StringBuffer类位于java.util包中,是String类的增强类。
对字符串频繁修改时,使用StringBuffer类可以大大提高程序执行效率
构造方法
StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer("abc");
常用方法
strb.toString(); ? ? ? ? ? //将StringBuffer类型的字符串转化为String类型的对象返回
strb.append(Object obj); ?//将参数连接到字符串后并返回
strb.insert (int offset, Object obj); ? ?//将参数插入到字符串指定位置后并返回
?
String类、StringBuffer类和StringBuilder类的区别?
1:String是不可变对象,在每次对String类型进行改变时其实都等同于生成了一个新的String对象,然后再指向新的String对象。
2:经常改变内容的字符串最好不要使用String,因为每次生成对象都会对系统性能产生影响。
1:StringBuffer是可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer对象本身进行操作,而不是生成新的对象。
2:字符串经常改变的情况可使用StringBuffer,执行效率要比String类高。
1:JDK5.0后提供了StringBuilder,等价StringBuffer 。
2:区别:StringBuffer类是线程安全的, StringBuilder类是单线程,不提供同步,理论上效率更高
?
Calendar类是抽象类:用于设置和获取日期/时间数据的特定部分
Calendar类提供一些方法和静态字段来操作日历
属性 | 说明 |
static int MONTH | 指示月 |
static int DAY_OF_MONTH | 指示一个月中的某天 |
static int DAY_OF_WEEK | 指示一个星期中的某天 |
Calendar类方法 | 说明 |
static Calendar getInstance() | 使用默认时区和语言环境获得一个Calendar对象 |
int get(int?field) | 返回给定日历字段的值 |