java面试6

1.Redis是单线程还是多线程?为什么能支持访问量和高并发?并举例解释?

1)Redis是单线程的

2)Redis是单线程加多路IO复用

3)例子:上课老师解决同学们的提问

2.Nginx有哪些基本功能

1)   反向代理

2)负载均衡

3)动静分离

3.描述Explain的作用,并简述字段id,type,key,rows,extra在sql优化的作用

1)Explain的作用:使用WXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySql是如何处理你的Sql语句的。

分析你的查询语句或是表结构的性能瓶颈。

2)id:表的读取顺序。

4.面向对象的特征主要有以下几个方面

1)抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两面。

抽象只关注对象有哪些属性和行为,而不关注这些行为的细节是什么。

2)继承:继承是从已有类得到继承信息创建新类的过程。继承让变化中的软件系统有了一定的延续性。

3)封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

 

5.解释内存中栈、堆和静态存储区的用法

通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用内存中的栈空间;而通过new 关键字和构造器创建的对象放在堆空间。程序中的字面量(literal)如直接书写的100、“hello”和常量都是放在静态存储区中。栈空间操作最快但是也很小,通常大量的对象都是放在堆空间,整个内存包括硬盘上的虚拟内存都可以被当做堆内存来使用。

String  str =  new String("hello");

上面的语句中str放在栈上,用new创建出来的字符串对象放在堆上,而“hello”这个字面量放在静态存储区。

6.在java中,如何跳出当前的多重嵌套循环?

在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环。

7.构造器(constructor)是否可被重写(override)?

构造器不能被继承,因此不能被重写,但可以被重载。

8.两个对象值相同(x.equals(y)==true),但却有不同的hash code,这句话对不对?

不对  

9.JVM加载class文件的原理机制?

JVM中类的装载是由累加载器(ClassLoader)和它的子类来实现的,java中的类加载器是一个重要的java运行时系统组件,它负责在运行时查找和装入类文件中的类。

 

posted @ 2019-09-13 17:03  一条程序狗  阅读(195)  评论(0编辑  收藏  举报