JAVA面试系列(一) 基础知识....持续更新

开个新的系列,主要总结一下java面试会遇到的各种问题,从最基本的概念到进阶的机试,综合自己的学习、三年多的工作经验,以及网上查找的资料,总结一下。

一. 基础概念

1.面向对象

面向对象是一种对现实世界理解和抽象的方法。将世间万物抽象(抽取特征变为对象)。三大特点:封装、继承、多态。封装就是抽象成类,继承(private\default\protected\public),封装和继承是为了代码重用。多态(覆盖和重载)实现了接口复用。

2.java对比C++的优势

java和C++都是面向对象语言,具有封装、集成、多态三大特点。

先了解两个概念

多继承:

class D: public A, private B, protected C{
    //类D新增加的成员
}

C++支持多继承,将多个基类用逗号隔开,在声明了类A、B、C的情况下,还可以声明派生类D,这时D就是一个多继承形式的派生类。派生类当然有他的方便之处,但是缺点也显而易见:类名称重复问题、代码逻辑复杂、思路容易混乱。

指针:内存地址,指针描述了数据在内存中的位置,标记了一个占据存储空间的实体。

java摒弃了多继承和指针这些复杂、难以理解和使用的概念,不使用指针来直接访问内存,也就意味着程序内存会更加安全,最方便的是java提供了自动内存管理机制(GC),再加上无可比拟的社区环境,功能强大且简单应用。作为面向对象编程语言的代表,极好地实现了面向对象理论。

3.JVM、JRE与JDK

jvm:java virtual machine,java虚拟机,java程序需要运行在虚拟机上,不同的平台都有虚拟机,这也是为什么java可以实现跨平台。

jre:jav runtime environment,java运行环境,运行环境的范围稍微大一些,里面包含了jvm,再加上一些其他程序运行必须要用的核心类库,主要是java.lang,比如基本数据类型、异常处理等。注意着是运行环境,也就是说如果你不开发,只需要运行一个打包后的java程序,那么你只需要jre即可,不需要安装jdk。

jdk:java development kit是给开发人员使用的,包含了开发工具,也包括jre。所以安装了jdk,也就不需要再单独安装jre了。

总的来说,这三个的关系如下:jre=jvm+核心类库;jdk=jre+开发相关工具;

4.java运行流程及相关概念

字节码:java源代码经过虚拟机编译器编译后产生的.class文件,不面向任何特定的处理器,只面向虚拟机。所以在不同的计算机上,只需要有java环境(JRE),即可执行程序。

编译器:编辑以将java源代码编译生成字节码,然后交由虚拟机。

解释器:虚拟机将字节码发送给解释器,解释器将其翻译成特定机器上的机器码,以此在特定机器上运行。

Java程序----->编译器----->字节码----->虚拟机----->解释器----->机器码----->运行

所以说,java的特点是编译与解释并存。

二.基础语法

1.数据类型

java是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中分配了不同大小的空间。这里可以对比python,典型的弱类型语言。

基本数据类型

整数类型:byte(1字节),short(2字节),int(4字节),long(8字节)

浮点类型:float(4字节),double(8字节)

字符型:char(2字节)

布尔型:boolean(1字节)

引用数据类型

类:class

接口:interface

数组:array[]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值