13.常用类
错题
1.有如下4条语句:()
有如下4条语句:()
Integer i01=59;
int i02=59;
Integer i03=Integer.valueOf(59);
Integer i04=new Integer(59);
以下输出结果为false的是: [单选题]
您的回答:A 、System.out.println(i01==i02);
正确答案:
C、System.out.println(i03==i04);
2. Object类中的方法有哪些?分别是什么?
equals():判断两个对象的内容是否相等,此方法需要在子类重写。否则这个方法表示的意思是是否为同一个对象;
toString():将对象转成字符串;当调用System.out.println()时,会自动调用对象的此方法;
hashcode():哈希码;
getClass():返回当前对象的类对象;
clone():克隆出一个新对象;
finalize():垃圾回收前执行的方法;
wait():线程等待;
notify(),notifyAll():呼唤其它线程
【补充笔记】
1.某些类可以重写
toString
方法,改变默认的字符串形式,例如
String
类、
Date
类、一些集合类
println
方法默认调用打印对象的
toString
方法
2.两个对象的
equals
默认比较的是
==
也就是比较的是地址
,在子类中可以通过重写
equals
方法 描述子类的对象比较什么,例如
,String
类就重写了
equals
方法,比较的是两个字符串的内容是否相同
3.当垃圾回收器要回收一个对象时,调用对象的
fifinalize
方法完成回收,注意,这个方法时由垃圾
回收器自动调用的,而程序员主动调用这个方法,没有作用。
程序员可以重写
fifinalize
方法,在回收对象时要
执行的代码可以写在重写的方法中
3.equals的作用是什么?Object类的equals方法有哪些协定?
equals()方法是比较两个对象的内容是否相同,此方法需要在子类中重写;如果不重写,比较的将是地址; 重写equals方法的要求
自反性:即a.equals(a)一定返回true;
对称性:即a.equals(b)与b.equals(a)的结果一定是相同的;
传递性:x.equlas(y)=true,y.equals(z)=true,那么x.equals(z)一定等于true;
一致性:对于x.equals(y)的结果,多次调用,结果相同;
对于一个对象与null比较,结果一定为false;
4.【编程题】有一个字符串,"那车水马龙的人世间,那样地来 那样地去,太匆忙"编程计算出最后一次出现"那"的位置。
public class Test {
public static void main(String[] args) {
String str = "那车水马龙的人世间,那样地来 那样地去,太匆忙";
int ch = str.lastIndexOf("那");
System.out.println(ch);
}
}
5.
【编程题】判断输入的字符串是否是 .java 结束,方法如下:
public boolean isJavaFile(String str);
提示:public boolean endsWith(String suffix)
public class Test5 {
public static boolean isJavaFile(String str) {
return str.endsWith(".java");
}
public static void main(String[] args) {
System.out.println(Test5.isJavaFile("Hello.tet.mp3.java"));
}
}
6. 定义一个方法,根据身份证号来获得性别,方法的定义如下
public String getSex(String idcard);
例如;
getSex(“230101198912112337”); 此时返回的将是"男";
getSex(“230101198912112349”); 此时返回的将是"女";
public class Test6 {
public static String getSex(String idcard) {
String s = idcard.substring(idcard.length()-2,idcard.length()-1);
if((Integer.parseInt(s)&1)==0) {
return "女";
}
return "男";
}
public static void main(String[] args) {
System.out.println(Test6.getSex("230101198912112307"));
}
}
7.有如下格式的字符串name-age-sex-address,解析出姓名,年龄等信息。
例如:张三丰-19-男-哈尔滨市南岗区
public class Test {
public static void info(String str){
String string[] = str.split("-");
for (int i = 0;i<string.length;i++){
System.out.println(string[i]);
}
}
public static void main(String[] args) {
String str = "name-age-sex-address";
info(str);
}
}
public class Person{
private String name;
private int age;
private char sex;
private String addr;
public Person(String name, int age, char sex, String addr) {
super();
this.name = name;
this.age = age;
this.sex = sex;
this.addr = addr;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "姓名:"+name+",年龄:"+age;
}
}
public class Test7 {
public static void main(String[] args) {
String str = "张三丰-19-男-哈尔滨市南岗区东方新天地";
String[] strs = str.split("-");
Person p = new Person(strs[0],Integer.parseInt(strs[1]),strs[2].charAt(0),strs[3]);
System.out.println(p);
}
}
笔记
API
object类(见第2题)
Math类(略)
包装类
Java
为八个基本类型,提供了对应的八个包装类,
每个包装类中封装了对应的一个基本类型属性
。
八个包装类:
Byte
、
Short
、
Integer
、
Long
、
Float
、
Double
、
Character
、
Boolean
Integer
类的使用
Integer
类中封装了一个
int
属性,要创建一个
Integer
对象,一定要为对象的
int
属性指定一个
int
值
因此
Integer
类的构造器有两个 :
Integer(int value); 将
value
的值赋给
Integer
对象的
int
属性
Integer(String value); 将value
字符串的值
解析
成
int
值 赋给
Integer
对象的
int
属性
int
值 包装成
Integer
对象
public static void main(String[] args) {
//在JDK11不推荐
Integer integer1 = new Integer(10);
//在JDK11不推荐
Integer integer2 = new Integer("10");
//推荐使用
Integer integer3 = Integer.valueOf(10);
Integer integer4 = Integer.getInteger("10");
}
获得Integer对象的int值
public static void main(String[] args) {
Integer integer = Integer.valueOf(10);
int i = integer.intValue();
System.out.println(i); }
Integer
类中常用的方法:
1. parseInt(String str)
方法 :返回结果是
int
,将字符串解析为
int
值
public static void main(String[] args) {
//将100字符串 解析 为int
System.out.println(Integer.parseInt("100")+1); }
2. toBinaryString
、
toHexString
、
toOctalString
方法:转为二进制、八进制、十六进制的字符串形式
自动拆装箱
自动将一个
int
包装为
Integer
对象(装箱),自动将一个
Integer
对象的
int
值获得(拆箱)
![](https://i-blog.csdnimg.cn/blog_migrate/482e69d302e829e96580792b9cc16f05.png)
包装类都重写了
equals
方法,比较的是封装的值
下一篇 14.字符串 15.异常处理