14-4-15java面试

今天的面试真算开眼界了 !有点奇葩,也有点收货!

一问:java中,main函数可以重载么

  答:重载:在类中,可以对一同名而含有不同参数个数和参数类型的方法 是可以定义的!(自己的理解)也就是说,在一个类里(范围,这点很重要),同名方法可以有不同的声明方式,包括参数类型不同和参数个数不同!同时,方法的返回类型可以不同!(这点要记住)
言归正传,java中,main函数可以重载,但是,main函数是java application 程序的一个入口,其格式已被虚拟机固定化!就是说,改变了main函数的格局(即重载),虚拟机是识别不出来的,也就没有可能执行main方法的代码!
拓展:关于main方法!重写可以么?其参数 String[] agrs是什么意思? String  args[] 和String [] args有区别么?

期待有识之士解惑答疑哦!不一一阐述了!

二问:java中,什么是序列化,为什么要序列化,何时序列化

答:1,简单的说(自己的理解),序列化就是将java对象做持久化的一种操作!这样做的特点是将对象的内容长久保存。
      2,因为java程序是在java虚拟机中运行的,而java调用的对象也是如初。当java程序员需要一个跨空间(即不同电脑)来获得该对象时就需要用到序列化了!将对象序列化成流,方便传输,同时通过反序列化,获得对象内容。
      3, 进行对象序列化与反序列化的两个流 ObjectInputStream    : 用于反序列化对象的流     ObjectOutputStream   : 用于序列化对象的流

//部分代码省略,实例如下!

public class TestPerson {
public static void main(String[] args)throws Exception {
Person p = new Person();
p.setAge(25);
p.setName("
yzhsh");
p.setSex(1);
ArrayList<String> infos 
= new ArrayList<String>();
infos.add("一些其他信息");
infos.add("另外一些其他信息");
p.setOtherInfo(infos);
/*
*  将Person实例p序列化后写入文件 
*/
FileOutputStream fos
= new FileOutputStream("person.obj");
/*
* ObjectOutputStream(OutputStream out)
* 那么OOS就会将给定的对象序列化(将对象转化为对应的
* 字节)后,通过给定的字节输出流写出
* 这里我们传入文件字节输出流,这样就将对象转换为
* 字节后写入文件了
*/
ObjectOutputStream oos
= new ObjectOutputStream(fos);
/*
* writeObject(Object o)
* 将给定的对象转换为字节后写出
*/
oos.writeObject(p);

oos.close();

/*
* 将对象从文件中读取回来

*/

FileInputStream fis
= new FileInputStream("person.obj");
/*
* ObjectInputStream(InputStream in)
* 从给定的流中读取字节,并进行反序列话对象
*/
ObjectInputStream ois
= new ObjectInputStream(fis);
/*
* Object readObject()
* 用于反序列化对象的方法 
*/
Person p1 = (Person)ois.readObject();
System.out.println(p1.getName());
System.out.println(p1.getAge());
System.out.println(p1.getSex());
System.out.println(p1.getOtherInfo());
/*
* 反序列化回来的对象与原对象内容相同,
* 但不是同一个对象
*/
System.out.println(p.equals(p1));//true
System.out.println(p == p1);//false

ois.close();
}
}

三问:在双层嵌套for循环里,然后跳出循环?跳出当前循环的方式有哪些?(答完接着问)break在哪些地方用到?

答:这是break的另一种用法,即标签+break;就是用不同的标签可以控制多重循环时,跳出的点。网上可以收到,自己用的少,一下子卡住了没打出来(其实就是不知道,呵呵)。第二问,是很容易的。跳出当前循环的方式有 break,return。

第三问,break的用法就答出两个,循环和switch.....case语句,其实想来很简单,break无非就是终止java语句的,顺序语句,条件语句,循环语句,java就这三个,break使用于其中两个!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值