中兴面试-2022-7-13

平台:腾讯会议  时长:30分钟    2个面试官 下午2点半开始

 第一个面试官:“先做个自我介绍吧?”

这里对方突出了   保研

 第一个面试官:“说一下成绩吧?”

 研究生成绩,顺带说一下本科的成绩    研究生成绩 10%~15%  本科生成绩 7%

第一个面试官:“我看你的项目,关于深度学习检测的,介绍一下亮点吧”

针对项目上的图像杂波说了一下(虚警),说了一下算法的两阶段流程

第一个面试官:“你项目用的Python与Matlab,你自学的Java,那你求职对哪一个语言侧重?”

我的求职岗位是Java开发工程师,所以我侧重Java,但是编程语言的思想是殊途同归的,可以转


 那我问你一些关于Java的

第一个面试官:“创建线程有几种方式,分别是哪几种”

 回答出来了4种,但是第三种说的不够全面。

有4种方式,
1.继承Thread类方式创建线程
2.实现Runnable接口方式创建线程
3.实现Callable接口,通过FutureTask类创建线程(jdk5.0新增)
4.通过线程池方式创建线程

关于线程的扩展:

继承Thread类 和 实现Runnable接口两种创建线程的方式有什么区别,
你会优先选择哪种方式?

相同点::两种方式都需要重写run()方法

优先选择实现Runnable接口的方式:

1.类具有单继承的局限性,继承了Thread类后就不可以再继承其它类。当类可以实现多个接口

2.实现Runnable接口方式创建的线程共享同一个实现类对象,适合用于多个线程共享资源的情况 
(共享的数据封装在实现类中)


实现Runnable接口 和 实现Callable接口两种创建线程的方式有什么区别,
你会优先选择哪种方式?

区别::实现Callable接口重写的时call()方法,实现Runnable接口重写的是run()方法

优先选择实现Callable接口的方式:

1.call()方法有返回值,run()方法没有返回值

2.call()方法可以抛出异常 (run()方法只能在方法内try-catch处理),被外面的操作捕获异常信息

Callable支持泛型

 第一个面试官:“简述一下使用Java向数据库插入一条数据的整个流程?”

回答的不是很OK  ,差强人意

JDBC ——规范一套接口规范,让不同的数据库厂商实现,在Java程序中统一调用接口的方法。

JDBC为Java提供了一套用于数据库操作的接口API,Java程序员只需要面向这套接口编程就行了。

 

连接+会话+回滚+提交+连接释放  

第一个面试官:“数据库常见的异常有哪些?Exception”

没有回答出来。

数据库中的三种异常:插入异常、删除异常,修改/更新异常

补充: Java中的数据库异常为:SQLException

常见的比较典型的有:

ORA-00942:  table or view does not exist    表或者视图不存在

ORA-01400:  cannot insert NULL into ()    不能将空值插入

ORA-00933:   SQL 命令未正确结束

ORA-06533:  SUBSCRIPT_BEYOND_COUNT   子句超出数量


 第二个面试官出现

第二个面试官:“你都学了Java的什么知识”

JavaEE 集合 JVM以及并发线程 等

第二个面试官:“说说你对JVM的理解”

JVM实现了让Java一次编写,到处运行,JVM内存模型与JVM垃圾收集算法与策略。

第二个面试官:“JDK8.0之后JVM的新特性”

这个真的难到我了,一开始脑子一片空白,想不出来,就扯上去了方法区在JDK7之前在堆中,blabla,之后JDK在直接内存(本地内存)中。


在Java8中,永久代已经被移除,被一个称为“元数据区”(元空间)的区域所取代。

为什么移除永久代?——

  • 1.Class在被加载的时候元数据信息会放入永久区域,但是GC不会在主程序运行的时候清除永久代的信息。所以这也导致永久代的信息会随着类加载的增多而膨胀,最终导致OOM。
  • 2.为永久代设置大小是很难的,动态加载类太多的话(反射机制),可能会导致OOM。
  • 3.永久代不好调优

元空间并不在虚拟机中,而是使用本地内存。因此默认情况下元空间的大小仅仅受本地内存的大小限制。类的元数据放入 native memory, 字符串池和类的静态变量放入java堆中。 这样可以加载多少类的元数据就不再由MaxPermSize控制, 而由系统的实际可用空间来控制

官方解释:

方法区(method area)只是JVM规范中定义的一个概念,用于存储类信息、常量池、静态变量、JIT编译后的代码等数据,具体放在哪里,不同的实现可以放在不同的地方。而永久代Hotspot虚拟机特有的概念,是方法区的一种实现,别的JVM都没有这个东西。

HotSpot虚拟机中,永久代的变化

采用元空间的好处:

  • 为了解决永久代的OOM问题,元数据和class对象存放在永久代中,容易出现性能问题和内存溢出。
  • 类及方法的信息等比较难确定其大小,因此对于永久代大小指定比较困难,大小容易出现永久代溢出,太大容易导致老年代溢出(堆内存不变,此消彼长)。
  • 永久代会为GC带来不必要的复杂度,并且回收效率偏低。
     

第二个面试官:“你用的Java语言是什么版本的”

 我傻了

第二个面试官:“你深度学习项目有的什么算法,分类回归聚类?”

就说了一下yolov3-tiny的检测与回归分支各自的参数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值