基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Integer i1=10;//自动装箱
//i1=128
Integer i2=10;
//i2=128 i1==i2 false
Integer i3=new Integer(10);//在堆内存中开辟空间
Integer i4=new Integer(10);
//在Integer类加载时,自己有一个静态空间,内存储大小为Integer[] -128~127的对象 256个对象
//如果使用的对象范围在这个之内,直接取静态区中找对应的对象。如果超过了-128~127 则创建一个新的integer对象
System.out.println(i1==i2);//true
System.out.println(i1==i3);//false
System.out.println(i3==i4);//false
System.out.println(i1.equals(i2));//true
System.out.println(i1.equals(i3));//true
System.out.println(i3.equals(i4));//true
(略)查看API
PI E
abs():绝对值
ceil():向上取整
floor():向下取整
rint():临近的整数 如果两边一样(1.5 返回 2)则返回偶数
round():四舍五入
Math.pow(a,b):ab
double sqrt(a):a开根
random():[0,1)产生之间的double
(略)查看API
Random r=new Random();
int v3=r.nextInt();//随机产生一个整数 -2^32~2^32-1
int v4=r.nextInt(10);//范围0~10 [0,10)的int broud必须为整数 否则异常 ILLegalArgumentException
3. float v5=r.nextFloat();//[0.0,1.0)
4. r.nextBoolean;//随机产生 true false
UUID uuid=UUID.randomUUID();//生成一个32位 每一个位16进制的数 最后 为一个String (可以数据库key)
超过了long取值范围 使用数组来存储一些元素
import java.math.BigInteger
利用带String 创建对象`BigInteger bigInteger=new BigInteger("123");`
/**
* 计算给定数字的阶乘
*/
public BigInteger factorial(int num){
BigInteger result=new BigInteger("1");
for(int i=1;i<=num;i++){
result=result.multiply(new BigInteger(i+""));
}
return result;
}
DecimalFormat df=new DecimalFormat("##.00");
String vv=df.format(123.456);
System.out.println(vv);//0必须 #可有可无 默认四舍五入 123.46
long time= System.currentTimeMillis();//当前系统时间的毫秒值 可以做一个对程序的执行效率
System.out.println(time);
Date date1=new Date();//默认时当前系统时间
Date date2=new Date(1558317538831L);
System.out.println(date1);
System.out.println(date2);
System.out.println(date1.before(date2));//判断date1是否在date2之前
System.out.println(date1.after(date2));//判断date1是否在date2之后
System.out.println(date1.getTime());//获取Time 或者setTime
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//处理日期格式
//DateFormat
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String v=dateFormat.format(System.currentTimeMillis());
System.out.println(v);
Calendar calendar=Calendar.getInstance();//默认可以构造系统当前时间的对象
Calendar calendar=Calendar.getInstance();//默认可以构造系统当前时间的对象
System.out.println(calendar.get(Calendar.YEAR));//有一个date属性 可以获取年月日--
System.out.println(calendar.get(Calendar.MONTH));//MONTH从0开始
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.getTimeZone().getDisplayName()+" "+calendar.getTimeZone().getID() );
String s1="abc";//"abc"对象 存储在常量区 自动创建的
String s2="abc";
String s3=new String("abc");//堆new的对象
String s4=new String("abc");
System.out.println(s1==s2);//true
System.out.println(s1==s3);//false
System.out.println(s3==s4);//false
System.out.println(s1.equals(s2));//true 把继承于Object的equals方法进行重写了改成了字符集
System.out.println(s1.equals(s3));//true
System.out.println(s3.equals(s4));//true
private final char value[]
;//存储String中每一个字符 final最终的 不能改变的 数组的地址不能改变 数组长度不能改变 数组中的内容也不能改变private1.public boolean equals(Object anObject)
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
return len1 - len2;
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
public String toString() {
return this;
}
//1.无参构造 默认构建一个默认长度为16个空间的对象 char[]
StringBuilder builder1=new StringBuilder();
//2.利用给定的元素 构建一个没有字符的字符串缓冲区和指定的初始容量。 自定义长度空间对象 char[]
StringBuilder builder2=new StringBuilder(20);
//3.利用带参数的构造方法 默认数组长度字符串长度+16个 char[]
StringBuilder builder3=new StringBuilder("abc");
//4.
带有一定规范的表达式 匹配字符串格式
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
//matches("写格式")
boolean res=str.matches("a[abc]");
System.out.println(res);
/*
[abc]:abc中其中一个
[^abc]:不能是abc其中一个
[a-zA-Z]:表示a~z A~Z范围内
[a-z&&[^bc]] :a-z中一个 但是不能是b c
. :表示任意一个字符
\d:[0-9]
\D:[^0-9]
\s:留白 一个空格 回车 换行
\S :非留白
\w:word单词 [0-9A-Za-z]
\W:非单词
描述固定字符的出现次数
*/