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运行时系统组件,它负责在运行时查找和装入类文件中的类。