笔试题小结

910人阅读 评论(3) 收藏 举报
分类:

1.编写从给定字符串中提取所有数字字符的方法,如参数是”Stock3num00Amar38sf0”,返回”300380”;

方式一:

思路 遍历每个字符,求出结果,用StringBuilder拼接

    public String getNum(String input){
        StringBuilder sb = new StringBuilder();
        for (char c:input.toCharArray())
          sb.append(c);
        return sb.toString();
    }

方式二:

用正则可以获取连续数字

    public String getNum(String input){
        String pattern = "\\d+";
        Pattern r = Pattern.compile(pattern);
        Matcher matcher = r.matcher(input);
        StringBuilder sb = new StringBuilder();
        while (matcher.find()) {
            sb.append(matcher.group());
        }
        return sb.toString();
    }

方式三
类似foreach
这个是线程安全,不过貌似没什么用

 public String getNum(String input){
        StringBuilder sb = new StringBuilder();
        Arrays.stream(str.split("")).forEach(s ->{
            if (s.matches("\\d"))
                sb.append(s);
        });
        return sb.toString();
    }

2.现有先进后出栈接口 Stack 定义如下,请解释下程序中<T>的含义,再用ArrayList做一个具体实现类ArrayListStack。

public interface Stack<T> {
    void push(T obj);//放入一个元素
    T get();//查看最后放入的元素
    T pop();//获取最后放入的元素
}

<T>的含义:
<T>是泛型的默认值,可以被任意类型所代替
泛型意为 参数化类型 目的是将原本的类型参数化。

泛型三种:

      [1]ArrayList<T> al=new ArrayList<T>();指定集合元素只能是T类型
      [2]ArrayList<?> al=new ArrayList<?>();集合元素可以是任意类型,这种没有意义,一般是方法中,只是为了说明用法
      [3]ArrayList<? extends E> al=new ArrayList<? extends E>();
        泛型的限定:
           ? extends E:接收E类型或者E的子类型。
           ?super E:接收E类型或者E的父类型。

1.在整个类中只有一处使用了泛型,使用时注意加了泛型了参数不能调用与参数类型有关的方法比如“+”,比如打印出任意参数化类型集合中的所有内容,就适合用通配符泛型<?>
2. 当一个类型变脸用来表达两个参数之间或者参数与返回值之间的关系时,即统一各类型变量在方法签名的两处被使用,或者类型变量在方法体代码中也被使用而不仅 仅在签名的时候使用,这是应该用自定义泛型<T>。泛型方可以调用一些时间类型的方法。比如集合的add方法。
<?>一般用来在类的形参中。

解决:

import java.util.ArrayList;

public class ArrayListStack<T> extends ArrayList<T>  implements Stack<T> {

    ArrayList<T> arrayList =new ArrayList<>() ;

    @Override
    public void push(T obj) {
        arrayList.add(obj);
    }

    @Override
    public T get() {
        return arrayList.get(arrayList.size()-1);
    }

    @Override
    public T pop() {
        return arrayList.remove(arrayList.size()-1);
    }
}

3.设计一个图形系统,包括抽象图形接口Shape,轴对称接口Rotational,中心对称接口 Central,具体图形包括:长方形 Rectangle正方形 Square 图形 Circle 三角形 Triangle 正三角形 RegularTriangle

public interface Shape {
    double getCircumference();//求周长
    double getSquare();//求面积
}
public interface Rotational{}
public interface Central {}

A、画出这些接口和图形类的类图,可加文字说明
B、写出图形Circle类的实现代码

A、
这里写图片描述

B、

public class Circle implements Shape,Rotational,Central {

    double radii;

    public Circle(double radii) {
        this.radii = radii;
    }

    @Override
    public double getCircumference() {
        return 2*Math.PI*radii;
    }

    @Override
    public double getSquare() {
        return Math.PI*radii*radii;
    }
}

}

四.简单的存款系统有四张表:
客户信息:customer(customer_name,customer_street,customer_city)

客户名称 客户街道 客户城市

支行信息:branch(branch_name,branch_city)

支行名称 支行城市

账户信息:account(account_name,branch_name,balance)

账户名称 支行名称 余额

存款信息:depositor(account_name,customer_name)

账户名称 客户名称

主:上表中除了账户信息的余额字段balance是数字类型,其它的都是字符串类型。
解释下面的问题或书写SQL:
1. 说明关系数据库中事务的用途和特点;
2. 写SQL,为客户信息表的城市字段customer_city添加索引;
3. 写SQL,查询:“上海”市,“南京东路”街道的客户列表,输出客户名称,城市,街道;
4. 写SQL,查询所有“中国”或“北京”开头的客户的客户名称,所在城市和街道;
5. 写SQL,查询“北京”市客户的账户信息,包括客户名称,账户名称,支行名称,余额;
6. 写SQL,查询每个支行的账户数和平均余额;
7. 写SQL,制作以客户城市为基准的全国城市存款排行榜,存款最多的排在最前面;
8. 写SQL,把“北京天天租车有限责任公司”的街道地址变更为“上地西路”。

1.数据库事务:
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位

常见用途:银行转账,下单减库存。
2.

ALTER TABLE `customer` ADD INDEX customer_city( `customer_city` )

3.

SELECT customer_name,customer_city,customer_street FROM customer WHERE  customer_city='上海' AND customer_street = '南京东路';
    4.
SELECT customer_name,customer_city,customer_street FROM customer  WHERE customer_name='北京%' OR customer_name='中国%';

5.

SELECT D.customer_name,A.account_name,A.branch_name,A.balance 
FROM  account AS A   
WHERE  A.branch_name =(SELECT branch_name FROM branch WHERE branch_city='北京' )
inner join  depositor  AS D 
ON A.account_nam=D.account_name;

6.



SELECT branch_name,cout(*),avg(balance) from  branch inner join account on branch.account_name = account.account_name;

7.

这里写代码片

8.

UPDATE customer SET customer_street='上地西路' WHERE customer_street='北京天天租车有限责任公司';
查看评论

Js 在字符串中提取数字

一 parseInt()方法:          首先想到的是js提供的parseInt方法,例子:          var str ="4500元"; var ...
  • xie_xiansheng
  • xie_xiansheng
  • 2017年03月23日 13:47
  • 3486

笔试题小结

1.编写从给定字符串中提取所有数字字符的方法,如参数是”Stock3num00Amar38sf0”,返回”300380”;方式一:思路 遍历每个字符,求出结果,用StringBuilder拼接 ...
  • boom_man
  • boom_man
  • 2017年10月23日 13:33
  • 910

JAVA部分面试题总结,部分答案不是很详细

1.Java中的callable和runnable的区别:        A:runnable和callable都代表在不同的线程中要执行的任务,runnable在jdk1.0开始就有了,call...
  • hynfq_
  • hynfq_
  • 2018年01月06日 19:14
  • 223

笔试题小结

static作用1 封装 2 保持变量的持久。  3默认初始化为0win32类型大小int 4 long 4short 2double 8float 4char 1动态联编又称动态关联   定义:  ...
  • sada09
  • sada09
  • 2010年11月02日 22:40
  • 339

嵌入式软件开发:笔试总结

刚参加了某个公司的关于嵌入式软件开发的一场笔试。
  • gzbaishabi
  • gzbaishabi
  • 2014年09月20日 09:55
  • 1916

课后小结

变量按按作用域划分: 局部变量:在方法或语句块中声明的变量。生命周期只在定义变量的{  }内,方法或语句块一结束,局部变量消失,所以局部变量不能跨方法或语句块使用。 成员变量(属性):在类中,方法...
  • qq_35794501
  • qq_35794501
  • 2016年09月10日 16:39
  • 98

近期笔试题小结

对近期笔试题的一个小小的小结 一、标准C的笔试题大概也就做过一次,大概是因为公司做手机吧。这题里面影响比较深的是volatile关键词吧。网上的评价是,这个关键词的掌握是普通C程序员和嵌入式C程序员的...
  • RaReXray
  • RaReXray
  • 2008年08月07日 10:38
  • 1509

安卓笔试题小结

1.下列属于SAX解析xml文件的优点的是? 将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 不用事先调入整个文档,占用资源少 整个文档调入内存,浪费时间和空...
  • zzldm
  • zzldm
  • 2016年10月23日 17:26
  • 328

大二寒假小结(上)

今天打表,寒假第六天,现在是凌晨两点。这短短的六天过得真是快。先简要说说我都怎么安排的吧:早上八点起床用手机百词斩记下一百个单词;中午吃完饭之后开始刷题,学算法;晚上吃饭之后继续刷;宵夜吃完之后靠在床...
  • feizaoSYUACM
  • feizaoSYUACM
  • 2017年01月19日 02:07
  • 315
    个人资料
    持之以恒
    等级:
    访问量: 16万+
    积分: 3680
    排名: 1万+
    博客专栏