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. Jmeter-基于Ubuntu运行

    这几天折腾了很久,整合了一套接口自动化的持续集成工具,先从最基础的运行Jmeter说起.由于我是用Docker部署的持续集成环境,所以接口运行必须在服务器上 一:在Linux服务器先安装jdk 1:先 ...

  2. servlet本质

    首先我们先要知道servlet是什么,这有两种解释.一是目前大多数人所说的,一个实现了servlet接口的类就可以叫作servlet.二,servlet只是一个接口.那么看起来这两点都和servlet ...

  3. 启动django应用报错 “Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。”

    启动django应用时报如下错误 "Error: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试." 网上查了一下,是8000端口被其他程序占 ...

  4. vim的配置

    修改根目录下.vimrc文件: 1.设定解码,支持中文 set fileencodings=utf-8,ucs-born,gb18030,gbk,gb2312,cp936 set termencodi ...

  5. Alpha第六天

    Alpha第六天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  6. scrapy crawl xmlfeed spider

    from scrapy.spiders import XMLFeedSpider from myxml.items import MyxmlItem class XmlspiderSpider(XML ...

  7. AS 实机测试 ADB.exe 提示

    adb fail to open error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常每 ...

  8. python 常用算法学习(2)

    一,算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时间内获得所要求 ...

  9. 消除ExtJS6的extjs-trila字样

  10. 剑指offer-反转单词顺序列

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...