公司笔试题答案汇总(四)

四、第四间鼎公
1.String是什么类型?
答:公司笔试题答案汇总(四)_第1张图片
String是引用类型,是一个类,传递参数时,是引用传递,也就是传给参数的是引用,是地址,参数拿到引用后,就指向了该引用在堆中所存在的常量,如果此时改变参数args的值,参数会指向另外的常量的地址,调用方法传递进来的那个变量引用不变,值不变。

2.Java中的String,StringBuilder,StringBuffer三者的区别?
答:a.String为字符串常量,StringBuilder,StringBuffer是字符串变量,String对象一旦创建之后该对象是不可以更改的,但后两者是变量,是可以更改的。
b.执行速度:StringBuilder>StringBuffer>String
c.StringBuilder是线程不安全的,StringBuffer是线程安全的
总结:a.string适用于少量的字符串操作的情况
b.StringBuilder适用于单线程下载字符缓冲区进行大量操作的情况
c.StringBuffer适用于多线程下载字符缓冲区镜像大量操作的情况

3.HttpSession的作用
答:httpSession是由javaWeb提供的,用来会话跟踪的类。
http是无状态协议,客户每次读取web页面时,服务器都会打开新的会话,而服务器不会自动维护客户的上下文信息,要实现会话跟踪就使用到Session。它是一种保存上下文信息的机制,针对每一个用户的,变量的值保存在服务器端,通过sessionId来区分不同过的客户。session是以cookie和URL重写为基础的,默认使用cookie来实现。系统会创造一个名为JSESSIONID的输出返回给客户端cookie保存起来。

4.连接池的工作原理
答:连接池的核心思想是连接的复用,通过建立一个数据库连接池,以及一套连接使用、分配和管理策略,使得该连接池中的连接得到高效,安全的复用,避免了数据库频繁建立和关闭的开销。连接池的工作原理主要由三部分组成,分别为连接池的建立,连接池中连接的使用管理,连接池的关闭。
第一:连接池的建立。一般在系统初始化时,连接池会根据系统配置建立,并在池中建立几个连接对象,一遍使用时能从连接池中获取。
第二:连接池的管理。连接池管理策略是连接池机制的核心。策略:
a.是否有空闲连接,存在就给客户使用
b.如果没有空闲连接,判断连接数是否达到最大连接数,没有则重新创建一个连接给客户
c.如果没有空闲连接,连接数也达到最大,则按设定的最大等待时间进行等待,如果超出最大等待时间,则给客户抛出异常
第三:连接池的关闭:当应用退出时,关闭所有连接池中的连接释放连接池中的资源

5.char类型可以存储汉字吗?
答:java中char类型是以Unicode编码存取字符的,Unicode编码字符集中包含了汉字,而且Unicode编码和char类型变量也是占用两个字节,所以是可以存储的。
6.abstract与interface的区别?
答:abstract是抽象类,interface是接口
区别:a.抽象类需要继承,用extends,interface需要实现,要用implements
b.一个类只能继承一个抽象类,接口可以实现多个
c.interface强调特定功能的实现,而抽象类强调所属关系
d.接口中定义的成员变量默认是public,static,final;抽象类中可以是private,protected,public
e.接口中的方法只能是public,默认为public abstract,抽象类中的抽象方法可以是public,protected
f.抽象类中可以有非抽象的普通方法,而接口中所有的方法都是抽象的
相同:两者都是抽象类,都不能实例化,interface的实现类和抽象类的子类都必须要实现已经声明的抽象方法

五、第五间(鼎昊)
1.==与equals的区别?
答: 前者:基本类型,比较的就是值是否相同
引用类型 ,比较地址值是否相同
后者(未重写时):引用类型,比较地址值是否相同

public boolean equals(Object obj) {
    //this - s1
    //obj - s2
    return (this == obj);

}
区别:a.前者可以用作基本类型的值比较和引用类型地址比较,后者只能比较引用类型地址值是否相同
b.后者可以被重写

2.静态类型有什么特点?
答:a.不能使用new关键字创建静态类的实例
b.仅包含静态成员
c.不能被实例化
d.密封的,不能被继承
e.不能包含实例的构造函数,但可以包含静态构造函数

3.&操作符合&&操作符有什么区别?
答:a.当&与&&两边是布尔量时,都作为逻辑运算时:&&具有短路功能,当第一个表达式的值为false时,则不再计算第二个表达式,&则两个表达式都执行
b.&&只能做逻辑运算符,&还可以用作位运算符,位与运算。

4.用最有效率的方法算出 2 乘以 8的结果
答:

public class TestLeft {
	public static void main(String[] args) {
		System.out.println(2<<3);
	}
}

5.cookie和session的作用、区别、应用范围?
答:
cookie作用:用于保存客户端请求服务器页面的请求信息。
session作用:保存每个用户的信息在服务器,并通过生成sessionID区分存储信息。
区别:a.cookie 保存于客户端,session保存于服务端
b.cookie存储的数据量很受限制,大多数浏览器支持的最大容量为4k;session的信息保存在web服务器中,保存的数据量可大可小。
c.cookie可以通过清楚浏览器缓存而被清除,不要用于保存敏感,重要的数据;session存在服务端,客户不会轻易删掉,可以用来存储保密性高,重要的数据。

6.简单的介绍下JVM是如何工作的?
答:公司笔试题答案汇总(四)_第2张图片
1)JVM的类加载器将java字节码文件(.class)中的二进制数据读入内存,将其放在运行时数据区的方法区内,然后在堆上创建java.lang.Class对象,封装类在方法区的数据结构。
2)执行引擎解释或编译类文件,再由即时编译器将字节码转化为机器码
3)运行时数据区

你可能感兴趣的:(笔试题答案)