问题: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方法。//保证参数也是字符串,否则不会比较属性值而直接返回falseStringBuilder 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_UPSystem.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]);}}
}