`

支付宝的几个题目

阅读更多

1、将一个网址的中间部分截取出来,得到alipay.com

 

//使用正则表达式
private static void p(String s) { 
    Pattern p=Pattern.compile("alipay[.]com");//要取出的字段 ,正则规范
    Matcher m=p.matcher(s); 
    while(m.find()){ //如果找到了与规范字段匹配的
    System.out.println(m.group()); //打印出匹配的字段
     System.out.println(m.start()); //打印出第一个匹配的位置
  }
}



 

    按照字符串的数字将字符串拆分

public class Regex{
     public static void main(String[] args){
            String str = "A1B22C333D4444E55555F";
            String pat = "\\d+";
            Pattern p = Pattern.compile(pat);
            String s[] = p.split(str);//根据数字拆分 取出字符串中的非数字字符
            for(int x=0;x<s.length;x++){
                  System.out.print(s[x]+"\t");
                }
}}

 2、编程序将一个字符串反转

   

 public class StringReverse {
  public static void main(String[] args) {
  // 原始字符串
  String s = "A quick brown fox jumps over the lazy dog.";
  System.out.println("原始的字符串:" + s);
  System.out.print("反转后字符串:");
  for (int i = s.length(); i > 0; i--) {
  System.out.print(s.charAt(i - 1));
  }
  // 也可以转换成数组后再反转,不过有点多此一举
  char[] data = s.toCharArray();
  System.out.println();
  System.out.print("反转后字符串:");
  for (int i = data.length; i > 0; i--) {
  System.out.print(data[i - 1]);
  }
  }
  }
  public class StringReverse {
  public static void main(String[] args) {
  // 原始字符串
  String s = "A quick brown fox jumps over the lazy dog.";
  System.out.println("原始的字符串:" + s);
  System.out.print("反转后字符串:");
  for (int i = s.length(); i > 0; i--) {
  System.out.print(s.charAt(i - 1));
  }
// 也可以转换成数组后再反转,不过有点多此一举
  char[] data = s.toCharArray();
  System.out.println();
  System.out.print("反转后字符串:");
  for (int i = data.length; i > 0; i--) {
  System.out.print(data[i - 1]);
  }
  }
  }
  运行结果:
  1、原始的字符串:A quick brown fox jumps over the lazy dog.
  2、反转后字符串:.god yzal eht revo spmuj xof nworb kciuq A
  3、反转后字符串:.god yzal eht revo spmuj xof nworb kciuq A
  以上两种方式虽然常用,但却不是最简单的方式,更简单的是使用现有的方法:
  Java代码
  public class StringReverse {
  public static void main(String[] args) {
  // 原始字符串
  String s = "A quick brown fox jumps over the lazy dog.";
  System.out.println("原始的字符串:" + s);
  System.out.print("反转后字符串:");
  StringBuffer buff = new StringBuffer(s);
  // java.lang.StringBuffer类的reverse()方法可以将字符串反转
  System.out.println(buff.reverse().toString());
  }
  }
  运行结果:
  1、原始的字符串:A quick brown fox jumps over the lazy dog.
  2、反转后字符串:.god yzal eht revo spmuj xof nworb kciuq A 

 

 

3、jsp中的forward和redirect的区别

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

区别       

类别
概念
共享数据
应用
Redirect
URL重新定向:可以是任意的URL
不能共享request里面的数据
一般用于用户注销登录时返回主页面和跳转到其它的网站等等
Forward
页面的转发:只能是同一个Web应用程序的其他Web组件
转发页面和转发到的页面可以共性request里面的数据
一般用于用户登录的时候根据角色转发到相应的模块等等

 

4、触发器的作用是什么

触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
ORACLE产生数据库触发器的语法为:
create [or replace] trigger 触发器名 触发时间 触发事件
on 表名
[for each row]
pl/sql 语句
其中:
触发器名:触发器对象的名称。由于触发器是数据库自动执行 的,因此该名称只是一个名称,没有实质的用途。
触发时间:指明触发器何时执行,该值可取:
before---表示在数据库动作之前触发器执行;
after---表示在数据库动作之后出发器执行。
触发事件:指明哪些数据库动作会触发此触发器:
insert:数据库插入会触发此触发器;
update:数据库修改会触发此触发器;
delete:数据库删除会触发此触发器。
表 名:数据库触发器所在的表。
for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。
举例:下面的触发器在更新表auths之前触发,目的是不允许在周末修改表:

create trigger auth_secure
before insert or update or delete file://对整表更新前触发
on auths
begin
if(to_char(sysdate,'DY')='SUN'
RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');
end if;
end

 

5、接口和抽象类区别

区别一,两者表达的概念不一样。抽象类是一类事物的高度聚合,那么对于继承抽象类的子类来说,对于抽象类来说,属于“是”的关系;而接口是定义行为规范,因此对于实现接口的子类来说,相对于接口来说,是“行为需要按照接口来完成”。

区别二,抽象类在定义类型方法的时候,可以给出方法的实现部分,也可以不给出;而对于接口来说,其中所定义的方法都不能给出实现部分。

区别三,继承类对于两者所涉及方法的实现是不同的。继承类对于抽象类所定义的抽象方法,可以不用重写,也就是说,可以延用抽象类的方法;而对于接口类所定义的方法或者属性来说,在继承类中必须要给出相应的方法和属性实现。

区别四,在抽象类中,新增一个方法的话,继承类中可以不用作任何处理;而对于接口来说,则需要修改继承类,提供新定义的方法。


如下给出两者的简单对比表格。

 

 

接口

抽象类

多继承

支持

不支持

类型限制

没有

有,只能是引用类型

方法实现

继承类型中必须给出方法实现

继承类中可以不给出

扩展性

比较麻烦

相对比较灵活

多层继承

比较麻烦,需要借助虚函数

比较灵活

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics