关闭

笔试题小结

636人阅读 评论(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='北京天天租车有限责任公司';
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

小米2017校园招聘笔试题

句子反转 时间限制:C/C++语言 1000MS;其他语言 3000MS 内存限制:C/C++语言 65536KB;其他语言 589824KB 题目描述: 给定一个句子(只包含字母和空格), ...
  • lezong2011
  • lezong2011
  • 2016-09-23 21:44
  • 1530

【面试笔试】Java常见面试笔试总结

Java常见面试笔试总结 1、有哪些数据类型 2、面向对象的语言特征 3、有几种访问机制? 4、面向对象的多态性在JAVA中怎么实现的 ? .......
  • jianyuerensheng
  • jianyuerensheng
  • 2016-04-22 13:59
  • 6968

2016年腾讯校招笔试题(研发岗)

最近互联网笔试较频繁,也跟着师兄一起做了一些公司的笔试题,先将题记录下来吧,答案慢慢补。希望对自己明年找工作有帮助!首先上腾讯的笔试题,腾讯是我的梦想offer啊啊啊啊啊啊啊! 一、不定项选择题...
  • xiaoquantouer
  • xiaoquantouer
  • 2016-09-17 15:38
  • 6774

java试题小结可以下载的

  • 2011-05-13 01:07
  • 72KB
  • 下载

前端笔试题的小结(1)

1.rem和em的区别? 2.不定宽高的div的水平垂直居中? 3.关于margin的重叠问题? .a{ background:#ff0000; } ....
  • sunlijie1118
  • sunlijie1118
  • 2017-12-19 09:33
  • 45

面试题小结-面试题小结

  • 2009-06-30 12:36
  • 242KB
  • 下载

黑马程序员面试题 JavaScript数字和字符串转换小结(转)

JavaScript数字和字符串转换小结: 1. 数字转换为字符串 a. 要把一个数字转换为字符串,只要给它添加一个空的字符串即可: var n = 100; var n_as_string ...
  • lljjmxgs
  • lljjmxgs
  • 2013-12-05 16:32
  • 371

年终小结之搜房网面试题(二)

花了好久才把博客给弄好,想把博客写的顺自己心的真是很难呢。         安排好了,如果是代码量很多的话,就一般在csdn上发表,如果是一般的总结,就是在网易博客上面来发表。当然如果是吐槽的话,嘿嘿...
  • The_One_is_all
  • The_One_is_all
  • 2015-01-11 20:31
  • 1135

面试题小结(6)

1. 扑克牌的推理 P先生、Q先生都具有足够的推理能力。这天,他们正在接受推理面试。 他们知道桌子的抽屉里有如下16张扑克牌: 红桃 A、Q、4 黑桃 J、8、4、2、7、3 草花 K、Q、...
  • day__day__up
  • day__day__up
  • 2015-07-11 21:41
  • 532

2016年末,Android岗位BAT等大厂面试题知识点小结(一)Android基础部分

前段时间网上到处都传一个比较火的帖子,名叫《2016年未,腾讯,百度,华为,搜狗和滴滴面试题汇总》,自己也看了看,发现知识点挺广的,所以试着尽力小结了下,也算是自我学习。对于各种知识点的详细解释,我给...
  • bit_kaki
  • bit_kaki
  • 2017-01-03 21:37
  • 4910