StringBuffer类
构造方法
StringBuffer()
:构造一个没有字符的字符串缓冲区,初始容量为16个字符。StringBuffer(CharSequence seq)
:构造一个包含与指定的相同字符的字符串缓冲区 CharSequence .StringBuffer(String str)
:构造一个初始化为指定字符串内容的字符串缓冲区。
常用方法
返回值类型 | 方法名 | 含义 |
---|---|---|
StringBuffer | append( ) | 追加数据 |
StringBuffer | insert( ) | 向指定位置插入数据 |
StringBuffer | deleteCharAt(index) | 删除指定位置的数据 |
StringBuffer | reverse() | 反转 |
String | toString() | 将对象中的数据以字符串的形式返回 |
示例
package com.qfedu.demo;
/**
* @Author pengyu
* @Date 2022/8/9 19:28
* StringBuffer类
*/
public class Demo03 {
public static void main(String[] args) {
//创建一个StringBuffer对象
StringBuffer strBuf = new StringBuffer();
//append方法在末尾拼接字符串等
strBuf.append("嘻嘻");
System.out.println(strBuf); //嘻嘻
strBuf.insert(1,"哈哈");
System.out.println(strBuf); //嘻哈哈嘻
strBuf.deleteCharAt(2);
System.out.println(strBuf); //嘻哈嘻
System.out.println(strBuf.toString()); //嘻哈嘻
strBuf.append("小台蛙");
System.out.println(strBuf.reverse()); //蛙台小嘻哈嘻
}
}
枚举类(enum)一个特殊的类
语法格式
public enum 枚举类名 {
//下面写常量,常量之间使用逗号隔开
}
示例
package com.qfedu.demo;
/**
* @Author pengyu
* @Date 2022/8/9 19:55
*/
public enum Color {
//常量,一般都是大写的 没有任何数据类型的!!!
RED,YELLOW,BLUE;
}
package com.qfedu.demo;
/**
* @Author pengyu
* @Date 2022/8/9 19:57
*/
public class Demo04 {
public static void main(String[] args) {
/**
* 我们是通过类名.属性实现调用,因为属性是被static所修饰的
*/
Color red = Color.RED;
System.out.println(red);
}
}
方法
- values();枚举类中所有的值
- ordinal();可以找到每个枚举类中常量的索引
- valueOf();返回值的是指定字符串的枚举常量
package com.qfedu.demo;
/**
* @Author pengyu
* @Date 2022/8/9 19:57
*/
public class Demo04 {
public static void main(String[] args) {
Color[] values = Color.values();
for (Color value : values) {
System.out.println(value);
/**
* RED
* YELLOW
* BLUE
*/
}
}
}
包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
面试题
Integer i1 = 10;
Integer i2 = 10;
Integer i11 = 1000;
Integer i22 = 1000;
System.out.println(i1 == i2);//true
System.out.println(i11 == i22); //false
内存分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4cVHTzuD-1660050321751)(1.png)]
Math数学类
用于数学基本运算:基本指数,对数,平方根和三角函数等。
方法名 | 含义 |
---|---|
abs() | 绝对值 |
max() | 最大值 |
min() | 最小值 |
ceil() | 向上取整 |
floor() | 向下取整 |
round() | 四舍五入 |
random() | 随机数:范围是0.0到1.0 |
示例
public static void main(String[] args) {
System.out.println(Math.PI);
System.out.println(Math.E);
//以上是两个常量
System.out.println(Math.abs(-89));//绝对值 89
System.out.println(Math.max(34, 56));//最大值 56
//求三个数的最大值?咋办?
System.out.println(Math.max(23, Math.max(45,12)));//45
//最小值
System.out.println(Math.min(34, 12));//12
//向上取整
System.out.println(Math.ceil(45.2));//46.0
//向下取整
System.out.println(Math.floor(89.8));//89.0
//四舍五入
System.out.println(Math.round(45.5));//46
//随机数大于等于 0.0 ,小于 1.0 double
System.out.println(Math.random());
}
Random类
产生随机数的类
构造方法
Random()
:创建一个新的随机数生成器Random(long seed)
:使用单个long种子创建一个新的随机数生成器
常用方法
返回值类型 | 方法名 | 含义 |
---|---|---|
int | nextBoolean() | 随机生成一个布尔值 |
double | nextDouble() | 随机生成一个[0~1) 之间的double值 |
int | nextInt() | 在int的存储范围内随机生成一个int值 |
int | nextInt(int bound) | 随机生成一个[0~bound) 之间的int数 |
float | nextFloat() | 随机生成一个[0~1) 之间的float值 |
long | nextLong() | 在long的存储方位内随机生成一个long值 |
Date类
不过好多方法已经过期了
在类的所有方法
Date
接受或返回年,月,日,小时,分钟和秒值,以下表述中使用:
- y年代表整数y
- 1900
。- 一个月由0到11的整数表示; 0是1月,1是2月,等等; 11月12日。
- 日期(月的一天)以通常的方式从1到31的整数表示。
- 一小时由0到23之间的整数表示。因此,从午夜到凌晨1点的时间是小时0,从中午到下午1点的小时是12小时。
- 一般以0〜59的整数表示。
- 第二个由0到61的整数表示; 值60和61仅发生在闰秒上,甚至仅在实际上正确跟踪闰秒的Java实现中发生。 由于目前引入闰秒的方式,在同一分钟内不会发生两个闰秒,但是本规范遵循ISO C的日期和时间约定。
public static void main(String[] args) {
Date date = new Date();
//Tue Aug 09 16:11:11 IRKT 2022
System.out.println(date);
//获取年份 这个年份是减去1900以后的值,所以得加上1900
System.out.println(date.getYear() + 1900);
//获取月份
System.out.println(date.getMonth() + 1);//7
//这个日期的星期几。
System.out.println(date.getDay());//2
System.out.println(date.getHours());//16
System.out.println(date.getMinutes());//15
System.out.println(date.getSeconds());//42
}
Calendar类
目前较多的是该类
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
//获取当前的年份
int i = calendar.get(Calendar.YEAR);
System.out.println(i);//2022
//获取月份 需要加1的
System.out.println(calendar.get(Calendar.MONTH) + 1);//8
//获取当月的第几天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//9
//获取这周的第几天 漂亮国的周日是第1天
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//3
//获取这一年的第几天
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//221
//获取时
System.out.println(calendar.get(Calendar.HOUR));//4
System.out.println(calendar.get(Calendar.MINUTE));//39
System.out.println(calendar.get(Calendar.SECOND));//3
//重要的方法 获取当前的时间的 返回值是Date类型的数据
//可以转为Date类型的数据
Date time = calendar.getTime();
System.out.println(time);
//Tue Aug 09 16:40:21 IRKT 2022
//这上面时间 对程序员相当不友好!!!
//通过一个类将日期格式转换一下
SimpleDateFormat sdf = new SimpleDateFormat("yyyy—MM-dd HH:mm:ss");
//yyyy-MM-dd HH:mm:ss
//年-月-天 时:分:秒
//2022-08-09 16:43:32
//将这个格式Tue Aug 09 16:40:21 IRKT 2022
//转换为2022-08-09 16:43:32
String format = sdf.format(time);
System.out.println(format);
//yyyy-MM-dd HH:mm:ss
//以上能不能胡乱写?不能
//以后开发中要用的!!
}
共同学习,共同进步,每天进步一点点