Java高级特性--实用类

Java高级特性–实用类

1、枚举

枚举指由一般固定的常量组成的类型

[Modifier]enum enumName{
    enumContatName1;
    [,enumConstantName2...[;]]
    //[field, method]
}

如:

//创建枚举
public enum Genders{
    Male,Female
}
//创建对象
public class Student{
    public Gends sex;
}
//测试类
public class Text{
    public static void main(String[] args){
        Student stu = new Student();
        stu.sex=Genders.Male;
    }
}

枚举的优点:

①类型安全(只能输枚举里的常量)

②易于输入(直接点出常量)

③代码清晰

2、Java API

常用Java API

​ ①Java.lang(系统默认导入,不需要手动导入)

​ Enum、包装类、Math、String、StringBuffer、System

​ ②java.util(工具包)

​ ③java.io

​ ④java.sql

​ …

3、包装类

包装类把基本类型数据转换为对象

每个基本类型在java.lang包中都有一个相应的包装类

作用

①提供了一系列实验的方法,②集合不允许存放基本数据类型数据,存放数字时,要用包装类型

在这里插入图片描述

包装类的构造方法

①所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例

​ public Type(type value)

​ 如:Integer i = new Integer(1);

②除Character类外,其他包装类可将一个字符串作为参数构造它们的实例

​ public Type(String value)

​ 如:Integer i = new Integer(“123”);

注意事项

①Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false

②当Number包装类构造方法参数为String类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常

常用方法

①xxxValue( ):包装类转换成基本类型

Integer integerId = new Integer(25);
int intId = integerId.inValue();

②toString( ):以字符串形式返回包装对象表示的基本类型数据(基本类型–>字符串)

String sex = Character.toString('男');
String id = Integer.toString(25);

③parsexxx( ):把字符串转换为相应的基本数据类型数据(Character除外)(字符串–>基本类型)

int num = Integer.parseInt("36");
boolean bool = Boolean.parseBoolean("false");

④valueOf( ):

1、所有包装类都有如下方法(基本类型–>包装类)

​ public static Type valueOf(type value)

​ 如:Integer intValue = Integer.valueOf(21);

2、除了Character类为,其他包装类都有如下方法(字符串–>包装类)

​ public static Type valueOf(String s)

​ 如:Integer intValue = Integer.valueOf(“21”);

装箱和拆箱

基本类型和包装类的自动转换

Integer intObject = 5;
int intValue = intObject;

装箱:基本类型转换为包装类的对象

拆箱:包装类对象转换为基本类型的值

包装类的特点

①JDK1.5后,允许基本数据类型和包装类型进行混合数学运算

②包装类并不是用来取代基本数据类型的

​ 在基本数据类型需要用对象表示时使用

4、Math类

​ java.lang.Math类提供了常用的事项运算方法和两个静态常量E(自然对数的底数)和PI(圆周率)

Math.abs(-3.5);//绝对值返回3.5
Math.max(2.5,90.5);//返回最大值90.5
int random =(int)(Math.random()*10);//生成一个0~9之间的随机数
5、Random类

生成随机数的其他方法

​ java.util.Random类

Random rand = new Random();
for(int i=0;i<20;i++){//随机生成20个随机整数,并显示
    int num = rand.nextInt(10);//返回下一个伪随机数,整型的
    System.out.println("第"+(i+1)+"个随机数时: "+num);
}

注意:

用同一个种子值类初始化两个Random对象,然后用每个对象调用相同的方法,得到的随机数也是相同的

rand.nextInt();//int范围内随机整数
rand.nextInt(10);//0~10(不含10)的随机整数
6、String类

在这里插入图片描述

String类位于java.lang包中,具有丰富的方法

(计算字符串的长度、比较字符串、连接字符串、提取字符串)

使用String对象存储字符串

String s="Hello world"
String s = new String();
String s = new String("Hello world");
String常用方法

①length()方法:

确定字符串的长度,返回字符中的字符数

(与数组length熟悉相似,但是是方法)

②equals()方法:

比较存储在两个字符串对象的内容是否一致

(重写了object的equals方法,object的equals方法比较地址)

原理:

在这里插入图片描述

“==”:判断两个字符串在内存中的地址,即判断是否同一个字符串对象

字符串比较其他方法:

1、equalsIgnoreCase( )方法(忽略大小写比较)

2、toLowerCase( )方法 (换成小写字母)

3、toUpperCase( )方法 (换成大写字母)

字符串连接

①方法1:使用"+"

②方法2:使用String类的concat( )方法

String s= "你好";
String s2 = "张三";
String newStr = s.concat(s2);
字符串常用提取方法
方法名说明
public int indexOf(int ch)搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1
public int indexOf(String value)搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1
public int lastIndexOf(int ch)搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1
public int lastindexOf(String value)搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1
public String substring(int index)提取从位置索引开始的字符串部分
public String substring(int beginindex,int endindex)提取beginindex和endindex之间的字符串部分
Public String trim( )返回一个前后不含任何空格的调用字符串的副本

split(String S);通过S将字符串拆分,分开后的每一部分都存在一个数组里

​ 如:String[ ] infors = intfor.split("*");

(char)charAt(num);提取出字符串中下标为num的字符

7、操作日期时间

java.util.Date类:表示日期和时间

​ 提供操作日期和时间个组成部分的方法

java.text.SimpleDateFormat类

​ 用于定制日期时间的格式

//创建日期对象
Date date = new Date();
//定制日期格式
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = formater.format(date);
System.out.println(now);

注意:format(Date date),返回(String)

8、Calender类

(日历)抽象类

抽象类,java.util.Calender

无法new,通过下面创建对象

Calendar t = Calender.getInstance();
t.get(int i)可以提出日期中的一部分
t.get(Calendar.YEAR)+(t.get(Calendar.MONTH)+1)  //西方月份从0开始
    +t.get(Calendar.DAY_OF_MONTH);
Calendar.DAY_OF_WEEK-1 //西方从周日开始
方法或属性说明
int get(int field)返回给定日历字段的值
MONTH指示月
DAY_OF_MONTH指示一个月中的某天
DAY_OF_WEEK指示一个星期中的某天
9、StringBuffer

​ 对字符串频繁修改(如字符串连接)时,使用StringBuffer类可以大大提高程序执行效率

StringBuffer声明
StringBuffer strb = new StringBuffer();
StringBuffer strb = new StringBuffer("aaa");
StringBuffer使用
sb.toString( );//转化为String类型
sb.append("**");//追加字符串
sb.insert(1,"**");//插入字符串

①String 转 StringBuffer

​ 把String作参数进StringBuffer的构造方法

②StringBuffer转String

​ 用toString( )方法

10、String和StringBuffer

①String是不可变对象

​ 经常改变内容的字符串最好不要使用String

②StringBuffer是可变的字符串

​ 字符串经常改变的情况可使用StringBuffer更高效

③JDK5.0后提供了StringBuilder,等价StringBuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值