摘要: 这是偏头痛杨的第一篇原文链接,其中,在系列的第二篇开头作者布置了十道题,下面是我的回答(大多是作者的文章摘录)

重新开始学习Java了,这也是为了以后找工作考虑。热爱的机器学习就先放一放了,作为兴趣爱好研究,不花太多精力了>﹏<
因为大二上学期有过一门Java课,作为快速复习。在CSDN上找到了偏头痛杨的Java入门系列文章,写得非常好!

1.偏头痛杨的Java入门教学系列之认识Java篇

这是偏头痛杨的第一篇原文链接,其中,在系列的第二篇开头作者布置了十道题,下面是我的回答(大多是作者的文章摘录)。

1.Java为什么能跨平台?

跨平台是指跨不同的操作系统,因为从写java代码到运行,需要经过两个过程,Java程序的源代码(.java)编译成虚拟机(JVM)能看懂的字节码(.class),然后再由虚拟机解释执行成对应的操作系统能看懂的机器码。
从而实现了所谓的跨平台,一次编译处处执行(Write Once,Run Anywhere)。
需要注意的是不同操作系统上要装对应的JVM,但这并不与跨平台冲突,因为即使不同操作系统上的虚拟机的一些细节是不一样的,但它们所能看懂的字节码(.class)都是一样的,而字节码是与平台无关的。

2.Java抄了哪个编程语言?

C++

3.Java是由哪个公司搞出来的?

Sun公司

4.Java的爸爸是谁?

詹姆斯-高斯林

5.Java的工作机制?

Java程序的源代码(.java)编译成虚拟机(JVM)能看懂的字节码(.class),然后再由虚拟机解释执行成对应的操作系统能看懂的机器码

6.JDK&JRE&JVM分别是什么以及他们的关系?

JVM(Java Virtual Machine):

Java虚拟机,主要负责运行Java编译器编译后的字节码文件(*.class文件),它存在于内存中,与内存打交道。
JVM运行在操作系统之上,与硬件没有直接交互,JVM是实现跨平台的核心。
JVM是一种抽象&虚拟出来的计算机,和实际的计算机一样,
它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据,内存和寄存器,指令集,寄存器,
类文件的格式,栈,垃圾回收堆,存储区等。
JVM在执行字节码时,把字节码解释成具体平台上的机器码执行。
JVM自己无法执行,必须要联合JRE中的Java基础&核心类库才能使用。

JRE(Java Runtime Environment):

Java运行环境,支持Java程序运行的标准环境,包括了JVM(Java虚拟机)的标准实现以及Java基础&核心类库。

jre1.8目录包含:

  • bin:有java.exe但没有javac.exe,无法编译Java程序,但可以运行Java程序,可以把这个bin目录理解成JVM。
  • lib:Java基础&核心类库,如rt.jar,也包含JVM运行时需要的类库。

JRE=JVM+Java基础&核心类库

JDK(Java Development Kit):

Java开发工具包,是一个编写Java应用程序的开发环境(程序员专用)。
JDK是整个Java的核心,包括了JRE(Java运行环境)与一些Java开发工具(例如:jconsole、javac、java、javadoc、native2ascii、jar等)。
主流的JDK是Sun公司发布的JDK,除了Sun公司之外,还有很多公司和组织都开发了自己的JDK,
例如:IBM公司开发的JDK,BEA公司的JDK,还有GNU组织开发的JDK。

jdk1.8目录包含:

  • bin:一堆exe文件,可执行的开发工具,最主要的是javac, 例如:jconsole、javac、java、javadoc、native2ascii。
  • jre:java运行环境,包括JVM+Java基础&核心类库 。
  • lib:包含dt.jar+tools.jar的常用类库,开发依赖包。
  • db:jdk从1.6之后内置了Derby数据库,它是是一个纯用Java实现的内存数据库,属于Apache的一个开源项目。用Java实现的,所以可以在任何平台上运行;另外一个特点是体积小,免安装,只需要几个小jar包就可以运行了。
  • include:java和JVM交互用的头文件。

JDK=JRE+Java开发工具(编译器、调试器等)

JDK&JRE&JVM总结:

JRE是个运行环境,JDK是个开发环境,因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。
而JDK里面已经包含了JRE,因此只要安装了JDK,就可以开发Java程序,也可以正常运行Java程序。
但由于JDK包含了许多与运行无关的内容,例如编译器、调试器等,占用的空间较大,
因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可(例如在服务器中运行Java程序)。

7.Java的应用场景?

互联网应用的服务端程序(包括分布式系统)

很多第三方交易系统、银行、金融机构、大型网站、互联网平台都选择用Java开发。
大多数情况下,Java被用在服务器端开发,但多数没有任何前端,它们通常是从一个服务器接收数据,
处理后发向另一个处理系统。

Android应用

许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,
但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。

大数据技术

Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

网站

Java在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,
SpringMVC,Struts2.0以及frameworks。即使是简单的 servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。
例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。

嵌入式领域

Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。

桌面应用

例如:jmeter,netbeans,freemind,eclipse等。

游戏

火遍全球的《我的世界》以及一堆java小游戏。

8.java与javac命令的作用?

javac命令是在jdk的bin文件夹下的,作用是将Java源程序(.java)编译为虚拟机能明白的字节码(.class)

java命令是在jre的bin文件夹下的,作用是将虚拟机中的字节码(.class)解释执行成对应平台操作系统能明白的机器码。

9.Java环境如何配置?

这个省略,去看作者(偏头痛杨)的文章,或者百度都能OK!

10.Java的部分特点?

  • 跨平台
  • 重要的网络编程语言
  • 吸收了C++的优点,摒弃了多继承,指针的概念
  • 不仅仅是一门语言,还是一个庞大的技术体系(包括编程语言、虚拟机、- - 开发环境、应用程序环境、部署环境等)

原文链接

本文为云栖社区原创内容,未经允许不得转载。

Java小白进阶笔记(1)-重新认识Java相关推荐

  1. Java小白进阶笔记(5)-进阶面向对象

    继续学习: 7.偏头痛杨的Java入门教学系列之进阶面向对象篇 上Java课的时候没弄明白接口,今天终于明白了(但没使用过,还停在理论的程度,可能理解也不准确,以后学通了会回来补充:)如果你刚学Jav ...

  2. Java小白进阶笔记(3)-初级面向对象

    摘要: 继续学习: 4.偏头痛杨的Java入门教学系列之初级面向对象篇 继续学习: 4.偏头痛杨的Java入门教学系列之初级面向对象篇  分割线中为原文的摘录: 面向过程编程&面向对象编程 从 ...

  3. Java小白进阶笔记(2)-变量和数据类型

    摘要: 复习Java知识,主要是一边看**偏头痛杨**的博客,一边完成博主布置的任务.这是看[2.偏头痛杨的Java入门教学系列之变量&数据类型篇][1] 的作业 复习Java知识,主要是一边 ...

  4. Java语言基础(Java自我进阶笔记二)

    Java语言基础(Java自我进阶笔记二) 一. 什么是Java 的主类结构? 1. #mermaid-svg-xWTL2A8kDyyRPexH .label{font-family:'trebuch ...

  5. 从小白进阶成为大lao,java学习5大阶段

    Java如今已经是全球编程语言排名第一的语言,运用广泛,前景广阔,而且很多软件的开发都离不开Java,而在以Java为核心的开发领域中,程序员的需求量10年来一直居于首位!那么Java入门如何学习?怎 ...

  6. 怒肝俩月,新鲜出炉史上最有趣的Java小白手册,第一版,每个 Java 初学者都应该收藏

    这么说吧,在我眼里,Java 就是最流行的编程语言,没有之一(PHP 往一边站).不仅岗位多,容易找到工作,关键是薪资水平也到位,不学 Java 亏得慌,对吧? 那可能零基础学编程的小伙伴就会头疼了, ...

  7. 学java怎么做笔记?如何整理java笔记?java学习笔记

    许多开始学Java编程的朋友,都是跟着视频学习的,知道要记笔记,但又不知如何下手.其实笔记主要的还是记框架以及自己能感觉到不懂得地方方便巩固加深印象,笔记不要记得密密麻麻的看着就让人感觉头疼,学习编程 ...

  8. Java小白入门200例81之Java接口

    作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...

  9. Java小白入门200例80之Java继承(extends)

    作者简介 作者名:编程界明世隐 简介:CSDN博客专家,从事软件开发多年,精通Java.JavaScript,博主也是从零开始一步步把学习成长.深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢 ...

最新文章

  1. HDU1251 统计难题 【trie树】
  2. win10计算机更新后网络卡,win10电脑更新完卡死 win10电脑更新完卡死解决办法
  3. RFM模型及R语言实现
  4. C#设计模式之十八状态模式(State Pattern)【行为型】
  5. Glide 4.x添加自定义组件原理
  6. 数据库左连接,右连接区别解析
  7. UNITY3D报错 bug reporter
  8. 视频剪辑一定要知道这6个免费视频素材库
  9. 疯癫的我到了巅峰 -- 我的成人礼
  10. 汉得 HAP (HAND Application Platform)
  11. Previously configured interpreter中显示<No interpreter>的解决方法
  12. 定时执行命令crontab的使用
  13. 软连接和硬链接的区别
  14. QQ丐版(韩顺平Java多用户通信项目)
  15. 基于STM32的虚拟示波器
  16. Java实现最粗略的小学生数学考试自动系统
  17. postgresql 修改表的字段由NOT NULL修改为NULL
  18. A5年终盘点:整理2013站长圈里的N多个盘点 N多个热点
  19. python蝴蝶代码_ProE常用曲線方程:Python Matplotlib 版本代碼(蝴蝶曲線)
  20. uniapp微信小程序之图片左右滑动加载上下页

热门文章

  1. php 字符串函数 教程_PHP 字符串获取 substr 与 strstr 函数
  2. vue ui框架_「webAPP」记录几款比较好用的vue 移动端的ui框架
  3. 加载文件流_jvm类加载的过程
  4. 逆向so_安卓逆向 | 分析调试与so调用实战
  5. mysql union null_mysql – 删除SQL中的SQL JOIN和UNION操作符中的NULL值
  6. python 秒杀12306课程_Python攻破12306网站,实现2020最强抢票模式!
  7. 一位36岁女教师关于教职、学术、幸福及正确道路的思考
  8. 为什么博导都希望,自己的博士生毕业也去高校当老师?
  9. 硅谷的高科技公司与“抵消战略”
  10. 5G大幕已启 将如何改变社会?