问题:Java面试知识点:Object类、BigDecimal类、自动装箱、拆箱
答案:
1.Object类:
代码如下:
package com.xy;
/**
* @ProjectName: day01
* @Package: com.xy
* @ClassName: test03
* @Author: 杨路恒
* @Description:
* @Date: 2021/8/13 0013 17:33
* @Version: 1.0
*/
public class test03 {
public static void main(String[] args) {
Student student=new Student("杨大大","23");
System.out.println(student);
System.out.println(student.toString());
Student student1=new Student("杨大大","23");
System.out.println(student.equals(student1)); //Object类中的equals方法,底层也是用==号比较地址值
String s="abc";
//1.此时调用的是String类中的equals方法。
//保证参数也是字符串,否则不会比较属性值而直接返回false
StringBuilder stringBuilder=new StringBuilder("abc");
System.out.println(s.equals(stringBuilder));
//2.StringBuilder类中是没有重写equals方法,用的就是Object类中的。
System.out.println(stringBuilder.equals(s));
}
}
package com.xy;
import java.util.Objects;
/**
* @ProjectName: day01
* @Package: com.xy
* @ClassName: test04
* @Author: 杨路恒
* @Description:
* @Date: 2021/8/13 0013 20:06
* @Version: 1.0
*/
public class test04 {
public static void main(String[] args) {
Student student=new Student("杨大大","23");
System.out.println(Objects.toString(student)); //返回参数中对象的字符串表示形式
//如果第一个参数不是 null ,则返回在第一个参数上调用 toString的结果,否则返回第二个参数。
System.out.println(Objects.toString(null,"null"));
System.out.println(Objects.isNull(student)); //返回 true如果提供的参考是 null ,否则返回 false 。
System.out.println(Objects.nonNull(student)); //返回 true如果提供的参考是非 null否则返回 false 。
}
}
2.Math类
代码如下:
package com.xy;
/**
* @ProjectName: day01
* @Package: com.xy
* @ClassName: test01
* @Author: 杨路恒
* @Description:
* @Date: 2021/8/13 0013 13:27
* @Version: 1.0
*/
public class test01 {
public static void main(String[] args) {
int abs = Math.abs(-10); //返回参数的绝对值
System.out.println(abs);
double ceil = Math.ceil(10.1);//向上取整
System.out.println(ceil);
double floor = Math.floor(10.1); //向下取整
System.out.println(floor);
long round = Math.round(10.1); //四舍五入
System.out.println(round);
double pow = Math.pow(6, 2);//返回a的b次方幂
System.out.println(pow);
double random = Math.random();//返回为double的正值
System.out.println(random);
}
}
3.BigDecimal类
代码如下:
package com.xy;
import java.math.BigDecimal;
/**
* @ProjectName: day01
* @Package: com.xy
* @ClassName: test05
* @Author: 杨路恒
* @Description:
* @Date: 2021/8/14 0014 9:25
* @Version: 1.0
*/
public class test05 {
public static void main(String[] args) {
System.out.println(10.0/3.0);
BigDecimal bigDecimal=new BigDecimal(10.0);
BigDecimal bigDecimal1=new BigDecimal("0.3");
System.out.println(bigDecimal);
System.out.println(bigDecimal1);
BigDecimal bigDecimal2=new BigDecimal("10.0");
System.out.println(bigDecimal2.add(bigDecimal1)); //和为
System.out.println(bigDecimal2.subtract(bigDecimal1)); //减为
System.out.println(bigDecimal2.multiply(bigDecimal1)); //积为
//返回BigDecimal其值为(this / divisor) ,其首选比例为(this.scale() - divisor.scale()) ;
// 如果无法表示准确的商(因为它具有非终止的十进制扩展),则抛出ArithmeticException 。
// System.out.println(bigDecimal2.divide(bigDecimal1));
//参数一:表示参数运算的另一个对象
//参数二:表示小数点后精确到多少位
//参数三:舍入模式
//进一法 BigDecimal.ROUND_UP
//去尾法 BigDecimal.ROUND_FLOOR
//四舍五入 BigDecimal.ROUND_HALF_UP
System.out.println(bigDecimal2.divide(bigDecimal1,2,BigDecimal.ROUND_UP));
System.out.println(bigDecimal2.divide(bigDecimal1,2,BigDecimal.ROUND_FLOOR));
System.out.println(bigDecimal2.divide(bigDecimal1,2,BigDecimal.ROUND_HALF_UP));
}
}
4.自动装箱、拆箱
代码如下:
package com.xy;
/**
* @ProjectName: day01
* @Package: com.xy
* @ClassName: test06
* @Author: 杨路恒
* @Description:
* @Date: 2021/8/14 0014 9:51
* @Version: 1.0
*/
public class test06 {
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
Integer integer=new Integer(6);
Integer integer1=new Integer("66");
System.out.println(integer);
System.out.println(integer1);
Integer integer2 = Integer.valueOf(6);
Integer integer3 = Integer.valueOf("66");
System.out.println(integer2);
System.out.println(integer3);
Integer integer4=6; //自动装箱,Java底层会帮我们自动的调用valueof方法
System.out.println(integer4);
int i=integer4;
System.out.println(i);
String s="6";
System.out.println(integer4+Integer.parseInt(s));
String s1="91 27 46 38 50";
int[] arr=new int[s1.length()];
int index=0;
String s2="";
for (int j = 0; j <s1.length() ; j++) {
if(s1.charAt(j)==' '){
arr[index]=Integer.parseInt(s2);
index++;
s2="";
}
else {
s2+=s1.charAt(j);
}
}
arr[index]=Integer.parseInt(s2);
for (int j = 0; j <arr.length ; j++) {
System.out.println(arr[j]);
}
}
}