【Java基础】常用类

Object类

  • java.lang.Object
    类层次结构的根类
    每个类都使用 Object 作为超类
    所有对象(包括数组)都实现这个类的方法
  • 构造方法:public Object()
    Object类的构造方法有一个,并且是无参构造;
    所以子类的构造方法默认访问的是父类的无参构造方法;
  • 成员方法:
    ① public String toString():返回该对象的字符串表示;
    默认是由类的全路径+’@’+哈希值的十六进制表示;
    getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
    这个表示其实是没有意义的,一般子类都会重写该方法;
    直接输出一个对象名称,其实默认调用了该对象的toString()方法;
    ② public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”;
    默认情况下,比较的是地址值是否相同;

面试题:== 和 equals() 的区别

==:

  • 对于基本类型,比较的是值是否相同;
  • 对于引用类型,比较的是地址值是否相同;

equals():

  • 只能比较引用类型,默认比较的是地址值是否相同;
  • 可以重写该方法,比较对象的成员变量值是否相同;

Scanner类

  • java.util.Scanner
  • 用于接收键盘录入数据
  • 构造方法:
    System类下有一个静态的字段:
    public static final InputStream in;
    标准的输入流,对应于键盘录入
    InputStream is = System.in;
    Scanner(InputStream is)
    常用的格式
    Scanner sc = new Scanner(System.in);
  • 基本方法格式:
    public boolean hasNextXxx():判断是否是某种类型的元素;
    public Xxx nextXxx():返回某种类型的元素;
  • 要掌握的两个方法:
    public int nextInt():获取一个int类型的值;
    public String nextLine():获取一个String类型的值;

eg:同一个Scanner对象,先获取数值,再获取字符串,会出现问题如何解决?

主要原因:就是那个换行符号的问题;
解决方案:
① 先获取一个数值后,重新创建一个新的Scanner对象获取字符串;
② 把所有的数据都先按照字符串获取,然后再进行相应的转换;

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
Scanner sc2 = new Scanner(System.in);
String s = sc2.nextLine();
System.out.println("a:" + a + ",s:" + s);

System类

  • java.lang.System
    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部;
  • 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类;
    但其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用;
  • 成员变量:
    System类内部包含三个成员变量:
    in 标准输入流(键盘输入)
    out 标准输出流(显示器)
    err 标准错误输出流(显示器)
  • 成员方法:
    ① native long currentTimeMillis():返回当前时间与1970年1月1日0时0分0秒之间的时间差;
    ② void exit(int status):退出程序,其中status的值为0代表正常退出,非零代表异常退出;
    ③ void gc():请求系统进行垃圾回收;
    ④ String getProperty(String key):获得系统中属性名为key的属性对应的值;

Math类

  • java.lang.Math
    提供了一系列静态方法用于科学计算;
abs  绝对值
sqrt  平方根
pow(double a,doble b)  a的b次幂
acos,asin,atan,cos,sin,tan  三角函数
log  自然对数
exp  e为底指数
max(double a,double b)  最大值
min(double a,double b)  最小值
random()  返回0.01.0的随机数
long round(double a)  double型数据a转换为long型(四舍五入)
toDegrees(double angrad)  弧度—>角度
toRadians(double angdeg)  角度—>弧度

eg:Math.round(11.5)等于多少? Math.round(-11.5)等于多少?

Math.round(11.5) == 12;
Math.round(-11.5) == -11;
round方法返回与参数最接近的长整数,参数加1/2后求其floor

字符串相关的类

字符串相关API:String类、 StringBuffer类 、StringBuilder类

基本类型包装类

JDK5新特性:自动装箱与自动拆箱

日期时间相关的类

JDK8之前的日期时间API:System类、Date类、SimpleDateFormat类、Calendar类

Arrays工具类的使用

Arrays工具类的使用,成员方法的源码分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值