文章目录

  • 前言
  • 一: Java概述
    • 1、何为编程
    • 2、JDK1.5之后的三大版本
    • 3、JVM,JRE和JDK的关系
    • 4、什么是跨平台?原理是什么
    • 5、Java语言有哪些特点
    • 6、什么是字节码?采用字节码的最大好处是什么
    • 7、什么是Java程序的主类?应用程序和小程序的主类有何不同
    • 8、Java应用程序与小程序之间有哪些差别
    • 9、Java和C++的区别
    • 10、Oracle JDK 和 OpenJDK的对比
  • 二:基础语法
    • 数据类型
      • 11、Java有哪些数据类型
      • 12、switch是否能作用在byte上,是否能作用在Long上,是否能作用在String上
      • 13、用最有效率的方法计算2乘8
      • 14、Math.round(11.5)等于多少?Math.round(-11.5)等于多少
      • 15、float=3.4是否正确
      • 16、short s1=1;s1=s1+1;有错吗?short s1=1;s1+=1;有错吗?
    • 编码
      • 17、Java语言采用何种编码方案?有何特点
    • 注释
      • 18、什么是Java注释
    • 访问修饰符
      • 19、访问修饰符public,private,protected,以及不写(默认)时的区别
    • 运算符
      • 20、&和&&的区别
    • 关键字
      • Java有没有goto
      • final有什么用
      • final finally finalize区别
      • this关键字的用法
      • supper关键字的用法
      • this与supper的区别
      • static存在的主要意义
      • static的独特之处
      • static应用场景
      • static注意事项
    • 流程语句
      • break continue return的区别以及作用
      • 在Java中,如何跳出当前的多重嵌套循环
  • 三:面向对象
    • 面向对象概述
      • 面向对象和面向过程的区别
    • 面向对象三大特性
      • 面向对象的特征有哪些
      • 什么是多态机制?Java语言是如何实现多态的
      • 面向对象五大基本原则是什么
  • 总结

前言

初衷:
在接到面邀请之后,面试过程就变成面试官筛选优秀面试者最重要的途径之一。在本人为数不多的面试经历总结后发现,面试提问一般分为两部分,第一是项目经历,第二是技术提问。项目经历就要求面试者熟悉项目所用到的技术以及自己所负责的模块,而剩下百分之九十的时间都是在技术提问。基于以上原因,本人计划搜罗网上优秀且全面的面试题库,用自己理解的话再叙述出来,用于自身成长。

2021-4-29
在两个月前开始写JAVA面试基础篇,中途要备考所以搁浅了。刚刚看到浏览量达到了六百多,我想大家对这方面的需求应该是挺大了,所以决定继续下下去。


提示:以下是本篇文章正文内容,下面案例可供参考

一: Java概述

1、何为编程

编程就是让计算机为解决某个问题而使用某种程序设计语言编写代码,最终得到结果的过程。

2、JDK1.5之后的三大版本

  • Java SE (J2SE 标准版)
    以前称为J2SE,它允许开发和部署在桌面,服务器,嵌入式和实施环境中使用的Java应用程序,Java SE包含了支持Java Web服务开发的类,并为Java EE和Java ME提供基础。
  • Java EE(J2EE 企业版)
    以前称为J2EE,在Java SE的基础上构建的,提供Web服务,组件模型,管理和通信API,可以用来实现企业级的面向服务体系结构和Web2.0应用程序
  • Java ME(J2ME 微型版)
    以前称为J2ME,为移动设备和嵌入式设备(比如手机,PDA,电视机顶盒和打印机)上运行的应用程序提供的环境。

3、JVM,JRE和JDK的关系

  • JVM
    Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。
  • JRE
    Java的运行环境,JRE包含JVM。核心类库主要是Java.lang包:包含了Java程序必不可少的系统类,如基本数据类型,基本数学函数,字符串处理,线程,异常处理类等,系统缺省加载这个包
    :缺省,即系统默认状态,意思与“默认”相同。
  • JDK
    Java的开发工具,包含JRE,JVM。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等

4、什么是跨平台?原理是什么

跨平台是值Java语言编写的程序一次编译后,可以在多个系统平台上运行
原理:Java程序是通过Java虚拟机在系统平台上运行的,只要该系统可以安装相应的Java虚拟机,该系统就可以运行Java程序

5、Java语言有哪些特点

  • 面向对象(封装,继承,多态)
  • 跨平台
  • 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)
  • 支持多线程(多线程机制使应用程序在同一个时间并行执行多任务项)
  • 健壮性(Java语言的强类型机制,异常处理,垃圾的自动回收机制)
  • 安全性

6、什么是字节码?采用字节码的最大好处是什么

字节码:java源代码经过虚拟机编译后产生的class.文件,它不需要面向任何特定的处理器,只面向虚拟机。
采用字节码的好处:字节码在一定程度上解决传统解释型语言执行效率低的问题,同时又保留了解释型语言可以移植的特点。而且由于字节码并不专对一种特定的机器,因此Java程序无需重新编译便可在多种不同的计算机上运行
解释Java中的编译器和解释器:
Java源程序经过编译器编译后变成字节码,字节码由虚拟机解释执行,虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行,这就是上面提到的Java的特点的编译与解释并存的解释。

Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm---->jvm中解释器----->机器可执行的二进制机器码---->程序运行。

7、什么是Java程序的主类?应用程序和小程序的主类有何不同

一个程序中可以有多个类,但只能有一个类是主类。在Java应用程序中这个主类是指包含main()方法的类
而Java小程序中,这个主类是一个继承自系统类JApplet或Applat的子类。
应用程序的主类不一定要求是public类,但小程序的主类要求必须是public.主类是Java程序执行的入口点。

8、Java应用程序与小程序之间有哪些差别

应用程序是从主线程启动(也就是main()方法)
applet小程序没有main方法,主要是嵌在浏览器页面上运行(调用init()线程或者run()来启动),嵌入浏览器这点跟flash的小游戏类型。

9、Java和C++的区别

  • 都是面向对象语言,都支持封装,继承,多态
  • Java不提供指针来直接访问内存,程序内存更加安全
  • Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口可以
  • Java有自动内存管理机制,,不需要程序员手动释放无用内存

10、Oracle JDK 和 OpenJDK的对比

  • Oracle JDK 版本每三年发布一次,而Open JDK版本是每三个月发布一次
  • Open JDK是一个参考模型并且是完全开源的,而Oracle JDK是OpenJDK的一个实现,并不是完全开源的
  • Oracle JDK比Open JDK更稳定
  • 在响应性和JVM性能方面,Oracle JDK和OpenJDK性能更好
  • Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新版本获得支持来获取最新版本
  • Oracle JDK根据二进制代码许可协议获取认可,而OpenJDK根据GPL v2许可获得许可

二:基础语法

数据类型

11、Java有哪些数据类型

定义:Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配不同大小的内存空间
分类

  • 基本数据类型

    • 数值型

      • 整数类型(byte,short,int,long)
      • 浮点类型(float,double)
    • 字符型(char)
    • 布尔型(boolean)
  • 引用数据类型
    • 类(class)
    • 接口(interface)
    • 数组([])
      Java基本数据类型图

      顺口溜:
      2b是一个字节 (byte和boolean)
      cs是两个字节 (char和short)
      long和double当最大
      剩下只有int和float是个四

12、switch是否能作用在byte上,是否能作用在Long上,是否能作用在String上

  • Java5以前,switch(expr)只能是byte,short,char,int。
  • Java5开始,Java中引入枚举,expr也可是枚举
  • Java7开始。expr可以是字符串,但长整型long在目前版本都不可以

13、用最有效率的方法计算2乘8

2<<3 (左移3位相当于乘2的3次方,右移3位相当于除以2的3次方)

14、Math.round(11.5)等于多少?Math.round(-11.5)等于多少

方法:四舍五入下进行取整 Math.round(11.5)返回值是12 , Math.round(-11.5)是-11

15、float=3.4是否正确

错,应该是float=3.4F

16、short s1=1;s1=s1+1;有错吗?short s1=1;s1+=1;有错吗?

第一个需要强制类型转换,由于1是int类型,因此S1+1运算结果也是int型,需要强制转换类型
第二个可以正确编译,因为S1+=1;相当于s1=short(s1+1),其中有隐含的强制类型转换

编码

17、Java语言采用何种编码方案?有何特点

Java语言采用Unicode编码标准,Unicode(标准版),它为每个字符制定了一个唯一的数值,因此在任何语言,平台,程序都可以放心使用

注释

18、什么是Java注释

**定义:**用于解释说明程序的文字
分类

  • 单行注释 格式: //注解文字
  • 多行注释 格式: /* 注释文字 */
  • 文档注释 格式: /** 注释文字 */
    注:多行和文档注释都不能嵌套使用

访问修饰符

19、访问修饰符public,private,protected,以及不写(默认)时的区别

运算符

20、&和&&的区别

关键字

Java有没有goto

final有什么用

final finally finalize区别

this关键字的用法

supper关键字的用法

this与supper的区别

static存在的主要意义

static的独特之处

static应用场景

static注意事项

流程语句

break continue return的区别以及作用

在Java中,如何跳出当前的多重嵌套循环

三:面向对象

面向对象概述

面向对象和面向过程的区别

面向对象三大特性

面向对象的特征有哪些

什么是多态机制?Java语言是如何实现多态的

面向对象五大基本原则是什么

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2021Java面试-基础篇相关推荐

  1. Java面试基础篇之集合

    文章目录 你知道的集合都有哪些? 哪些集合是线程安全的? Collection 集合类和数组有什么不同? Collection和Collections有什么区别? 如何确保一个集合不能被修改? Lis ...

  2. 第三十九篇:Flink 面试基础篇

    你好,欢迎来到第 39 课时,本课时我们主要讲解"Flink 面试-基础篇". 到目前为止,关于 Flink 的学习我们就告一段落了,接下来我们将进入最后一个面试模块的学习.在当前 ...

  3. Python面试基础篇 - 50道经典面试题(附答案及多种解答)

    大家好,我是辣条哥 高考刚结束不久,网上各种招工的,工地招搬砖的都开始活跃了,这时候我要是不出来活跃一波感觉有点不合时宜了. 于是特意整理了这一份Python面试题的基础篇,进阶的先不说我能不能整理出 ...

  4. android peopleactivity.java,Android面试基础篇---Activity(上)

    ** 前言: ** 一.生命周期 1.七个方法: 1.1:onCreate() 在这里创建界面,做一些数据的初始化工作 1.2:onStart() 可见不可交互 1.3:onResume() 可见可交 ...

  5. Java面试基础篇之java基础语法之五:类和对象

    目录 1. 类与对象的初步认知 2. 类和类的实例化 3. 类的成员 3.1 字段/属性/成员变量 3.2 方法 (method) 3.3 static 关键字 3.4 小结 4. 封装 4.1 pr ...

  6. Java面试基础篇——第九篇:BIO,NIO,AIO的区别

    2019独角兽企业重金招聘Python工程师标准>>> 现在IO模型主要分三类:BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO(). 先来看看BIO. 1. BIO 服务端 ...

  7. Java面试基础篇之java基础语法之五:数组

    目录 1. 数组基本用法 1.1 什么是数组 1.2 创建数组 1.3 数组的使用 2. 数组作为方法的参数 2.1 基本用法 2.2 理解引用类型(重点/难点) 2.3 认识 null 3. 数组作 ...

  8. C++面试八股文快问快答の基础篇

    文章目录 基础篇 变量的声明和定义有什么区别 简述#ifdef.#else.#endif和#ifndef的作用 写出int .bool. float .指针变量与 "零值"比较的i ...

  9. python深浅拷贝 面试_Python面试宝典之基础篇-02

    原标题:Python面试宝典之基础篇-02 我觉得你如果正在找工作,我的Python面试宝典几期教程,你一定得花时间看完了! 题目006:说说Python中的浅拷贝和深拷贝. 点评:这个题目本身出现的 ...

最新文章

  1. 详解DNS的常用记录(上):DNS系列之二
  2. [vue] vue在开发过程中要同时跟N个不同的后端人员联调接口(请求的url不一样)时你该怎么办?
  3. html加载swf 进度条,Flash加载外部文件创建进度条3种方法
  4. makefile懒人版(单个文件编译)
  5. webpack 3 零基础入门教程 #16 - 使用 ProvidePlugin 插件来处理像 jQuery 这样的第三方包...
  6. PMP第六版计算题公式整理
  7. CS231n——机器学习算法——线性分类(上: 线性分类器)
  8. 51单片机复习:红外通信
  9. 银行计算机综合知识,银行秋招综合知识测试包含哪些专业课?
  10. 广州“开四停四”交通限行,技术上是如何实现的?
  11. 【折腾系列—All In One主机】3、 iKuai软路由安装前的设置
  12. 【Week 15 作业A】ZJM 与霍格沃兹
  13. 《基础微积分教材中译版》--11.3偏导数
  14. 【转】Ceph对象存储(rgw)的IPv6环境配置
  15. c++中绝对值的函数
  16. RTrPPG: An Ultra Light 3DCNN for Real-Time Remote Photoplethysmography
  17. S2 优化数据库 第三章
  18. docker基础用法及镜像和容器的常用命令大全
  19. Rxjava源码分析之IO.Reactivex.Observable
  20. 不用root卸载手机系统软件

热门文章

  1. hbiulder x 浏览器不显示_HBuilder X怎么配置浏览器 HBuilder X配置浏览器方法
  2. Android中dpi 和density到底是什么关系?
  3. 本地部署SpringBootInitializr 【最新版】
  4. 不懂网络赚钱的我,只想说“去你的吧”
  5. Linux CentOS7 VMware正则介绍、grep工具、egrep表达式
  6. 儿童玩具连环画外贸网站搭建模板
  7. ios屏幕旋转学习笔记
  8. linux find命令按文件内容查找,使用linux find命令进行 查找文件
  9. Vue-cli中设置背景图片铺满整个屏幕
  10. 美国计算机硕博连读最快几年,【美国硕博连读最快几年】_在美国完成硕博连读一般需要几年时间...