显示当前xyz值的软件有啥

9、全链路压测做过吗怎么做的?

做过全链路我们在正式环境做的

全链路透传压测标志:必须有一种在全链路透传压测标志的能力,并且必须基于一次请求也就是同┅个traceId,现在大部分分布式业务都会接入trace系统,例如google的dapper,阿里的鹰眼等对trace系统进行改造,使其能够透传压测标志需要透传的路径大概有:

影子表:参与压测的业务,要逐个排查自己依赖的数据库然后创建影子表,影子表必须跟正常表的schema保持一致可以在每次压测时候手动创建,也可以推动DBA自动创建创建好影子表后,如果当前流量是压测流量那么写入和读取都走影子表。如果有自己的数据库中间件最好没有的话可以借助于Mybatis的Interceptor机制。

6)尽量模拟现实用户的行为,例如

什么情况下回出现Full GC什么情况下会出现Young GC

10、你们公司的jvm垃圾回收鼡的那种方法

答: copying ( 一般存活区使用这个算法)

11、jvm内存分配比例是多少

整个堆大小=年轻代大小 + 年老代大小 + 持丽代大小。持丽代

12、如果现在讓你做10000并发你怎么做的?

13、设计性能测试方案需要考虑哪些问题

时间成本、人力成本、环境&脚本可复用性、实现难度

14、压测中TPS上不去,那么你怎么分析这个问题

15、测试环境和生产环境服务器配比肯定不一样?怎么保证性能测试的数据正确性

然后在单台服务器上获得具体的性能指标,每台服务器能够承受500用户并发平均TPS为60,响应时间为2秒接着,添加负载均衡策略再次测试负载策略下的数据损耗。嘚出数据后添加1台负载均衡服务器测试在两台服务器下每台服务器的性能指标,以此类推

16、如何准备测试数据如何防止数据污染?

生產数据备份、数据隔离、测试数据落入影子库、挡板、mock都可以

17、线程和进程的区别

进程和线程都是一个时间段的描述,是CPU工作时间段的描述不过是颗粒大小不同;

(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元

18、如果发现瓶颈你怎么分析?

查找瓶颈时按以下顺序由易到难:服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶頸(参数配置数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)

19、简单说几个Nginx、Tomcat中的配置参数参数是干什么嘚?

20、Redis支持哪些数据类型

21、说几个你工作中调优过的几个实例

2、性能测试面试案例:

    22、如果现在在压测的时候cpu高,你怎么分析

    23、你做性能测试一般遇到哪些类型的性能问题

    A. OOM内存不足:1. 不断地申请对象后面对象申请不到内存资源(调整对象大小或扩容);2. 持续地启线程,申请栈资源造成内存不足(调整每个线程的堆栈大小Xss=256或者扩容)3. 频繁地触发FULL GC,造成OOM(调整新生代GC大小或降低GC的执行次数)

    B. 内存泄露:对象和線程等一直不释放资源导致内存泄露(释放不必要的引用、使用对象缓存池、采用合理的缓存失效算法、合理使用SoftReference和WeekReference:SoftReference的对象会在内存不夠用的时候回收,WeekReference的对象会在Full GC的时候回收)

    C. 线程死锁:两个线程占用不同的资源不释放造成线程死锁(规定资源执行顺序,但是也会造成鎖饥饿解决办法是减短锁释放时间)

    D. 锁争用:很多线程竞争互斥资源,但资源有限 造成其他线程都处于等待状态(使用非阻塞队列算法、拆分锁,去除读写操作的互斥尽可能少用锁)

    E. 堆栈资源不足:线程嵌套式地申请堆栈资源,导致堆栈资源不足(调整堆栈大小)

    F. Java进程消耗CPU过高:1. us高:执行线程不需要任何挂起动作且一直执行,导致CPU 没有机会去调度执行其他的线程(增加Thread.sleep,以释放CPU 的执行权降低CPU 的消耗);2. sy高:线程的运行状态要经常切换(降低线程数)

    G. 文件IO消耗严重:多个线程在写进行大量的数据到同一文件,导致文件很快变得很夶从而写入速度越来越慢,并造成各线程激烈争抢文件锁(异步写文件、批量读写、限流、限制文件大小)

    H. 网络IO消耗严重: 同时需要发送或接收的包太多。(限流限流通常是限制发送packet的频率,从而在网络IO消耗可接受的情况下来发送packget)

    24、线程的状态有几种?

    在Java当中线程通瑺都有五种状态,创建、就绪、运行、阻塞和死亡

    2、成员变量与局部变量的区别有那些?

    ① 成员变量是输入类的局部变量是在方法中萣义的变量或是方法的参数

    4、 重写和重载的区别?

    重载规则:必须具有不同的参数列表; 可以有不同的返回类型;可以有不同的访问修饰符;可以抛出不同的异常。

    ① 抽象类可以有构造方法接口中不能有构造方法

    6、Java支持多继承么?如果不支持如何实现?

    不支持,Java不支持多继承每个类都只能继承一个类,实现多继承有两种方式,一是接口,而是内部类

    构造方法是不能被子类重写的但是构造方法可以重载

    可以将 ArrayList想象成一种“会自动扩增容量的Array”。

    9、简述Java中实现多态的机制是什么

    11、Java中有哪些基本数据类型?String是基本数据类型吗String类是否能够继承?

    答:Integer是一个封装int类型的封装类默认值为null,int是Java中8中数据类型之一默认值为0.

    14、Java中堆和栈有什么不同?

    每个线程都有自己的栈内存用于存儲本地变量,方法参数和栈调用一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域

    1、数据库的樂观锁和悲观锁是什么?

    确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性乐观锁和悲观鎖是并发控制主要采用的技术手段。

    悲观锁:假定会发生并发冲突屏蔽一切可能违反数据完整性的操作

    Char是一种固定长度的类型,varchar是一种鈳变长度的类型

    1、智能网是在原有通信网的基础仩为快速提供新业务而设置的附加网络

    2、新业务的发展是网络由单纯地传递和交换信息,逐步向可存储和处理信息

    3、SSP称为业务交换点實现呼叫处理功能和业务交换功能。

    4、业务控制点SCP是智能网的核心功能部件其主要功能是接受SSP送来的查询信息并查询数据库,进行各种譯码

    5、智能外设IP通常具有各种语音功能,可以是一个独立的物理设备也可以是

    6、业务生成环境SCE的功能是根据用户的需求生成新的业务,智能网的重要目

    标之一就是便于新业务的开发从这个意义上说SCE是智能网的灵魂。7、智能网定义的4个功能平面是业务平面全局功能平媔,分布功能平面和物

    8、提出概念模型的目的是为了更好地理解智能网的概念使全世界能采用一种

    统一的方式来发展智能网。

    1、1、智能網的概念模型由()功能平面构成

    a)面向业务提供者的。

    b)面向业务设计者的

    c)面向网络设计者的。

    b)分别是欧洲标准和北美标准

    c)分别是国際电联的标准和北美标准。

    b)A类业务和B类业务

    a)移动通信网中的业务。

    6、INCS-1的国际标准被定义为

    7、智能网是建立在为提供增值业务而设置的网蕗结构

    C#试题解答一、 选择填空题(每空2汾共60分)


    中的代码隐藏文件的描述正确的是(a)

    a) Web
    窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互编程逻辑唯一与用戶界面不同的文件中。该文件称作为“代码隐藏”文件如果用C#创建,该文件将具有“.框架中服务器控件是为配合Web表单工作而专门设計的。服务器控件有两种类型它们是(a)


    中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(d )必要时还要设置參数尺寸。

    1. 传入某个属性的set方法的隐含参数的名称是什么
      value
      ,它的类型和属性所声名的类型相同
    2. 如何在C#中实现继承?在类名后加上一个冒号再加上基类的名称。
    3. C#支持多重继承么不支持。可以用接口来实现
    4. 被protected修饰的属性/方法在何处可以访问?在继承或间接继承与这个類的子类中可以访问
    5. 私有成员会被继承么?会但是不能被访问。所以看上去他们似乎是不能被继承的但实际上确实被继承了。
    6. C#提供┅个默认的无参数构造函数当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数这样我应该写几个构造函数?两个一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了所以需要手动实现那个无参数构造函数。
    7. C#中所有对象共同的基类是什么
      经典面试题目例如“.NET中类和结构的区别”、“的读者有所帮助。
        1 请你说说.NET中类和结构的区别?

        答:结构和类具有大體的语法,但是结构受到的限制比类要多结构不能申明有默认的构造函数,为结构的副本是又编译器创建和销毁的所以不需要默认的構造函数和析构函数。结构是值类型所以对结构变量所做的改变不会影响其的原值,而类是应用类型改变其变量的值会改变其原值。申明结构用Struck关键字申明类用class关键字,向方法传递结构是时是通过值传递的而不是通过引用。与类不同结构的实例化可以不使用New关键芓。类可以实现接口

        2, 死锁的必要条件?怎么克服?

        答:系统的资源不足进程的推进的顺序不合适,资源分配不当一个资源每佽只能被一个进程使用,一个资源请求资源时而此时这个资源已阻塞,对已获得资源不放进程获得资源时,未使用完前不能强行剥奪。

        3接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类?

        答:接口是可以继承接口的,抽象类是可以实現接口的抽象类可以继承实体类,但是有个条件条件是,实体类必须要有明确的构造函数

        5,当一个线程进入一个对象的方法后其它线程是否可以进入该对象的方法?

        答:不可以,一个对象的方法只能由一个线程访问

        6,用最有效的方法算出等已8对于几?

        答:2<<中使用了垃圾回收机制(GC)功能它替代了程序员,不过在C#中不可以直接使用finalize方法而是在析构函数中调用基类的finalize()方法。

        答:error表示恢复不是不可能但是很困难,exception表示一种实际或实现问题它表示程序运行正常不可以发生的。

        答:final用于申明属性方法和类,表示屬性不可变方法不可以被覆盖,类不可以被继承

        Finally是异常处理语句结构中,表示总是执行的部分

        Finallize表示是object类一个方法,在垃圾囙收机制中执行的时候会被调用被回收对象的方法

        答:HashMap是Hashtable的轻量级实现,非线程安全的实现他们都实现了map接口主要区别是HashMap键值可鉯为空null,效率可以高于Hashtable。

        答:Collection是集合类的上级接口Collections是针对集合类的一个帮助类,它提供一系列静态方法来实现对各种集合的搜索排序,线程安全化操作

        12,C#中委托是什么?事件是不是一种委托?

        答:委托是一种安全的类似与函数指针但是她比指针要安全的多,咜可以把方法作为一个参数传递给另一个方法可以理解为指向函数的引用。事件是一种消息机制它是一种委托,委托不带方法体

        答:Override是重写的意思,它表示重写基类的方法而且方法的名称,返回类型参数类型,参数个数要与基类相同

        Overload是重载是意思,它吔表示重写基类的方法但是只要方法名相同,别的可以不同

        答:页面之间传递值的几种方式?

        答:vs2003,vs2005里边都有发表机制,vs2003可以发咘然后在复制部署

        Vs2005可以直接部署到对应的位置。

        中的垃圾回收机制?

        答:.NET中的垃圾回收机制是引用程序对内存的回收和释放当每次用new关键字创建一个对象时,运行库都要从托管堆中为其分配内存因为空间是有限的,最终垃圾回收机制是要回收不用的内存的已释放内存,重新使用

        中所有类的基类是?

         页面之间传递值的几种方式。

      答:程序集(中间语言,源数据资源,装配清单)

      构架下remoting和webservice两项技术的理解以及实际中的应用

      答:WS主要是可利用HTTP,穿透防火墙而Remoting可以利用TCP/IP,二进制传送提高效率

      remoting是.net 中用来跨越machine, process, appdomain 进行方法调用的技术,对于三成结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM Web Service是一种构建应用程序的普通模型並能在所有支持internet网通讯的操作系统上实施。Web Service令基于组件的开发和web的结合达到最佳基于组件的对象模型

      <File FileName =”中常用的几种页面间传递参数的方法,并说出他们的优缺点

      cookie 简单,但可能不支持可能被伪造

      url参数 简单,显示于地址栏长度有限

      数据库 稳定,安全但性能相对弱

      答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的中常用的对象有哪些?分别描述一下

      中所有的自定义用戶控件都必须继承自________?

      中所有可序列化的类都被标记为_____?

      托管代码中我们不用担心内存漏洞,这是因为有了______?

      中类的错误处理机制是什么?

      下.net引用了垃圾回收(GC)功能,它替代了程序员 不过在C#中不能直接实现Finalize方法,而是在析构函数中调用基类的Finalize()方法

      不依赖于ole db提供程序,而是使鼡.net托管提供的程序,2:不使用com3:不在支持动态游标和服务器端游 4:,可以断开connection而保留当前数据集可用 5:强类型转换 6:xml支持

      提示帮助只有在分离的代码文件,無 法 在页面嵌入服务器端代码获得帮助提示,

      3 代码和设计界面切换的时候,中增加了40多个新的控件,减少了工作量

      120.重载与覆盖的区别

      答:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系是水平关系

      2、覆盖只能由一个方法,或只能甴一对方法产生关系;方法的重载是多个方法之间的关系

      3、覆盖要求参数列表相同;重载要求参数列表不同。

      4、覆盖关系中调用那个方法体,是根据对象的类型(对像对应存储空间类型)来决定;重载关系是根据调用时的实参表与形参表来选择方法体的。

      121.描述一下C#中索引器的实现过程是否只能根据数字进行索引?

      答:不是可以用任意类型。

      125.分析以下代码

      1)以上代码可以正确使用连接池吗?

      答:回答:如果传入的connectionString是一模一样的话可以正确使用连接池。不过一模一样的意思是连字符的空格数,顺序完全一致

      126.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识请简要谈一下您的思路:

      答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中

      127.什么是WSE?目前最新的版本是多少

      128.在下面的唎子里

      当使用new B()创建B的实例时,产生什么输出

      产生的输出结果是什么?

      答:声明方法的存在而不去实现它的类被叫做抽像类(abstract class)它用于偠创建一个体现某些基本行为的类,并为该类声明方法但不能在该类中实现该类的情况。不能创建abstract 类的实例然而可以创建一个变量,其类型是一个抽像类并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为取而代之,在子类中实现该方法知道其行为的其它类可以在类中实现这些方法。

      接口(interface)是抽像类的變体在接口中,所有方法都是抽像的多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽像的没有一个有程序体。接ロ只可以定义static final成员变量接口的实现与子类相似,除了该实现类不能从接口定义中继承行为当类实现特殊接口时,它定义(即将程序体給予)所有这种接口的方法然后,它可以在实现了该接口的类的任何对像上调用接口的方法由于有抽像类,它允许使用接口名作为引鼡变量的类型通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换instanceof 运算符可以用来决定某对象的类是否实现了接口。

    我要回帖

     

    随机推荐