java攻城狮面试题<二>

1 什么是可变参数? 可变参数允许调用参数数量不同的方法
  public int sum(int...numbers){
 int sum=0;
  for(int  number:numbers){
sum+=number;
}
    return sum;
}

   public static void main(String[] args){
 VariableArgumentExamples  example = new VariableArgumentExamples();
syso(example.sum(1,4,5));
syso(example.sum());
syso(example.sum(1,4,5,20));
}

 



2 断言的用途?
   断言是在Java1.4中引入的,它能让你验证假设  如果断言失败即返回false  就会抛出assrtionError(如果启用断言)
   private  int computerSimpleInteres(int pricipal){
  assert(privipal>0);
  return  100;
}
3 什么时候使用断言?
   断言不应该用于验证输入数据到一个public方法或命令行参数  
  illedalArgumentException会是一个更好的选择
   在public方法中,只用断言来检查他们根本不应该发生的情况
4 什么是垃圾回收?
     是java中自动内存管理的另一种叫法
      目的:为程序员保持尽可能多的可用堆
      jvm会删除堆上不再需要从堆引用的
5 用一个例子解释垃圾回收?
void  method(){
News  news=new  News();
 }
在堆上创建了News类的一个对象,函数执行结束后,引用变量news不再有效
6 什么时候运行垃圾回收?
垃圾回收在Jvm突发奇想和心血来潮时运行(堆可用内存不足)
7 垃圾回收的最佳做法?
   jvm通过调用system.gc()方法来运行垃圾回收,当内存已满,且堆上没有对象可用于垃圾回收是
 jvm可能会抛出outOfMemoryException  对象在被垃圾回收,即在堆上被删除之前,会运行finalize()方法
8 什么是初始化数据块?
      当创建对象或加载类时运行的代码  有两种类型的初始化数据块。静态初始化器:加载类时运行的代码
      实例初始化块: 创建新对象时运行的代码
9 什么是静态初始化器?
       public class initializeExamples{
 static int count;
int i;
  static{
  syso("static initializeer...");
  syso("count  when static initializer is run is"+count);
}
  public  static  void   main(String[]  args){

  InitialzeExamples  example=new  InitialzeExamples();
InitialzeExamples  example2=new  InitialzeExamples();
InitialzeExamples  example3=new  InitialzeExamples();
}
}

 输出: static initializer
        count when static initializer is run is 0.


10 什么是实例初始化快?
 public class initializeExamples{
 static int count;
int i;
  {
  syso("static initializeer...");
 i=6;
 count=count+1;
  syso("count  when static initializer is run is"+count);
}
  public  static  void   main(String[]  args){

  InitialzeExamples  example=new  InitialzeExamples();
InitialzeExamples  example2=new  InitialzeExamples();
InitialzeExamples  example3=new  InitialzeExamples();
}
}

输出:  static initializer
        count when static initializer is run is 1.
        static initializer
        count when static initializer is run is 2.
        static initializer
        count when static initializer is run is 3.
11 什么是正则表达式?
   正则表示式 能让解析 扫描 和分割字符串变得非常容易
  java中常用的正则表达式---patter  matcher scanner类
12  什么是令牌化?
  令牌化是指在分隔符的基础上将一个字符串分割为若干个子字符串  
  例如:分隔符;  分割字符串  ac;bd;def;e为四个子字符串
分隔符自身也可以是一个常见正则表达式
String.split(regex)函数将regex作为参数
13给出令牌化的例子?
    private static  void  tokenze(String  str,String regex){
      String[]  tokens=str.split(regex);
syso(Arrays.toString(tokens));
}
14 如何使用扫描器类令牌化
   private  static void tokenizeUsingScanner(String string,String regex){
    Scanner  scanner=new  Scanner(string);
scanner.userDeliiter(regex);
List(String)  matches=new  ArrayList<String>();
 while(scanner.hasnext()){
 matchers.add(scanner.next());

syso{ matchers};
}
}
     
15 如何添加小时到一个日期对象
  Date date=new  Date()'
  date.setTime(data.getTime()+6*60*60*1000);
syso(date);

  date=new  Date();
 date.setTime(date.getTime()-6*60*60*1000);
syso(date);
 
16  如何格式化日期对象?
   格式化日期对象需要使用DateFormat类完成
17 java中日历类的用途?
       calendar类 在java中用于处理日期
       calendar类提供了增加和减少天数  月数 和年数的简便方法
 
18 如何在java中获取日历类的实例
     calendar类不能通过使用new  calendar创建  得到calendar类实例的最好
办法是在calendar中使用getInstance()static()方法
   
19  解释一些日历类中的重要方法?
calendar.set(Calendar.Date,24);
calendar.set(Calendar.Month,8);
calendar.set(Calendar.YEAR,2010);

20  数字格式化类的用途
   数字格式用于格式化数字到不同的区域和不同的格式中
使用默认语言环境的数字格式
  syso(NumberFormat.getInstace().format(321.24f));  // 321.24
使用区域设置的数字格式 使用荷兰语言环境格式化数字
syso(NumberFormat.getInstance(new Locale("nl")).format(4032.3f));  // 4.032,3
使用德国语言环境格式化数字
syso(NumberFormat.getInstance(Local.GEMANY).format(4032.3f));  // 4.032,3
使用默认语言环境的格式化货币
syso(NumberFormat.getCurrencyInstance().fomat(40324.31f));  //  $40,324,31

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值