1:try -catch-finally,finally在什么情况下不会执行
1)finally那代码出现异常
2)所在线程死亡了
3)在上面的代码中使用了 System.exit(),强制退出了。
4)关闭了CPU.
2:泛型是什么:
泛型主要是参数化类型,利用一个参数来表示任意类型。
泛型好处:
1),类型安全。 泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。
2),消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。
3),潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的 JVM 的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要 JVM 或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。
3:面向对象是什么?
答:首先:面向对象是一种思想,基于面向过程,可以将复杂问题简单化。其次:它使我们从执行者变为了指挥者,比如说公司现在就是在用面向对象的思维来思考解决问题。公司招人,说明公司在发展壮大,需要一些具备专业编程的人来做事情,从而实现公司的盈利。而我就是那个具备编程能力的对象,所以这就是一种面向对象的思想。
4:static 和 final?
static 如果没有赋初值,则默认为零,而final则必须赋初值。
5:
String,StringBuffer以及StringBuilder之间的关系
(1)线程安全
StringBuffer 线程安全
StringBuilder 线程不安全
(2)速度
一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的。
(3)总结
如果要操作少量的数据用 = String
单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
6:HTTP和HTTPS的区别
HTTP(超文本传输协议)HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提 供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息, 比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,必须使用另外一种协议HTTPS(安全套接字层超文本协议),是在HTTP协议基础上增加SSL协议,SSL依据依靠证书的功能来验证服务器的身份,并为了浏览器和服务器之间通信加密,
区别如下:
1)https协议需要到ca申请证书,一般免费证书很少,需要交费
2)http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
3)http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4)http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
7:java的数据类型
java数据类型图: ┏数值型━┳━整数型:byte short int long ┏基本数据类 型<strong>-------</strong>┫ ┗━浮点型:float double ┃ ┣字符型:char 数据类型------╋ ┗布尔型:boolean ┃ ┏类(class) ┗引用数据类型━━╋接口(interface) ┗数组(array)
引用类型 就是在变量中存储的不是值而是一个内存中的地址的数据类型。也就是说 变量中存储了这个变量的值所在内存中的地址 每次调用这个变量都是引用这个地址而得到真正的值 所以叫引用类型。
8:异常的类型
exception异常分为两种:检查异常和运行异常
检查异常:IO异常和数据库异常
运行异常:NULLPointerException(空指针异常),ClasscastExcetion(类型转换异常),ArrayIndexOutBundsException(数组越界异常),ArrayStoreException(数组存储异常),BufferOverflowException(缓冲区溢出异常)