【泰隆银行】校招it岗位笔试


1.java 面向对象三个原则

封装、继承、多态

2.java 代码

//输入
Scanner sc = new Scanner(System.in);
String input = sc.next();//输出一次,然后结束
while(true){
	System.out.println(sc.next());//可以多次输出,输入再输出,不会结束
}
String a;
int arr[];
arr.length;//统计数量
a.length();//统计长度
a.split("  ");//分割
//string-int
int i = Integer.parseInt("string");
int i = Integer.valueOf("string").intValue();
//string-double
double i =Double.parseDouble("string");
//string -float
float i=Float.valueOf(“string”);
 try {
            /**
             * 读文件
             */
            List list =new ArrayList();
            String ad ="C:\\Users\\孙海涛\\Desktop\\bu.txt";//文件地址
            File file=new File(ad);
            //FileReader字符流,2个字节读一次;InputStreamReader字节流,1个字节读一次
            //加buff对硬盘好,不需要读一次从硬盘里面在读一次,
            BufferedReader bf=new BufferedReader(new FileReader(file));
            String linTx;
            while ((linTx = bf.readLine()) != null){
                list.add(linTx);
            }
            bf.close();
            for (Object a: list){
                String abu=(String) a;
                System.out.println(abu);
            }

            /**
             * 存文件
             */
            //FileWriter 中true则当文件存在时,不覆盖内容,直接后面新增否则直接覆盖;默认是直接覆盖
            //FileOutputStream(),则覆盖掉该文件内容
            BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(file,true));
            bufferedWriter.write("dgfhfher");
            bufferedWriter.close();

        }catch (Exception e){
        }

3.sql性能优化

性能优化种类

4.删除增加列sql

已有表actor,且包含列last_name

//删除列
alter table actor drop  column last_name;
alter table actor drop last_name;
//增加列
alter table actor add last_name varchar(10);

5.二叉树深度计算

深度为m的满二叉树有2^m-1个结点;

二叉树的深度是从根节点开始(其深度为1)自顶向下逐层累加的;而二叉树高度是从叶节点开始(其高度为1)自底向上逐层累加的。虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。

二叉树介绍

6.编程题

主要是2题,1题是水仙花,1题是文件的输入保存

public class java_save {
    public static void main(String[] args) {
        Vector v = new Vector();
        try{
            BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
            String str ="";
            System.out.println("请输入:输入quit退出");
            while (!(str.equals("quit") || str.equals("QUIT"))){
                str= in.readLine();
                if (isValid(str))
                    v.add(str);
                else{
                    if(!(str.equals("quit")|| str.equals("QUIT")))
                        System.out.println("the string is not valid");
                }
            }
            System.out.println("请输入保存到的文件名");
            str =in.readLine();
//            String curDir = System.getProperty("usr.dir");//当前路径
            File savedfile = new File("C:\\Users\\孙海涛\\Desktop"+"\\"+ str);

            BufferedWriter out = new BufferedWriter(new FileWriter(savedfile));
            for (int i =0; i<v.size();i++){
                String tmp=(String) v.elementAt(i);
                out.write(tmp);
                out.write("\n");
            }
            out.close();
        }catch (Exception e){

        }
    }

    public static boolean isValid(String s){
        /**
         * 如果s不存在空格,会indexof会等于-1
         */
        if (s.indexOf(" ")>0){
            return  true;
        }else {
            return  false;
        }
    }
}

泰隆银行校招it岗位笔试部分的记录就先到这!接下来,是一些整理的c++要点概要!

额外补充

纯虚函数和虚函数

纯虚函数是指在 C++中, 函数可以用“virtual”和“= 0”关键字来声明。 该函数是一个虚函数,但是在声明时, 没有定义它的函数体。 它是一个空函数, 只提供函数声明, 而不提供实际实现。 由于它编译器不能确定如何实现, 因此需要在子类中实现它。 因此, 纯虚函数也被称为抽象函数。 形如:
在这里插入图片描述

虚函数和纯虚函数的特性

  1. 虚函数可以在类中声明, 也可以在类的外部声明, 编译器会自动将它们转换为虚函数;但是纯虚函数只能在类中声明, 而不能在类的外部声明。
  2. 虚函数可以有实现, 也可以没有实现; 而纯虚函数没有实现, 不可以有实现。
  3. 虚函数可以在子类中覆盖, 也可以不被覆盖; 而纯虚函数必须在子类中覆盖, 否则编译器将报错。
  4. 虚函数可以被多态调用, 也可以被静态调用; 而纯虚函数只可以被多态调用, 不可以被静态调用。

虚函数作用

C++中的虚函数的作用主要是实现了多态的机制。 而虚函数是通过虚函数表(V-Table)实现的。

多态

多态分为静态多态和动态多态。 而动态多态是通过虚表实现, 静态多态包括重载和模板, 这和虚表没关系。


构造函数不能声明为虚函数, 析构函数可以声明为虚函数, 而且有时是必须声明为虚函数。

构造函数为什么不能声明为虚函数?

答:

  1. 构造一个对象的时候, 必须知道对象的实际类型, 而虚函数行为是在运行期间确定实际类型的。 而在构造一个对象时, 由于对象还未构造成功。 编译器无法知道对象的实际类型是该类本身, 还是该类的一个派生类, 或是更深层次的派生类,无法确定。
  2. 虚函数的执行依赖于虚函数表。 而虚函数表在构造函数中进行初始化工作, 即初始化 vptr,让他指向正确的虚函数表。 而在构造对象期间, 虚函数表还没有被初始化, 将无法进行。 析构函数执行时先调用派生类的析构函数, 其次才调用基类的析构函数

析构函数为什么声明为虚函数?

答:如果析构函数不是虚函数, 而程序执行时又要通过基类的指针去销毁派生类的动态对象,那么用 delete 销毁对象时, 只调用了基类的析构函数, 未调用派生类的析构函数。 这样会造成销毁对象不完全。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻傻虎虎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值