Math类里面常用的一些方法
我们来看一下,大家都知道有一个Math类,而里面有哪些我们经常用的方法呢, 我们来看一看,Math的常用方法,我们暂时先用这么多
```java
public static void main(String[] args) {
//圆周率
System.out.println("圆周率:"+Math.PI);
//绝对值
System.out.println("绝对值:"+Math.abs(-11.5));
//ceil,返回最小的(最接近负无穷大) double 值,该值大于等于参数,并等于某个整数
System.out.println("ceil:"+Math.ceil(11.5));
//floor,返回最大的(最接近正无穷大) double 值,该值小于等于参数,并等于某个整数
System.out.println("floor:"+Math.floor(11.5));
//四舍五入:round
System.out.println(Math.round(11.2));
//随机数:rundom,但这个随机数的值是0-1
System.out.println("随机数:"+Math.random());
//需求,随机生成1-10的数字
System.out.println(Math.floor(Math.random()*10));
//需求:指定大小的数组,使用随机生成随机的下标
String[] a=new String[3];
System.out.println("数组的下标:"+Math.floor(Math.random()*a.length));
}
```java
这个呢,是我们的一个另外知识点,toString的用法,==和eqause的区别
public static void main(String[] args) {
Test test=new Test();
//运行的Class文件和运行时类的路径 class cn.yunhe.threeday.api.Test
//他返回的是一个类的路径
//不准确涉及到反射,还没有讲
System.out.println("获取到运行时类的路径(不准确)"+test.getClass());
//返回的是一个hash码值,理解为返回的是十六进制转换前的地址值
System.out.println("hashCode值:"+test.hashCode());
Test test2=new Test();
System.out.println(test2.hashCode());
//toString()默认返回该对象的路径+地址 自动调用,现在的地址值是十六进制的
//String底层用的是一个char数组用来维护
//String类是最终类,字符串是常量
System.out.println(test.toString());
System.out.println(test);
// ==用于基本数据类型时比较的是值,用于数据类型比较的是地址
// equals在字符串中是先比较地址后比较类容
Test test3=test;
System.out.println(test==test2);
System.out.println(test==test3);
System.out.println(test.equals(test2));
System.out.println(test.equals(test3));
}
接下来,我们来看一下String中都有哪些常用和不常用还有必须要会的方法
```java
/*
* String中有用而且常用的方法,而且必须要会的
*/
public static void method2() {
//replace() 替换
String url="http://abc.news.baidu.com";
String newUrl=url.replace("baidu","jingdong");
System.out.println(newUrl);
//subString() 截取 如果只有一个参数,代表开始,直到末尾结束
System.out.println(url.substring(7));
//subString() 截取 如果有两个参数,参数一代表开始,参数二代表结束,(不包含末尾的)
System.out.println(url.substring(7,9));
//这个Length是方法,数组里的length是属性,这个length方法的意思是到末尾结束
System.out.println(url.substring(7,url.length()));
//split() 分割 参数代表要拆分的依据\\.这个.是特殊符号,必须要加依据
String[] urlArr=url.split("\\.");
//-2是倒数第二个,分割后需要第几个就拿倒数的第几个
System.out.println(urlArr[urlArr.length-2]);
System.out.println("转换为纯大写"+url.toUpperCase());
}
/*
* String中有用的不是很常用的方法
*/
public static void method() {
String str="hi juni";
//这个char值相当于字符串的下标
System.out.println("指定索引处的char值"+str.charAt(1));
//跟上面的反过来了,这个是从前面指定的开始
System.out.println("指定char值对应的索引"+str.indexOf("i"));
//这个是从最后面指定的开始
System.out.println("指定char值对应的索引"+str.lastIndexOf("i"));
String compare1="adc";
String compare2="aac";
System.out.println(compare2.compareTo(compare1));
System.out.println(compare2.concat(compare1));
System.out.println("是否包含指定的字符串"+str.contains("hello"));
String url="http://www.baidu.com";
System.out.println(url.endsWith("cn"));
System.out.println(url.startsWith("http"));
//将字符串转换为字节数组
byte[] bts=str.getBytes();
print(bts);
System.out.println("判断字符串是否为空字符:"+"sss".isEmpty());
}
/*
* String中的构造方法
*/
public static void constructorMethod() {
String str=new String();
//str是一个空字符串,null是一个空对象
System.out.println(str+"--"+null);
String str2=new String("haha");
System.out.println(str2);
String str3="heihei";
System.out.println(str3);
byte[] byteArr= {97,99,98,100};
String str4=new String(byteArr);
System.out.println(str4);
char[] charArr= {'a','b','c'};
String str5=new String(charArr);
System.out.println(str5);
//源码的写法
String result="";
for(int i=0;i<charArr.length;i++) {
result+=charArr[i];
}
System.out.println(result);
}