​对于常年进行项目开发的程序员来说,java基础知识很容易被遗忘,尤其是那些纯理论性、项目上基本用不到的知识,早已被每日海量涌入的信息冲磨得没了痕迹。但这些却是面试考核、升职加薪的重要信息,毕竟在别人不了解你的情况下,谁都会觉得一个理论基础牢固的人是比较可靠的,废话不多说,直接上知识点。

牢记这些java基础知识,升职加薪不是梦_Java入门

1、java跨平台是怎么实现的

java是利用JVM(java虚拟机)实现跨平台的。

java源代码(*.java)经过java编译器编译成java字节码(*.class),执行java字节码,java字节码经过JVM解释为具体平台的具体指令,并执行。不同平台有不同的JVM,主流平台都提供了JVM,所以java字节码可以在主流平台上解释执行。在这个意义上java是跨平台的,也就是说:java的字节码是跨平台的。 

牢记这些java基础知识,升职加薪不是梦_Java程序员_02

​2、GC是什么?为什么要有GC?

GC是垃圾收集的意思(Gabage Clooection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统不稳定甚至崩溃,java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的。java程序员编程的时候不用考虑变量不用时释放内存,java虚拟机可以自动判断出并收集垃圾。

牢记这些java基础知识,升职加薪不是梦_java2_03

3、什么是装箱拆箱?

java为每种基本数据类型提供了包装类,装箱和拆箱是java基本数据类型和包装类型自动转换的过程,基本类型自动转换为包装类就是装箱,例如 Integer i = 10;而包装类型自动转换为基本类型就是拆箱,例如 int n = i;这是从Java SE5开始提供的新特性。

牢记这些java基础知识,升职加薪不是梦_java2_04

4、关系数据库三大设计范式是什么

  1. 第一范式,数据库表的每一列都是不可分割的基本数据项,例如员工表里面姓名和性别不要放在一个字段,因为这是员工的不同基本属性。
  2. 第二范式,数据表字段属性必须完全依赖主键,例如学生表里面可以有学号字段,因为学号相对于学生来说是唯一的,但是不要有社团字段,社团信息和学生信息放在一个表里面维护,如果有一个社团没有学生加入,那这张表里面就会缺失该社团的数据,而且删除学生数据的时候也会对社团信息造成影响,也会有数据的冗余。
  3. 第三范式,数据库表不要包含在其他表中已存在的非关键字段,比如员工表中不要有部门简介、部门名称等部门相关信息,这些信息应该在部门表里面维护。

5、ArrayList和LinkedList的区别?

        ArrayList和LinkedList都是List的实现类,ArrayList是基于动态数组的数据结构,LinkedList是基于链表的数据结构。对于随机访问的get和set,ArrayList效率更高,而对于新增(add)和删除(remove)操作,LinkedList效率更高。PS:两个都是非线程安全的。

java基础知识点当然远不止这些,以上是博主曾经遇到过的面试或者考核题目,印象比较深刻的几个,至于为啥印象这么深刻,自然是在这些问题上吃过亏,有些问题,或许你不是不知道,可是你一犹豫,别人就会否定你了,因为这实在是最简单的常识,尤其是对于非开发的面试或考核人员来说!你懂得!