java数据过大,要如何定义才能储存很大的值

java中我要求x的y次方,但是如果几十次方数据就过大了,要如何解决这个问题
x 的 y 次方
描述

求 x 的 y 次方,结果模10007

输入
一个正整数 x 和一个用数组表示的 y,如 [2, 0, 0] 表示 200

1 ≤ x≤ 2 ^ 31 -1

1≤y 数组长度≤ 2000

0≤ y 数组中的元素≤ 9

y 数组不会以 0开始,即不会出现类似 [0, 1, 0] 这种情况

输出
输出 x ^ y的值,结果模 10007

用biginteger,int不行的

可以使用BigInteger类型