当前位置: 首页 > 工具软件 > Tcl Java > 使用案例 >

TCL的笔试题

何华灿
2023-12-01

TCL的笔试题2020


1.java中基本数据类型包括哪些?数值类型包括哪些?

基本数据类型包括:四种整数类型(byte、short、int、long)、两种浮点数类型(float、double)、一种字符类型(char)、
一种布尔类型(boolean)。
数值类型包括:四种整数类型(byte、short、int、long)、两种浮点数类型(float、double)。

2.抽象类与接口的异同是什么?他们的主要使用的场景有哪些?

(1)抽象类:
使用abstract修饰且没有方法体的方法。特点:
① 抽象方法没有方法体,交给子类实现
② 抽象方法修饰符不能是private final static
③ 抽象方法必须定义在抽象类或者接口中
包含抽象方法的类,即使用abstract修饰的类。
特点:
① 抽象类不能被实例化,只能被继承
② 抽象类中可以不包含抽象方法(不包含抽象方法就没有太大意义,可以作为工具类防止被实例化)
③ 抽象类的子类可以不实现该类所有的抽象方法,但也必须作为抽象类(抽象派生类)
④ 抽象类的构造方法不能定义成私有(子类构造方法会调用父类构造方法)
⑤ 抽象类不能使用final修饰,final修饰的类不能被继承。

(2)Java中的接口
在JAVA编程语言中是接口一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
① 接口中没有构造器,不能被实例化
② 接口只能继承接口,不能继承类,接口支持多继承
③ 接口中的定义的成员变量,默认是public static final修饰的静态常量
④ 接口中定义的方法,默认是public abstract修饰的抽象方法
⑤ 接口中定义的内部类,默认是public static修饰的静态内部类

3.springCloud的五大基本组件

①服务发现——Netflix Eureka
一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。Netflix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。

②客服端负载均衡——Netflix Ribbon
Ribbon,主要提供客户侧的软件负载均衡算法。

③断路器——Netflix Hystrix
断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。

④ 服务网关——Netflix Zuul
类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

⑤分布式配置——Spring Cloud Config
这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

4.判断字符串是否相等

 //测试字符串
        String luo="hello";
        String bo="he"+new String("llo");
        System.out.println(luo==bo);//false

5.测试String修饰的字符串能否被改变

public class StringTest {
    public static void main(String[] args) {
        //测试输出
        String str="word";
        changeStr(str);
        System.out.println("最终输出的字符串="+str);//word 
    }
    public static  void  changeStr(String str){
        str="hello";
    }
}

6.继承关系

public class TestExtends {
    String name;
    public TestExtends() {
    }
    public TestExtends(String name) {
        System.out.println(2);
        this.name = name;
    }
    public static void main(String[] args) {
        new Child("输出");
    }
}
class Child extends  TestExtends{
    TestExtends  father;

    public Child(String name){
        System.out.println(3);
        this.name=name;
        father=new TestExtends(name+":F");
    }
    public Child(){
        System.out.println(4);
    }
}
//最终的输出为:3
               2

7.分析下面程序的出结果

public class Test {
    static boolean foo(char c){
        System.out.println(c);
        return true;
    }
    public static void main(String[] args) {
        int i=0;
        for(foo('A');foo('B')&&i<2;foo('C')){
            i++;
            foo('D');
        }
    }
}
//最终结果:A
            B
            D
            C
            B
            D
            C
            B
 类似资料: