高亚科技公司笔试题目(附答案)

本文详细解析了Java编程中的常见笔试题,包括int和Integer的区别、String与StringBuffer的对比、运行时异常与一般异常的差异、final关键字的含义、error与exception的区别、字符串对象创建、集合接口继承关系、this()与super()的用法、ArrayList与LinkedList的特点。此外,还涵盖了数据库操作相关的SQL语句设计、触发器、视图以及表结构维护等知识点。
摘要由CSDN通过智能技术生成

目录

(一)int和Integer的区别

(二)String和StringBuffer的区别

(三)运行时异常和一般异常的区别

(四)final的意思

(五)error和exception的区别

(六)String s = new String("x"+"y"+"z")共创建多少个对象

(七)List,Set,Map是否继承Collection接口

(八)this()和super()的区别

(九)ArrayList和LinkListed的区别

编程题部分:

最后一题数据库题


(一)int和Integer的区别

1、Integer是int的包装类,int则是java的一种基本数据类型 
2、Integer变量必须实例化后才能使用,而int变量不需要 
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 
4、Integer的默认值是null,int的默认值是0

 

(二)String和StringBuffer的区别

1. String 类 , String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间。 String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向了其它地址。 因此String的操作都是改变赋值地址而不是改变值操作。 

2. StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。 每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,当字符串大小超过容量时,会自动增加容量。 
   StringBuffer buf=new StringBuffer(); //分配长16字节的字符缓冲区 
   StringBuffer buf=new StringBuffer(512); //分配长512字节的字符缓冲区 
   StringBuffer buf=new StringBuffer("this is a test")//在缓冲区中存放了字符串,并在后面预留了16字节的空缓冲区。 

3.StringBuffer 
StringBuffer和StringBuilder类功能基本相似,主要区别在于StringBuffer类的方法是多线程、安全的,而 StringBuilder不是线程安全的,相比而言,StringBuilder类会略微快一点。对于经常要改变值的字符串应该使用 StringBuffer和StringBuilder类。 

4.线程安全 
StringBuffer 线程安全 
StringBuilder 线程不安全 
5.速度 
一般情况下,速度从快到慢:StringBuilder>StringBuffer>String,这种比较是相对的,不是绝对的。 
6.总结 
(1).如果要操作少量的数据用 = String 
(2).单线程操作字符串缓冲区 下操作大量数据 = StringBuilder 
(3).多线程操作字符串缓冲区 下操作大量数据 = StringBuffer

 

(三)运行时异常和一般异常的区别

运行时异常与一般异常区别:
一般异常表示程序运行过程中可能出现的非正常状态;运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

Throwable是Java错误处理的父类,有两个子类:Error和Exception。

Error:无法预期的严重错误,导致JVM虚拟机无法继续执行,几乎无法恢复捕捉的

Exception:可恢复捕捉的。java健壮程序的手段。

Java提供了两类主要的异常:runtime exception和checked exception (编译时被检查的异常)。

checked exception (编译时被检查的异常):JAVA编译器强制要求我们必需对出现的这些异常进行catch或throws。所以,面对这种异常不管我们是否愿意,只能写一大堆catch块或throws去处理可能的异常。

如IO异常,以及SQL异常等。

runtime exception:编译通过,但运行通不过,出现RuntimeException,通常是程序员出错。虚拟机接管会终止线程或主程序。如错误的类型转换、数组越界访问和访问空指针等

 

(四)final的意思

  • 修饰变量:final成员变量表示常量,只能被赋值一次,赋值后值不再改变。
  • 修饰方法:final方法不能被子类方法覆盖,但可以被继承。
  • 修饰类:final类不能被继承,没有子类,final类中所有方法都是final的。

 

(五)error和exception的区别

Error类和Exception类都继承自Throwable类。

Error的继承关系:

Exception的继承关系:

二者的不同之处:

Exception:

1.可以是可被控制(checked) 或不可控制的(unchecked)。

2.表示一个由程序员导致的错误。

3.应该在应用程序级被处理。

Error:

1.总是不可控制的(unchecked)。

2.经常用来用于表示系统错误或低层资源的错误。

3.如何可能的话,应该在系统级被捕捉。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值