一:Scanner
- 一个简单的文本扫描程序,可以获取基本类型数据和字符串数据
//Scanner(InputStream source):创建 Scanner 对象
Scanner sc = new Scanner(System.in);
//int nextInt():获取一个int类型的数据
System.out.println("请输入一个整数:");
int i = sc.nextInt();
//输出获取到的数据
System.out.println("你输入的数据是:" + i);
二:Random
// Random():创建一个新的随机数生成器
Random r = new Random();
// 参数bound表示获取到的随机数在[0,bound)之间
int i = r.nextInt(10);
System.out.println(i);
三:import java.util.Date
//当前时间
Date d = new Date();
System.out.println("一般日期输出:" + d);
System.out.println("时间戳:" + d.getTime());
//格式化(从 Date 到 String )
//SimpleDateFormat(String pattern):构造一个SimpleDateFormat使用给定的模式和默认的日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// 将日期格式化成日期/时间字符串
String s = sdf.format(d);
System.out.println(s);
//解析(从 String 到 Date )
String ss = "2023年05月11日 17:33:46";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//从给定字符串的开始解析文本以生成日期
Date dd = sdf2.parse(ss);
System.out.println(dd);
四:System
| 方法名 |
说明 |
| public static void exit(int status) |
终止当前运行的 Java 虚拟机,非零表示异常终止 |
| public static long currentTimeMillis() |
返回当前时间(以毫秒为单位) |
// 获取开始的时间节点
long start = System.currentTimeMillis();
for (int i = 1; i <= 10000; i++) {
System.out.println(i);
}
// 获取代码运行结束后的时间节点
long end = System.currentTimeMillis();
System.out.println("共耗时:" + (end - start) + "毫秒");
五: Objects
| 方法名 |
说明 |
| public static String toString(对象) |
返回参数中对象的字符串表示形式。 |
| public static String toString(对象, 默认字符串) |
返回对象的字符串表示形式。 |
| public static Boolean isNull(对象) |
判断对象是否为空 |
| public static Boolean nonNull(对象) |
判断对象是否不为空 |
六:BigDecimal
-
可以用来进行精确计算
| 方法名 |
说明 |
| public BigDecimal add(另一个BigDecimal对象) |
加法 |
| public BigDecimal subtract (另一个BigDecimal对象) |
减法 |
| public BigDecimal multiply (另一个BigDecimal对象) |
乘法 |
| public BigDecimal divide (另一个BigDecimal对象) |
除法 |
| public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) |
除法 |
BigDecimal big1 = new BigDecimal("123.345");
BigDecimal big2 = new BigDecimal("111.111");
System.out.printf("加法:");
BigDecimal add = big1.add(big2);
System.out.printf(add.toString());
System.out.printf("\n减法:");
BigDecimal subtract = big1.subtract(big2);
System.out.printf(subtract.toString());
System.out.printf("\n乘法:");
BigDecimal multiply = big2.multiply(new BigDecimal(2));
System.out.printf(multiply.toString());
System.out.printf("\n除法:");
BigDecimal divide1 = big2.divide(new BigDecimal(2));
System.out.printf(divide1.toString());
System.out.printf("\n除法-四舍五入:");
BigDecimal divide2 = big2.divide(new BigDecimal(2), BigDecimal.ROUND_HALF_UP);
System.out.printf(divide2.toString());
加法:234.456
减法:12.234
乘法:222.222
除法:55.5555
除法-四舍五入:55.556
七:日志
-
日志与输出语句的区别
|
输出语句 |
日志技术 |
| 取消日志 |
需要修改代码,灵活性比较差 |
不需要修改代码,灵活性比较好 |
| 输出位置 |
只能是控制台 |
可以将日志信息写入到文件或者数据库中 |
| 多线程 |
和业务代码处于一个线程中 |
多线程方式记录日志,不影响业务代码的性能 |
// 测试类
public class Test01 {
//获取日志的对象
private static final Logger LOGGER = LoggerFactory.getLogger(Test01.class);
public static void main(String[] args) {
//1.导入jar包
//2.编写配置文件
//3.在代码中获取日志的对象
//4.按照日志级别设置日志信息
LOGGER.debug("debug级别的日志");
LOGGER.info("info级别的日志");
LOGGER.warn("warn级别的日志");
LOGGER.error("error级别的日志");
}
}
八:枚举
public enum s {
枚举项1,枚举项2,枚举项3;
}
注意: 定义枚举类要用关键字enum
1.简单枚举
public enum Season {
SPRING,SUMMER,AUTUMN,WINTER;
}
2.枚举构造方法,抽象方法
public enum Season {
SPRING("春"){
//如果枚举类中有抽象方法
//那么在枚举项中必须要全部重写
@Override
public void show() {
System.out.println(this.name);
}
},
SUMMER("夏"){
@Override
public void show() {
System.out.println(this.name);
}
},
AUTUMN("秋"){
@Override
public void show() {
System.out.println(this.name);
}
},
WINTER("冬"){
@Override
public void show() {
System.out.println(this.name);
}
};
public String name;
//空参构造
//private Season(){}
//有参构造
private Season(String name){
this.name = name;
}
//抽象方法
public abstract void show();
}
3、枚举使用特点
static void test(){
/*
1.所有枚举类都是Enum的子类
2.我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项
3.每一个枚举项其实就是该枚举的一个对象
4.枚举也是一个类,也可以去定义成员变量
5.枚举类的第一行上必须是枚举项,最后一个枚举项后的分号是可以省略的,
但是如果枚举类有其他的东西,这个分号就不能省略。建议不要省略
6.枚举类可以有构造器,但必须是private的,它默认的也是private的。
枚举项的用法比较特殊:枚举("");
7.枚举类也可以有抽象方法,但是枚举项必须重写该方法
*/
//第二个特点的演示
//我们可以通过"枚举类名.枚举项名称"去访问指定的枚举项
System.out.println(Season.SPRING);
System.out.println(Season.SUMMER);
System.out.println(Season.AUTUMN);
System.out.println(Season.WINTER);
//第三个特点的演示
//每一个枚举项其实就是该枚举的一个对象
Season spring = Season.SPRING;
spring.show();
}
4、枚举方法
| 方法名 |
说明 |
| String name() |
获取枚举项的名称 |
| int ordinal() |
返回枚举项在枚举类中的索引值 |
| int compareTo(E o) |
比较两个枚举项,返回的是索引值的差值 |
| String toString() |
返回枚举常量的名称 |
| static <T> T valueOf(Class<T> type,String name) |
获取指定枚举类中的指定名称的枚举值 |
| values() |
获得所有的枚举项 |
static void test1(){
// 获取枚举项的名称
String name = Season.SPRING.name();
System.out.println(name);
System.out.println("-----------------------------");
// 返回枚举项在枚举类中的索引值
int index1 = Season.SPRING.ordinal();
System.out.println(index1);
System.out.println("-----------------------------");
// 比较两个枚举项,返回的是索引值的差值
int result = Season.SPRING.compareTo(Season.WINTER);
System.out.println(result);//-3
System.out.println("-----------------------------");
//返回枚举常量的名称
String s = Season.SPRING.toString();
System.out.println(s);
System.out.println("-----------------------------");
// 获取指定枚举类中的指定名称的枚举值
Season spring = Enum.valueOf(Season.class, "SPRING");
System.out.println(spring);
System.out.println(Season.SPRING == spring);
System.out.println("-----------------------------");
// 获得所有的枚举项
Season[] values = Season.values();
for (Season value : values) {
System.out.println(value);
}
}
网友评论