Java小白进阶笔记(1)-重新认识Java

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

重新开始学习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++的优点,摒弃了多继承,指针的概念

  • 不仅仅是一门语言,还是一个庞大的技术体系(包括编程语言、虚拟机、- - 开发环境、应用程序环境、部署环境等)

原文链接

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

真相!30K拿到互联网大厂offer,网友:我服了!

最近笔者在知乎刷到一个帖子,其中,这条回答让人印象深刻:其实,最近几年人工智能大火,其中深度学习岗位的薪酬爆增,BAT大厂高薪招聘AI人才,收到的简历却寥寥无几?究竟是大厂岗位要求高…

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

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

组件使用中的细节点02

使用is属性解决bug 页面 Vue根实例中除外 在子组件定义data时&#xff0c;data必须是个函数&#xff0c; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue中的列表渲染</title><!--引入…

php对帖子分类,php – MySQL:从类别中获取帖子

我正在尝试学习MySQL,所以我创建了一个小博客系统.我在MysqL中有3个表&#xff1a;帖子&#xff1a;id | title----------------1 | Post Title 12 | Post Title 2类别&#xff1a;id | title | parent--------------------------------10 | category10 | 011 | category11 | 0…

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

摘要&#xff1a; 继续学习&#xff1a; 4.偏头痛杨的Java入门教学系列之初级面向对象篇继续学习&#xff1a;4.偏头痛杨的Java入门教学系列之初级面向对象篇 分割线中为原文的摘录&#xff1a;面向过程编程&面向对象编程从面向过程到面向对象&#xff0c;不仅仅是编程方式…

鸿蒙 OS 的到来,能为我们改变什么?| 程序员大本营9月刊

作者 | 屠敏出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;「鸿蒙初辟原无姓&#xff0c;打破顽空需悟空」&#xff0c;在国产自研操作系统短缺的窘境之下&#xff0c;天惊一声雷&#xff0c;「鸿蒙」踏风来。回首上个月的技术圈&#xff0c;最值得业界浮称流说的…

vue 嵌套表格组件_使用form-create动态生成vue自定义组件和嵌套表单组件

使用form-create动态生成vue自定义组件和嵌套表单组件maker.create通过建立一个虚拟 DOM的方式生成自定义组件生成Makerlet rule [formCreate.maker.create(i-button).props({type:primary,field:btnloading:true})]$f formCreate.create(rule);上面的代码是通过maker生成器动…

注释那些事儿:前端代码质量系列文章(一)

摘要&#xff1a; 好的注释可以提高代码的可读性和可维护性&#xff0c;从而提高代码质量。那么什么是好的注释&#xff1f;如何写出好的注释&#xff1f;“Comment or not comment, that is the question”好的注释可以提高代码的可读性和可维护性&#xff0c;从而提高代码质量…

linux 给普通用户赋予最高权限

文章目录一、创建新用户二、给新用户设置密码三、赋予sudoers文件写的权限四、编辑sudoers文件五、删除sudoers文件写的权限一、创建新用户 useradd know二、给新用户设置密码 passwd know三、赋予sudoers文件写的权限 chmod uw /etc/sudoers四、编辑sudoers文件 vim /etc/…

php裁剪图片并上传源码,改写jcrop插件+php的图片上传实现与裁剪一体化

1.图片上传后立刻判断图片的宽和高是否超过预设的最大高度与宽度&#xff0c;超过了则生成缩略图&#xff0c;2.图片裁剪使用的是jquery的裁剪插件Jcrop,可以实现裁剪的即时预览&#xff0c;代码没有优化&#xff0c;会生成很多垃圾图片&#xff0c;欢迎大家一起改进&#xff0…

人工智能和机器学习的前世今生

摘要&#xff1a; 阅读本文以了解更多关于人工智能、机器学习和深度学习方面的知识&#xff0c;以及它们对商业化意味着什么。如果正确的利用模式识别进行商业预测和决策&#xff0c;那么会为企业带来巨大的利益。机器学习&#xff08;ML&#xff09;研究这些模式&#xff0c;并…

30 岁程序员生活图鉴,怎样算是活成了理想的模样?

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | 年素清来源 | 程序人生第一批90后已近而立&#xff0c;相信他们中的每个人在年少的时候都曾经憧憬过长大后的图景&#xff1a;做医生当老师做大官&#xff0c;开飞机打怪兽赚大钱……程序员&#xff08;媛&#xff09;们自然也…

pythontuple([1、2、3)_Python 进阶之路 (三) Tuple元组使用指南

比List更安全的数据类型大家好&#xff0c;今天为大家介绍一种更为安全的Python内置数据类型:tuple(元组)&#xff0c;以及它的基础用法元组是什么元组(tuple)是另一种有序的数据类型&#xff0c;与list比较类似。主要不同的一点是tuple被创建后就不能对其进行修改。所以&#…

linux 创建用户和修改新增用户默认的家目录

文章目录一、用户操作①创建新用户②给新用户设置密码③ 默认家目录二、修改默认家目录① 编辑passwd文件② 在下面找到新增的用户③ 把前面的目录(/home/gblfy)修改为(/app/gblfy)三、验证测试①切换用户②查看当前用户目录一、用户操作 ①创建新用户 useradd gblfy②给新用…

深度学习技巧与窍门

摘要&#xff1a; 本文是根据自身构建深度学习模型总结而来&#xff0c;适合有一定深度学习基础的读者阅读。本文是根据自身构建深度学习模型总结而来&#xff0c;可能读起来比较干巴&#xff0c;但干货确实不少。闲话少叙&#xff0c;直接进入相关内容。首先&#xff0c;为什么…

Python库大全(涵盖了Python应用的方方面面),建议收藏留用!

学Python&#xff0c;想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富&#xff0c;开源项目也非常多。 Python学习网络爬虫主要分3个大的版块&#xff1a;抓取&#xff0c;分析&#xff0c;存储 当我们在浏览器中输入一个url后回车&#xff0c;后台会发生什么&#xff1…

java.io.IOException 权限不够

这几天修改了jenkins发布时启动java项目的用户。原先是root现在换成普通用户了&#xff0c;结果部署下来会报错 java.io.IOException: 权限不够 发现临时文件的创建目录是/tmp/poifiles&#xff0c;到服务器查看/tmp/poifiles这个文件的创建用户是root&#xff0c;java普通用户…

让我再撸一次HashMap

戳蓝字“CSDN云计算”关注我们哦&#xff01;对于JAVA求职者来说&#xff0c;HashMap可谓是集合类的重中之重&#xff0c;甚至你在复习的时候&#xff0c;其他集合类都不用看&#xff0c;专攻HashMap即可。然而&#xff0c;鉴于网上大部分的关于HashMap的面试方向文章&#xff…

sklearn svm 调参_sklearn调参(验证曲线,可视化不同参数下交叉验证得分)

一 、 原始方法&#xff1a;思路&#xff1a;1. 参数从 0∞ 的一个 区间 取点&#xff0c; 方法如&#xff1a; np.logspace(-10, 0, 10) &#xff0c; np.logspace(-6, -1, 5)2. 循环调用cross_val_score计算得分。在SVM不同的惩罚参数C下的模型准确率。import matplotlib.pyp…

php json获取get请求,PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据...

PHP携带Cookie用Curl进行Post或Get请求获取数据简单的curl请求(Get请求)function hansCurl($url){$url"https://www.yyob.com";$ip rand(0, 255) . . . rand(0, 255) . . . rand(0, 255) . . . rand(0, 255);$header[] "accept: application/json";$head…