Java基础面试题

1.jvm内存模型:

java栈,堆,方法区,程序计数器,本地方法栈


Java三大特性

封装 继承 多态

继承:一个新类从已有的类那里获得其已有的属性和方法,这种现象叫类的继承

注意:私有属性和方法 不能被继承

Java只支持单继承,不允许多重继承

继承的好处:

1.代码得到了极大的重用

2.形成一种类的层次体系结构

3.为多态创造条件

多态就是对象的多种形态。https://www.cnblogs.com/hysum/p/7100874.html#_label2



2.什么是值传递和引用传递?



值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

引用传递:是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。



3.阐述静态变量和实例变量的区别。

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


4.形参与实参

形参:全称为“形式参数”,是在定义方法名和方法体的时候使用的参数,用于接收调用该方法时传入的实际值;实参:全称为“实际参数”,是在调用方法时传递给该方法的实际值。


5、什么是序列化与反序列化?

  序列化:指把堆内存中的 Java 对象数据,通过某种方式把对象存储到磁盘文件中或者传递给其他网络节点(在网络上传输)。这个过程称为序列化。通俗来说就是将数据结构或对象转换成二进制串的过程

  反序列化:把磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象模型的过程。也就是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程


6、为什么要做序列化?

  ①、在分布式系统中,此时需要把对象在网络上传输,就得把对象数据转换为二进制形式,需要共享的数据的 JavaBean 对象,都得做序列化。

  ②、服务器钝化:如果服务器发现某些对象好久没活动了,那么服务器就会把这些内存中的对象持久化在本地磁盘文件中(Java对象转换为二进制文件);如果服务器发现某些对象需要活动时,先去内存中寻找,找不到再去磁盘文件中反序列化我们的对象数据,恢复成 Java 对象。这样能节省服务器内存


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JAVA面试题相关基础知识 1、面向对象的特征有哪些方面 ①抽象: 抽象是忽略一个主题中与当前目标无关的那些方面,...
    小宇java阅读 910评论 0 6
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,163评论 1 32
  • 一、小策略 说区别的时候,先单独说出每一个的特性,再列出相同点即可。 当遇到自己不太擅长的问题的时候,一定不要慌张...
    唐_方阅读 486评论 1 3
  • 基础: 1.抽象类和接口的区别1.接口描述了方法的特征,不给出实现,一方面解决java的单继承问题,实现了强大的可...
    天道灬酬勤阅读 447评论 0 0
  • 爸爸,这是我妈妈,你找你的妈妈去! 女儿推开我,不让我接近媳妇。 儿子,这是我媳妇,你去找你的媳妇去! 爸爸瞪了我...
    臧藏臧阅读 1,154评论 2 5