上周六参加了自己的第一场笔试,感觉很糟糕,主要是对基础知识掌握不扎实,现在把笔试中的部分问题总结归纳如下,便于以后查看。

小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。我有一些面试题、架构、设计类资料可以说是程序员面试必备!所有资料都整理到网盘了,需要的话欢迎下载!私信我回复【000】即可免费获取

1.GC是什么?为什么要GC?

GC(GarbageCollection)是垃圾回收机制。在Java中开发人员无法使用指针来自由的管理内存,GC是JVM对内存(实际上就是对象)进行管理的方式。java虚拟机可以自动判断出并收集到垃圾,但一般不会立即释放它们的内存空间,也可以在程序中使用System.gc()来强制垃圾回收,但是要注意的是,系统并不保证会立即进行释放内存。GC使得Java开发人员摆脱了繁琐的内存管理工作,让程序的开发更有效率。

GC基本原理:

Java的内存管理实际上就是对象的管理,其中包括对象的分配和释。

对于程序员来说,分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为"不可达的"。GC将负责回收所有"不可达"对象的内存空间。

对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。但是,为了保证 GC能够在不同平台实现,Java对GC的很多行为都没有进行严格的规定。例如,对于采用什么类型的回收算法、什么时候进行回收等重要问题都没有明确的规定。因此,不同的JVM的实现者往往有不同的实现算法,这给Java程序员的开发带来行多不确定性。

2.接口和抽象类的区别?

接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人、女人,这两个类(如果是类的话),他们的抽象类是人。说明:他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它。所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

(1)抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。

(2)抽象类要被子类继承,接口要被子类实现。

(3)接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现。

(4)接口里定义的变量只能是公共的静态常量,抽象类中的变量是普通变量。

(5)抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个类实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

(6)抽象方法只能申明,不能实现,接口是设计的结果 ,抽象类是重构的结果。

(7)抽象类里可以没有抽象方法。

(8)如果一个类里有抽象方法,那么这个类只能是抽象类。

(9)抽象方法要被实现,所以不能是静态的,也不能是私有的。

(10)接口可继承接口,并可多继承接口,但类只能单根继承。

(11)抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高。

(12)抽象类可以有具体的方法和属性, 接口只能有抽象方法和不可变常量。

(13)抽象类主要用来抽象类别,接口主要用来抽象功能。

(14)抽象类中,如果方法不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的。

3.为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以称之为半自动ORM映射工具。

JAVA后端笔试试题(一)相关推荐

  1. 小米Java笔试_JAVA后端笔试试题(一)

    2017年6月7日,天气晴转阴.心情还不错. 上周六参加了自己的第一场笔试,感觉很糟糕,主要是对基础知识掌握不扎实,现在把笔试中的部分问题总结归纳如下,便于以后查看. 1.GC是什么?为什么要GC? ...

  2. java面试笔试试题http://www.jobui.com/mianshiti/it/java/6827/

    一.判断题(每题1分,共10分) 1.Applet是一种特殊的Panel,它是Java Applet程序的最外层容器.() 2.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字 ...

  3. 字节跳动Java后端笔试题

    1.第一题. 字节跳动在北京有N个工区,形成一个环状,Bytebus是往返在各个工区的通勤车,按工区的顺序行驶,其中第 i 个工区有汽油 gas[i] 升. 你有一辆油箱容量无限的的Bytebus,从 ...

  4. 阅文JAVA后端笔试

    题目 旋转数组 Leetcode 647. 回文子串 字符串去重 二进制中1的个数 旋转数组 Leetcode 647. 回文子串 字符串去重 二进制中1的个数

  5. java后端工程师面试题(笔试):2022-11-04 经历(一)

    java后端工程师面试题(笔试):2022-11-04: 面试题:总分100 1.关于盒子模型(5分) 1)盒子模型的种类有几种?分别是什么?(1分) 2种,分别是1.W3C标准盒子模型 2.IE盒子 ...

  6. 百度 Java 后端三轮面试题,这些你会吗?

    前面的话 告别了2018 ,也早已正式进入2019 面试一直都是大家关注的热门话题,俗话说"金三银四",如今已经一月份了,三月份还会远么,如果你打算在年后跳槽,那么是时候该着手准备 ...

  7. [转载] 常用应届生Java开发笔试面试题(更新中)

    参考链接: Java中的循环的重要事项 Java开发面试题 Java基础篇Java8大基本数据类型Java的三大特性面向对象如果让你推销一款Java产品,你会怎么推销呢?(java的特点)JVM与字节 ...

  8. java面向对象笔试_Java面向对象笔试题.doc

    Java面向对象笔试题 <Java面向对象>内部测试-笔试试卷 1.下列对Java中的继承描述错误的说法是(). 子类至少有一个基类 子类可作为另一个子类的基类 子类可以通过this关键字 ...

  9. 面试题:460道Java后端面试高频题答案版「模块九:Spring」

    Spring 写在前面 相信对于 Spring 这个模块,只要是做过 Java 开发的同学都是不陌生的,或多或少都使用过 Spring 体系的框架.对于平时自己做点小项目会写配置文件可能就行了,但是对 ...

最新文章

  1. HTTP的KeepAlive是开启还是关闭?
  2. Appium之创建、连接夜神模拟器
  3. 解决VS2010复制代码中文乱码的问题
  4. python模型预测_python:目标检测模型预测准确度计算方式(基于IoU)
  5. 国家粮食与物资储备局揭示中国稻谷产毒真菌分布及仓储动态变化
  6. [LeetCode] Majority Element II
  7. spark-OutOfMemory:GC overhead limit exceeded 解决,timelimitexceeded
  8. java里面怎么添加表约束_alter table添加表约束
  9. MFC 文件I/O和串行化
  10. textContent和innerText属性的区别
  11. 如何成为一个优秀的从程序员
  12. cocostudio学习(UIScrollView控件内部子控件的可视化问题)
  13. vue3安装WangEditor富文本编辑器v5版本
  14. MS SQL用两个字段中较大的值为条件进行查询
  15. XTUOJ-1293-Diamond
  16. 10第六章:【01】常用指令-帮助指令
  17. 笔记本电脑不显示计算机,笔记本电脑屏幕不显示怎么回事
  18. 基于Java的个人日记本项目(附 源码 课件)
  19. 并发(Concurrent) 与并行(Parallel) 的区别
  20. 5.25 FLASH

热门文章

  1. SpringBoot 接口幂等性实现的4种方案!这个我真的服气了!
  2. 调试小妙招之360随身WIFI设置两个热点
  3. excel 插件禁用
  4. 国内外主流商业智能(BI)软件介绍及点评
  5. 如何优雅升级 Kubernetes 集群的 Docker 和 Containerd 版本
  6. html如何更改图例字体,图例(legend)
  7. Websphere服务重启
  8. MySQL启动不了,无法启动MySQL服务解决技巧
  9. 手机恢复出厂设置文件怎么恢复
  10. H5文档管理-你身边的重要办公助手