java.lang包(一)

今天在尚学堂学习,上午学习了java.lang包中的最后一些内容,主要讲解了一些String类,Math类,Object类,在这我做一个总结。

String类:

主要了解String类的一些方法:

String email;//该字符串在控制台由用户自己输入

int atIndex=email.indexOf("@");//该方法返回的是字符串email正序开始第一个@的下标

int atLastIndex=email.lastIndexOf("@");//该方法返回的是字符串email倒序开始第一个@的下标

int lastIndex=email.length-1;//最后一个字符下标

关于字符串应该注意的地方:

字符串判断相等不能用switch语句,只能用if~else语句

break用于跳出循环(如while循环,if~else循环,do~while循环),而return是用来返回一个值,跳出整个方法的,continue是用来跳出本次循环。


Math类:

1.Math类的构造方法为private

2.Math类中的所有方法为static类型

3.该类被修饰为final

Math ceil(double a)——返回不小于a的最小整数值

Math floor(double a)——返回不大于a的最大整数值

Math cos(double a)——a为弧度值

在这主要讲解一下Math类中的一个静态方法Math.random(),该方法是生成一个0.0~1.0的double值。该方法的原型为public static double random()。


Object类

1.所有的类都默认继承Object类,所以所有的类都会继承来自Object类中的方法。

2.当我们new一个类的对象,该对象其实是一个放在栈中的地址,该地址指向堆中该对象的内容,比如说:Student s=new Student();该Student类创建了一个对象为s,s存放在栈中,它指向堆中学生的数据,所以当我们要判断两个对象是否相等的时候,我们不能用obj1==obj2,因为这是比较的是两个对象的地址,并不是比较两个对象中的数据,如果要比较两个对象中的数据是否相等,需要先重写该类的equals方法,使所有成员属性相等才返回true,然后我们就可以用obj1.equals(obj2)来判断两个对象是否相等。

3.当我们想要打印一个对象中的数据内容的时候,传入对象名是没有用的,它仅仅只会打印出一个Hashcode地址,例如:

Student s=new Student();

System.out.println(s);

System.out.println(s.toString());

第一句打印出来的结果和第二句打印的结果是一样的,都是一个Hashcode地址,但是我们想要的是一个对象中的数据内容,这个时候我们就需要重写该类中的toString方法,让toString方法返回所有成员属性的值,再调用toString()方法就可以打印出一个对象的所有数据内容出来了。

4.有的时候我们需要判断一个对象的类型是否是某个类,这个时候我们可以用到一个关键字,为instanceof。代码为:

if(o instanceof Student){

System.out.println("o对象为Student类型");

}

当o对象的类型为Student的时候则返回true,打印出“o对象为Student类型”这段话。

5.Object类中有一个方法,该方法是在当对象被垃圾回收时调用,垃圾回收之前调用,但无法确定具体什么时候调用。该方法原型为:protected void finalize() throws Throwable。

6.Object类中有一个方法是public final void wait() throws InterruptedException,该方法是使当前线程进入到等待状态。

7.下面我要讲解一下获取字节码的问题,一种是获取引用型字节码(3种方式),另外一种是获取原始型字节码(1种方式)。

7.1.获取引用型字节码(3种)

第一种:引用型.class

例:获取Student类的字节码:Class c=Student.class;

第二种:对象.getClass()

例:获取Student类的字节码:Student s=new Student(); Class c=s.getClass();

第三种:Class.forName(classPath) 注意该方法是来自于Class类,classPath是该类的路径

例:获取Student类的字节码:Class c=Class.forName(cn.com.Student);

我们要特别注意一下forName(classPath)方法,该方法可以达到加载类的一个功能,当一个类从未被加载,当调用了Class.forName(classPath)方法后,该地址的类就会被加载进来。

7.2.获取原始型字节码(1种)

原始型.class

例:获取int型的字节码:Class c=int.class;该代码与Class c=Integer.TYPE;是等价的。在课堂上老师一直提示一句话“万事万物皆对象”,所以void也是有字节码的,它也可以通过Class c=void.class的方法获得。

8.Class的父类为Object,而Object又是Class的对象。Class c=Object.class;

9.下面有两个常用的方法:一个位getName()方法,一个是getSuperClass()方法。先看一个例子:

Class c=Student.getClass();

System.out.println(c.getName());

该方法是用来或得字节码的名称。另外一个例子:

Class c=Student.getClass()

System.out.println(c.getSuperClass());

该方法是用来获得c的父类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值