个人面试基础题总结(Java)

个人的备忘录,也提供给大家,仅供参考。(职场小白初入,有错误之处,敬请大家斧正)

2023-06-08 F公司招聘笔试

一、HashMap和HashTable的区别

        HashMap 是 Hashtable 的轻量级实现(非线程安全的实现),他们都完成了 Map 接口,主要区别在于 HashMap 允许空( null )键值( key , 由于非线程安全,在只有一个线程访问的情况下, 效率要高于 Hashtable
        HashMap 允许将 null 作为一个 entry key 或者 value ,而 Hashtable 不允许。
        HashMap把 Hashtable contains 方法去掉了,改成 containsvalue containsKey 。因为 contains方法容易让人引起误解。
        Hashtable 继承自 Dictionary 类,而 HashMap Java1.2 引进的 Map interface 的一个实现。最大的不同是,Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多个线程访问 Hashtable时,不需要自己为它的方法实现同步,而 HashMap 就必须为之提供外同步。
        Hashtable 和 HashMap 采用的 hash/rehash 算法都大概一样,所以性能不会有很大的差异。
HashMap HashTable 主要从三方面来说。
. 历史原因 :Hashtable 是基于陈旧的 Dictionary 类的, HashMap Java 1.2 引进的 Map 接口的一 个实现。
. 同步性 :Hashtable 是线程安全的,也就是说是同步的,而 HashMap 是线程序不安全的,不是同步的。
. 值:只有 HashMap 可以让你将空值作为一个表的条目的 key value

二、简述Java的序列化,并说说序列化的优点

        我们有时候将一个 java 对象变成字节流的形式传出去或者从一个字节流中恢复成一个 java 对象,例如,要将 java 对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们 可以自己写代码去把一个 java 对象变成某个格式的字节流再传输,但是, jre 本身就提供了这种支持,我们可以调用 OutputStream writeObject 方法来做,如果要让 java 帮我们做,要被传输的对象必须实现 serializable 接口,这样, javac 编译时就会进行特殊处理,编译的类才可以被 writeObject 方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable 接口,该接口是一个 mini 接口,其中没有需要实现的方法, implements Serializable只是为了标注该对象是可被序列化的。
        例如,在 web 开发中,如果对象被保存在了 Session 中, tomcat 在重启时要把 Session
对象序列化到硬盘,这个对象就必须实现 Serializable 接口。如果对象要经过分布式系统进行
网络传输或通过 rmi 等远程调用,这就需要在网络上传输对象,被传输的对象就必须实现
Serializable 接口。

三、使用SQL语句查询第50-80行记录(设已有自增id)

1、SELECT * FROM table_name WHERE id >= 50 && id <= 80

2、这种方法可以用于没有自增行时,直接搜索第50-80行记录。

SELECT * FROM table_name LIMIT 49,31

这里需要使用LIMIT关键字,第一个数字是起始行,起始数字是起始行-1,类似数组下标。两个数字相加之和等于想查询的最后一行。

例如:查询50-80行,使用LIMIT  m,n   m=50-1=49    n=80-m=31

       查询31-57行,使用LIMIT m,n  m=31-1=30   n=57-m=27

SELECT * FROM table_name LIMIT 49,31

SELECT * FROM table_name LIMIT 30,27

2023-06-12 F公司二轮技术面试

一、get和post请求的区别

二、事务的特性

三、JVM加载机制

四、双层循环跳出问题

五、Object的常用方法

2023-6-13 已成功通过F公司技术复试

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值