Java 系统常用类

java.lang包
所有java.lang包中的类都默认已经import了
Java中的8种基本类型都对应了一个类类型

byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean


以Integer举例
1.将十进制的数字转成二进制,八进制,十六进制
toBinaryString(int t)
toOctalString(int t)
toHexString(int t)

2.将纯数字字符串转换成数字
Integer t = new Integer("1234");
Integer tt = Integer.parseInt("12345");

3.从二进制,八进制,十六进制转成十进制
Integer tt2 = Integer.parseInt("1100100",2);
Integer tt2 = Integer.parseInt("144",8);
Integer tt2 = Integer.parseInt("64",16);

100 =64+32+4 1100100
97 = 64+32+1 1100001

1 1 0 0 1 0 0
64 32 16 8 4 2 1


01100100
2^6*1+2^5*1+2^2*1=64+32+4=100


100 1 100 100
1 4 4
97 1 100 001
1 4 1
144
8^2*1+8^1*4+8^0*4=64+32+4=100

100 110 0100
6 4
64
16^1*6+16^0*4=96+4=100

打包[装箱] 将基本类型的值封装成类类型
int t=100;
Intenger tt = new Integer(t);

拆包[拆箱] 从类类型的对象中提取基本类型的数据
int t2 = tt.intValue();

Java的基本类型和对应的类类型之间会自动的装箱和拆箱



Math 数学函数类
Math.abs(数字); //计算绝对值
Math.max(a, b);//取ab中较大的
Math.min(a, b);//取ab中较小的
Math.random();//从0到1之间随机一个小数
Math.pow(a,b);//计算a的b次方


Number 数字类
BigInteger 大整数类
练习:计算100!
BigDecimal 大数字,可以是浮点数



String StringBuffer和StringBuilder

String:长度固定的字符串类
StringBuffer/StringBuilder:可变字符串

String:
构造方法:
String(byte[] bs);//将字节数组构造成字符串
String(byte[] bs,int offset,int count);//将字节数组中的一部分构造成字符串
String(byte[] bs,"编码名称");//将字节数组构造成字符串

String(char[] cs);//将字符数组构造成字符串
String(char[] cs,int offset,int count);//将字符数组中的一部分字符构造成字符串
字节数组和字符数组都可以变成字符串!!!!

字符串的创建除了调用构造方法以外,还可以像基本类型一样,直接赋值
String s = "abcdef";


常用的方法:
charAt(int index) //获得指定下标位置的字符
compareTo(String s) //比较两个字符串的大小
int t = s1.compareTo(s2);
如果t==0,说明s1和s2相同
t<0,说明s1小于s2
t>0,说明s1大于s2

contains(String s); 是否包含字符串s
endsWith(String s) 是否是以s结尾的
startsWith(String s) 是否以s开头

equals(Object s) 判断字符串和对象s是不是相同的

getBytes() ; 将字符串变成字节数组,使用默认的编码方式
getBytes(String 编码) ; 将字符串变成字节数组,使用指定的编码方式

toCharArray() ;将字符串变成字符数组


s.indexOf('g'); 字符笫一次出现的下标位置
s.indexOf('g',4);从指定的位置往后搜索

s.lastIndexOf('g') 倒着找

length() 字符串中字符的个数

replace(old,new) 将指定的字符替换成新的字符
replace("ab", "AB"); 将指定的字符串替换成新的字符串


split(String s); 根据s切割字符串

substring(int beginIndex) 提取字符串
substring(int beginIndex,int endIndex) 提取字符串


toLowerCase() 将字符串中的英文字符全转成小写字母
toUpperCase() 将字符串中的英文字符全转成大写字母

trim() 去掉字符串首尾的空格


输出特定日期是星期几
以键盘录入的形式提供3个整数,按顺序分别表示为年、月、日。如果只输入一个
整数则表示年,需要判断该年是否是闰年;如果输入两个整数,则表示年和月,需要
输出该年中该月的天数;如果输入3个整数,表示为年、月、日,需要输出 今天是:xxxx年xx月xx日。
实现要求:
1)、使用String类的split()方法,用“,”将字符串分割放在一个String类型的数组中。
2)、结算某天是星期几,首先要判断这一年是闰年还是平年,再判断月份,最后判断日,
再今天是:xxxx年xx月xx日。

字符串对齐调整器
本实验主要作用将指定的字符串可以按照左、中、右三种形式对齐,而且可以设置一行中可以
最多显示多个字符,如果多于指定的最大字符数则在下一行中显示。
实现要求:
1)、在定义好的一个字符串中,选择一个位置插入一定数量的空格,这样文字就会对齐。
2)、如果字符串的长度大于一行的最大字符数,就插入换行符(“\n”),这样在显示它时,
将分行显示。


"ABCDEFGHIJKLMN"

int hangCount=10;

"ABCDEFGHIJ\\nKLMN" ABCDEFGHIJ
KLMN

------------------------------------------------------------------------------------------


日期时间类
Date类
long time = System.currentTimeMillis();
Date d = new Date(time);
System.out.println(d);

//时间格式对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 (a hh:mm:ss)");
//格式化时间
String str = sdf.format(d);
System.out.println(str);






Calendar 日历类 ( 抽象类 )
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int mons = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int min = c.get(Calendar.MINUTE);
int sec = c.get(Calendar.SECOND);
System.out.println(year + "年" + mons + "月" + day + "日 " + hour + ":"
+ min + ":" + sec);

--------------------------------------------------------------------------------------
Random 随机数类
// 创建随机数对象
Random rd = new Random();
for (int i = 0; i < 10; i++) {
// 从int范围内随机一个整数
//int t = rd.nextInt();
//从0~100之间取随机整数 0<= t <100
int t = rd.nextInt(100);
System.out.println(t);
}









Scanner 扫描器类



--------------------------------------------------------------------------
集合框架 预先定义的一组数据结构类
一维数组 线性的 长度固定的 有下标 内存地址连续的
二维数组
动态数组 线性的 长度可变的 有下标 内存地址连续的 【查找数据比较快 插入删除比较慢】
链式列表 现行的 长度可变的 内存地址随机分配 【插入删除比较快 查找数据比较慢 】




泛型:在定义类的时候不明确指定数据类型 而是等到实例化的时候再确定

Collection 一组对象 包括List Set Queue
列表【有序的序列 允许重复的元素】 List
ArrayList 动态数组
LinkedList 列 表【可作为栈 队列和双端队列使用】
Stack 堆栈【先进后出】
Vector 动态数组【主要用在多线程中】
集合【不包含重复元素】 Set


-------------------------------------------------------------------------------------
任务1: 自定义一个栈【先进后出】
实现方式1:用数组实现
实现方式2:用列表实现
任务2:模拟实现一个HashSet
集合【不包含重复元素】Set

HashSet[不保证迭代顺序]

TreeSet[排序集合]
要放入TreeSet中的数据必须是可以排序的:
基本类型
String
实现了Comparable接口的类

队列 Queue
PriorityQueue 排序队列【优先级队列】

主要方法:插入数据到队列add(E e) offer(E e)
移除队列的头 poll()

PriorityBlockingQueue 阻塞队列【同步队列 用在多线程中】
主要方法:插入数据到队列 add(E e) offer(E e)
移除队列的头 poll()

任务1:给定任意一个整数数组 去掉数组中的重复元素 并对的数据排序
任务2:使用数组或者链表实现队列
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值