JAVA企业面试题精选 Java SE 100-105

3.101.将某网页评论提交给后台的字符串str中,如果包含有”\”,”<”,”>”,”=”四种符号的,过滤掉以后防止系统被执行恶意代码.写出你的Java代码

String str = "<<楼主说的非常对!\\和谐社会,科学上网>=."
参考答案:
public class Q101{
    //过滤特殊字符
    public static String StringFilter(String str) throws PatternSyntaxexception{
        String regEx = "{=\\\\<>}";
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(str);
        return m.replaceAll("").trim();
    }

    public static void main(String[] args){
        String str = "<<楼主说的非常对!\\和谐社会,科学上网>=.";
        System.out.println(str);
        System.out.println(StringFilter(str));
    }
}

3.102.现在给你一个新一代身份证号,默认为18位号码;如果该号码是15的话,请在第6位后面加上”19”,并且在末尾加上”X”;如果是18位,则不变

参考答案:
import java.util.Scanner;

public class Q102{

    public static String change18(String cardId){
        StringBuilder sb = new StringBuilder(cardId);
        return sb.insert(6,"19").append("X").toString();
    }

    public static void main(String[] args){
        System.out.println("请输入身份证号:");
        Scanner scan = new Scanner(System.in);
        String idCard = scan.next();
        if(idCard.length() == 15){
            idCard = change18(idCard);
        }
        System.out.println(idCard);
    }
}

3.103.编写一个方法

  给你一个字符串数组String s[] = {“A”,”B”,”C”,”D”,”E”,”F”},请随机生成一个数,比如:生成的数为2,则输出数组中随机两个元素的组合B,E或者A,C等;生成数为3,就为三个随机元素组合
参考答案:
public class Q103{

    public List<String> group(int count,String[] str){
        List<String> list = new ArrayList<String>();
        for(int i = 0; i < str.length; i++){
            String result = "";
            result = str[i];
            for(int j = i + 1; j < str.length; j++){
                for(int h = 0; h < count - 1; h++){
                    if((j + h) < str.length){
                        result += str[j + h];   
                    }
                }
                if(result.length() == count){
                    list.add(result);
                }
                result = str[i];
            }
        }
        return list;
    }

    public static void main(String[] args){
        String[] s = {"A","B","C","D","E","F"};
        List<String> list = new Q103().group(3,s);
        System.out.println(list);
    }
}

3.104.请编写一个对于Java例外处理的完整的程序

参考答案:

  本案例以自定义异常为例说明Java异常处理的完整过程.
  首先新建自定义异常类NotNumberException,该异常可以在某个字符串不为数字组成的情况下抛出,代码如下;

public class NotNumberException extends Exception{

    public NotNumberException(){
        super();
    }


    public NotNumberException(String message, Throwable cause){
        super(message, cause);
    }

    public NotNumberException(String message){
        super(message);
    }

    public NotNumberException(Throwable cause){
        super(cause);
    }
}

  然后,新建类ExceptionDemo,在类中添加parseInt方法,该方法用于将字符串转换为整数类型,当该字符串不是由数字组成时,使用throw抛出上面自定义的异常NotNumberException,并且在方法声明除,使用throws声明抛出该异常,然后在main方法中调用parseInt方法时,使用try-catch处理异常.代码如下:

public class ExceptionDemo{

    public static void main(String[] args){
        //如果调用了有异常抛出的方法,就必须处理异常.
        try{
            int i = parseInt("32145");
            System.out.println(i);
        } catch (NotNumberException e){//异常的处理
            System.out.println(e);
        }
    }
    /** 将字符串转换为整数值 */
    public static int parseInt(String str) throws NotNumberException{//声明异常的抛出
        int sum = 0;
        for(int i = 0; i < str.length(); i++){
            char c = str.charAt(i);
            if(c < '0' || c > '9'){
                throw new NotNumberException("不是数字呀!");//异常抛出点
            }
            sum = sum * 10 + (c - '0');
        }
        return sum;
    }
}

3.105.编写自定义异常,处理输入字符串abc抛出异常,其他不抛出

参考答案:

  定义异常MyException,当输入字符串为abc时,抛出该异常.代码如下:

public class MyException extends Exception{

    private String errorMsg;

    public MyException(String errorMsg){
        this.errorMsg = errorMsg;
    }

    public String getErrorMsg(){
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg){
        this.errorMsg = errorMsg;
    }

    @Override
    public String toString(){
        return errorMsg;
    }
}

  定义TestException类,在main方法中接收控制台输入,当输入字符串为abc时,抛出异常MyException.代码如下:

import java.util.scanner;

public class TestException{

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        if(str.equals("abc")){
            throw new MyException("输入的字符串不正确!");
        }   
    }
}
搜集整理制作成chm格式文件,灰常给力 8、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。 对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。 Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行。从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。 9、Collection 和 Collections的区别。   Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap和Hashtable的区别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值