部分面试总结 (一)

1,  接口是否可继承( extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类 具体类)?

答案:接口可以继承接口,而且支持多重继承。抽象类可以实现(实现)接口。抽象类可继承具体类也可以继承抽象类。

 

2,Java中的final关键字有哪些用法?

答:在Java的中声明类,属性和方法时,可使用关键字最终来修饰。

 

3,错误和异常有什么区别?

   答:1.可以是可被控制(checked)或不可控制的(unchecked) 
2.表示一个由程序员导致的错误    
3.应该在应用程序级被处理

 

4,尽量{}里有一个返回语句,那么紧跟在这个尝试后的最后{}里的代码会不会被执行,时候什么被执 行,在回归前还是后?

答:会执行,在方法返回调用前执行准确的说是在回中间执行。

 

5,Java语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别如何使用?

答:抛出捕获并向外抛出异常

扔抛出异常

T try catch是内部捕获异常并做自定义处理

finally是无论是否有异常都会被处理的语句,除非在finally前存在被执行的System.exit(int i)时除外

 

6,运行时异常与检查异常有何异同?

答:相同:都属于厚望

不同:运行时异常都是 RuntimeException的类以及子类异常。

一般异常都是 RuntimeException的以外的异常,类型上都属于异常类及其子类。

 

7,列出一些你常见的运行时异常?

答:异常算术
类转换异常
非法参数异常
下标越界异常
空指针异常
安全异常

 

8,  阐述最后最后敲定的区别

答:最终用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可被继承。

最后是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等

 

 

 

 

9,  阐述 ArrayList Vector LinkedList 的存储性能和特性。

答:ArrayList的和向量都是使用数组方式存储数据,索引数据快而插入数据慢。

LinkedList的使用双向链表实现存储,插入速度较快。

矢量是线程安全的容器

 

10,收藏收藏的区别?

答:集合是集合类的一个顶级接口,其直接继承接口有列表与设置

Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序,搜索以及线程安全等各种操作。

收藏是个java.util中下的接口,它是各种集合结构的父接口。

收藏是个java.util中下的类,它包含有各种有关集合操作的静态方法

 

11,List Map Set 三个接口存取元素时,各有什么特点?

答:设置里面不允许有重复的元素,列表表示有先后顺序的集合,地图是双列的集合

列表以特定次序来持有元素,可有重复元素。设置无法拥有重复元素,内部排序.Map保存键值,值可多值

 

12、 Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?

答:wait()是Object类的方法,sleep()方法(休眠)是线程类(Thread)的静态方法。

 

13、 线程的sleep()方法和yield()方法有什么区别?

答:sleep()方法 使当前线程的执行挂起一段指定的时间,把cpu时间让给其他线程。时间可以由豪秒数或纳 秒数决定。

 

14、 当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B

答:不能,一个对象的一个synchronized方法只能由一个线程访问

 

15、 请说出与线程同步以及线程调度相关的方法

答:-notify():-notityAll(),-sleep():-wait():

16、 编写多线程程序有几种实现方式?

答:(1)继承Thread类,重写run函数

(2)实现Runnable接口,重写run函数

(3)实现Callable接口,重写call函数

 

17、 synchronized关键字的用法?

答:同步控制块,同步控制方法

 

18、 举例说明同步和异步。

答:所谓的同步就是指阻塞式操作,而异步就是非阻塞式操作

 

19、 启动一个线程是调用run()还是start()方法?

答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调 度并执行,这并不意味着线程就会立即运行。run()方法是线程启动后要进行回调(callback)的方法。

 

20、 什么是线程池thread pool)?

答:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线 程池线程都是后台线程。

 

 

21、 简述synchronized java.util.concurrent.locks.Lock的异同

答: Lock 有比 synchronized 更精确的线程语义和更好的性能

synchronized 会自动释放锁,而 Lock 一定要求程序员手工释放,并且必须在finally 从句中释放

 

22、 Statement和PreparedStatement有什么区别?哪个性能更好?

答:①PreparedStatement接口代表预编译的语句,它主要的优势在于可以减少SQL的编译错误并增加SQL的 安全性(减少SQL注入攻击的可能性);②PreparedStatement中的SQL语句是可以带参数的,避免了用 字符串连接拼接SQL语句的麻烦和不安全;③当批量处理SQL或频繁执行相同的查询时, PreparedStatement有明显的性能上的优势,由于数据库可以将编译优化后的SQL语句缓存起来,下次执 行相同结构的语句时就会很快

 

23、 事务的ACID是指什么?

答:原子性(Atomic)2)一致性(Consistent):3)隔离性(Isolated): 4)持久性(Durable)

 

24、 如何通过反射创建对象?

答:通过类对象调用newInstance()方法

 

25、 如何通过反射获取和设置对象私有字段的值?

答:可以通过类对象的getDeclaredField()方法字段(Field)对象,然后再通过字段对象的setAccessible(true) 将其设置为可以访问,接下来就可以通过get/set方法来获取/设置字段的值了

 

26、 如何通过反射调用对象的方法?

答:Class.getMethod();

 

27、 简述一下你了解的33333333设计模式

答:所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)

 

28、 short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

答:对于第一种情况,会报错,对于第二种情况,则不会出错。

 

29、 intInteger有什么区别?

答:Int 是java 的原始数据类型,Integer 是java 为int 提供的封装类。

 

30、 &&&的区别?

答:两者都表示“与”运算,但是&&运算符第一个表达式不成立的话,后面的表达式不运算,直接返回。而&    对所有表达式都得判断。

 

31、 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法

堆区:

提供所有的类实例和数组对象存储区域

Jvm只有一个堆区被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

栈区:

每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在 堆区中
每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。

方法区:

方法区又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。

方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量

运行时常量池都分配在java虚拟机的方法区之中.

 

32、 Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

答:Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11

 

33、 switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?

答:整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以, 这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并 且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。

 

34、 用最有效率的方法计算2乘以8

答:2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次方)

 

35、 构造器(constructor)是否可被重写(override)?

答:构造器不能被继承,因此不能被重写,但可以被重载。

 

36、 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对

答:不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。

 

37、 是否可以继承String类?

答:因为Sting里边有final关键字,所以不能被继承。

 

38、 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么 这里到底是值传递还是引用传递?

答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就 是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

 

39、 StringStringBuilderStringBuffer的区别?

答:字符串常量
字符串变量(线程安全)
字符串变量(非线程安全)

 

40、 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?

答:方法重载的规则:

    1.方法名一致,参数列表中参数的顺序,类型,个数不同。

    2.重载与方法的返回值无关,存在于父类和子类,同类中。

    3.可以抛出不同的异常,可以有不同修饰符。

 

41、 描述一下JVM加载class文件的原理机制?

答:类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中、

 

42、 抽象类(abstract class)和接口(interface)有什么异同?

答:抽象类可以包含非抽象的方法,而接口中的方法必须是抽象的、

 

43、 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?

答:静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才 能实例化。

 

 

 

44、 Java 中会存在内存泄漏吗,请简单描述。

答:虽然java虚拟机中的垃圾回收机制可以自动进行内存空间的申请和释放,但还是有些不能显式地进行释放, 必须手动释放,比如关闭打开的文件和数据库连接.最后可能导致内存的可用空间越来越少,最终崩溃.

 

45、 抽象的(abstract)方法是否可同时是静态的(static,是否可同时是本地方法(native),是否可同时被 synchronized修饰?

答:都不能。抽象方法需要子类重写,而静态的方法是无法被重写的,因此二者是矛盾的。

 

46、 阐述静态变量和实例变量的区别。

答:静态变量是被static修饰符修饰的变量,也称为类变量,它属于类,不属于类的任何一个对象,一个类不 管创建多少个对象,静态变量在内存中有且仅有一个拷贝;实例变量必须依存于某一实例,需要先创建对 象然后通过对象才能访问到它。

 

47、 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?

答:不可以,静态方法只能访问静态成员,因为非静态方法的调用要先创建对象,在调用静态方法时可能对象 并没有被初始化。

 

48、 如何实现对象克隆

答:1). 实现Cloneable接口并重写Object类中的clone()方法;

  2)。实现序列化接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。

 

49,GC 是什么?为什么要有GC

答:GC:Java的的垃圾回收器

解决内存溢出的问题,不用去手动的去回收垃圾的对象。

 

50,String s = new String(xyz ); 创建了几个字符串对象?

答:常量池中存在“XYZ”,创建了一个对象。 

常量池中不存在“XYZ”,创建了两个对象。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值