1.什么是java虚拟机?

java虚拟机(JVM)是一个可执行java字节码的虚拟机进程,java源文件被编译成能被java虚拟机可执行的字节码文件.

2.什么是平台无关性,java是如何做到平台无关的?

跨平台是一种语言在计算机上的运行不受平台约束,一次编译处处运行的情况.平台无关一般有两种:源代码级和目标代码级,而我们经常说的是目标代码级.

c和c++具有一定程度的源代码级平台无关,他们是源代码可以不用修改,在每个平台上重新编译就可以运行,但是一般提交软件提交的是成品,无源码,不能编译.

java编译出来的是字节码,去到哪个平台都能用,前提是那个平台装有java开发工具包(JDK),java最大的优势就是跨平台,对于java交付的一般是jar包或者war包,只要系统上有JVM,就可以运行.

至于java是如何做到的?

我们编写的java源文件,经过编译会产生字节码文件,而字节码文件需要经过jvm虚拟机,然后翻译为机器语言后才能被执行.由于我们的不同的系统上安装者不同的虚拟机,源码产生的字节码文件不会有不同,而字节码文件经过不同系统的JVM会产生有差异的机器语言,是的机器可以运行.关键就在于jvm知道底层硬件平台的指令长度等,完整的表达正确的语义.

3.JDK和JRE的区别

java运行时环境(JRE)是将要执行java程序的java虚拟机,包含了执行applet的浏览器插件.

java开发工具包(JDK)是完整的java软件开发包,包含了JRE,编译器和其他工具,可以让开发者开发,编译,运行java应用程序.

JDK > JRE > JVM

4.static关键字是什么意思?

static关键字表名一个成员变量或者成员方法可以没有所属类的成员变量的情况下被使用.

5.什么是构造函数?什么是默认构造函数?

构造函数一种在用来创建对象时初始化对象的特殊方法,即为对象成员进行初始化赋值的,总是与new关键字一起使用,特别的一个类可以有多个构造函数,可根据参数类型,参数个数不同来调用.

他跟一般的实例方法类似,不同的是构造器没有返回类型,不会被继承,构造器的名称一般与类名相同,有着初始化对象数据成员的任务.

而默认构造函数是指在编写一个可实例化的类的时候没有专门编写的构造函数,多数的编程语言会自动的生成缺省构造器,一般会将成员变量的值初始化默认值.如:int->0;Integer -> null;

6.构造函数可以被重载吗?可以重写吗?

构造函数可以被重载,实现对象数据的不同初始化,不能被重写,子类不能继承父类的构造函数,只能在子类的构造方法中调用父类的构造方法(自动调用默认的构造方法),保证父类对象也进行初始化(子类继承父类对象数据得到初始化).

java面试2(java技术栈和Hollis面试内容分享)的更多相关文章

  1. 都卷Java,你看看你得学多少技术栈才能工作!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:授业解惑 我知道,你不知道的还有很多! 你了解计算机要从哪里开始学习吗?你清楚为了能 ...

  2. .Net 微服务架构技术栈的那些事

    一.前言 大家一直都在谈论微服务架构,园子里面也有很多关于微服务的文章,前几天也有一些园子的朋友问我微服务架构的一些技术,我这里就整理了微服务架构的技术栈路线图,这里就分享出来和大家一起探讨学习,同时 ...

  3. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

  4. 【转】Java方向如何准备技术面试答案(汇总版)

    本文转载自:“Java团长”公众号 1.面向对象和面向过程的区别 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采 ...

  5. Java技术栈思维导图

    Java技术栈思维导图 Java IO流体系 设计模式

  6. [转]Java工程师技术栈--成神之路

    一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133http://if ...

  7. Java方向如何准备技术面试答案(汇总版)

    本文转载自:"Java团长"公众号 1.面向对象和面向过程的区别 面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linu ...

  8. 关于Java 软件工程师应该知道或掌握的技术栈

    鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...

  9. java十年技术栈[总结复习用]

    以下摘自http://www.tvtv223.com/so/8/default/8.html#36-数据库的分库分表mycat java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 ...

随机推荐

  1. 关于JAVA开发工具IDEA使用

    安装IntelliJ IDEA 一.安装JDK 1 下载最新的jdk,这里下的是jdk-8u66 2 将jdk安装到默认的路径C:\Program Files\Java目录下 二.安装IntelliJ ...

  2. 四则运算程序(java基于控制台)

    四则运算题目生成程序(基于控制台) 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r ...

  3. Beta No.2

    今天遇到的困难: 组员对github极度的不适应 Android Studio版本不一致项目难以打开运行 移植云端的时候,愚蠢的把所有项目开发环境全部搬上去.本身云的内存小,性能差,我们花费了太多时间 ...

  4. lambda及参数绑定

    一.介绍   对于STL中的算法,我们都可以传递任何类别的可调用对象.对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的.即,如果e是一个可调用的表达式,则我们可以编写代码e(ar ...

  5. 项目Alpha冲刺Day5

    一.会议照片 二.项目进展 1.今日安排 熟悉后台框架并尝试编写及继续搭建前台框架模版.完成登录相关的功能实现,添加一些用户相关的单元测试代码,以及相应的测试数据. 2.问题困难 前端不是很熟,页面框 ...

  6. 团队作业7——第二次项目冲刺(Beta版本计划及安排)

     Beta版本冲刺       需要改进完善的功能 1.寻找BUG.并解决问题 2.界面的优化 下一阶段新增的功能' 1.个人信息头像上传 2.头像裁剪功能 需要改进的团队分工 1.之前产品的主要工作 ...

  7. python实现简单tftp(基于udp)

    tftp是基于udp的协议 实现简单的tftp,首先要有tftp的协议图. tftp默认接收端口为69,但每次有连接过来后,tftp会随机分配一个端口来专门为这个连接来服务. 操作码:1.上传 2.下 ...

  8. Flask-uploads 简单使用

    pip install flask-uploads#先导入次此处需要用到的库: from flask_uploads import UploadSet, IMAGES, configure_uploa ...

  9. Node入门教程(4)第三章:第一个 Nodejs 程序

    第一个 Nodejs 程序 本教程仅适合您已经有一定的JS编程的基础或者是后端语言开发的基础.如果您是零基础,建议您先学一下老马的前端免费视频教程 第一步:创建项目文件夹 首先创建 demos 文件夹 ...

  10. 【TensorFlow随笔】关于一个矩阵与多个矩阵相乘的问题

    问题描述: Specifically, I want to do matmul(A,B) where  'A' has shape (m,n)  'B' has shape (k,n,p) and t ...