Arya小科普 | 硬件软件基础知识 Java语言的前世今生 James Gosling老爷子的小故事 Java下载 和 IDEA工具

本文主要是介绍Arya小科普 | 硬件软件基础知识 Java语言的前世今生 James Gosling老爷子的小故事 Java下载 和 IDEA工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

前言

1.从硬件到软件的计算机基础知识;
2.Java之父的小故事;
3.Java语言的前世今生,及其特点;
4.Java下载 和 IDEA工具;


硬件和软件

键盘就是硬件, 操作系统就是软件。

硬件:设备和计算机打交道

软件:客户需求

芯片和CPU

苹果M1芯片,是迄今为止5纳米工艺的技术巅峰。晶体管最高到达1140亿个。

CPU是芯片的逻辑单元,芯片性能越好,CPU的运算效率和速度就越高。

在这里插入图片描述

所有的程序最终不管怎么样,都会交给CPU执行。

在这里插入图片描述

硬盘

1、我们存储的小电影,图片,代码等就静静的躺在硬盘上。 硬盘一般也叫做外存储器,是计算机主要的存储媒介之一。

2、硬盘一般可以分两类,一是固态硬盘(SSD),二是机械硬盘(HDD),SSD要比HDD速度快的多。

在这里插入图片描述

内存

1、计算机所有程序要运行,都会在内存中加载。(包括我们自己白那些的Java程序,网页程序,桌面客户端程序等…)

2、内存的主要作用是帮助CPU做数据运算的,只要计算机运行一次,CPU就会把需要的数据送到内存中进行运算。

3、从速度上来说,就近原则,谁离CPU最近,传送的速度就越快。但计算机一旦关闭,内存中的数据会全部消失。

在这里插入图片描述

硬件和软件

在计算机中,软件和硬件缺一不可。硬件是身体,软件是灵魂。硬件是物质层面,软件是信息层面。计算机在工作过程中,软件运行的基础依赖于硬件

1、软件是一种逻辑的产品,与硬件有本质的区别

硬件是看得见、摸得着的物理设备。在研制硬件产品时,人的生产性活动表现在把原材料转变成有形的物理产品。

而软件产品是以程序和文档的形式存在,通过在计算机上运行来体现他的作用。

在研制软件产品的过程中,人们的创造活动表现在要抽象出问题的模型,然后根据模型写出程序,最后经过调试、运行程序得到求解问题的结果。整个生产、开发过程是在无形化方式下完成的,其能见度极差,这给软件开发、生产过程的管理带来了极大的困难。

2、软件质量的体现方式与硬件不同

硬件产品设计定型后可以批量生产,通过质量检测体系可以得到保障。但是生产、加工过程一旦失误,硬件产品可能就会因为质量问题而报废。而软件产品不能用传统意义上的制造进行生产,就目前软件开发技术而言,软件生产还是“定制”的,只能针对特定问题进行设计或实现。

设计出来的软件即使出现质量问题,产品也不会报废,通过修改、测试,还可以将“报废”的软件“修复”,投入正常运行。可见软件的质量保证机制比硬件具有更大的灵活性。

3、软件产品的成本构成与硬件产品不同

硬件的成本构成物质占了相当大的比重。就硬件产品生存周期而言,成本构成中设计、生产环节占绝大部分,而售后服务只占少部分。软件生产主要靠脑力劳动。软件产品的成本构成中人力资源占了相当大的比重。

4、软件产品的失败曲线与硬件产品不同

硬件产品存在老化和折旧问题。当一个硬件部件磨损时可以用一个新部件去替换他。硬件会因为主要部件的磨损而最终被淘汰。对于软件而言,不存在折旧和磨损问题,如果需要的话可以永远使用下去。但是软件故障的排除要比硬件故障的排除复杂得多。软件故障主要是因为软件设计或编码的错误所致,必须重新设计和编码才能解决问题。

软件在其开发初始阶段有很高的失败率,这主要是由于需求分析不切合实际或设计错误等引起的。当开发过程中的错误被纠正后,其失败率便下降到一定水平并保持相对稳定,直到该软件被废弃不用。在软件进行大的改动时,也会导致失败率急剧上升。

5、大多数软件仍然是定制产生的

硬件产品一旦设计定型,其生产技术、加工工艺和流程管理也就确定下来,这样便于实现硬件产品的标准化、系列化成批生产。,硬件的作用发挥又依赖于软件,所以他们俩是相辅相成的。

编译过程

在这里插入图片描述

Java之父James Gosling老爷子

James Gosling老爷子

James Gosling(詹姆斯·高斯林 )是一名软件专家。

在这里插入图片描述
955年5月19日出生于加拿大,Java编程语言的共同创始人之一,一般公认他为“Java之父”。

1977年获得了加拿大卡尔加里大学计算机科学学士学位。

1983年获得了美国卡内基梅隆大学计算机科学博士学位。

开源:

​ 底层代码给你,你可以研究……

我认为一门语言的诞生都是解决了特定场景下的问题,如果不注重体验 ,不降低学习成本,一味地追求测试基准数据和噱头就一定没有前途。优秀的语言和框架都特别重视运营和体验。

在这里插入图片描述

早年经历

  • 12岁的时候,精通计算机,喜欢玩游戏,但市面上游戏机稀缺, 已经能设计电子游戏机。
  • 大学时期,天文物理系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位。
  • 1981年他开发了Unix上运行的Emacs类编辑器GoslingEmacs(以C语言编写)。
  • 1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作。
  • 由于在公司不受重用(估计受不到资本家压迫),选择转至Sun公司:

这在后来被公认为他一生最精明的决定之一。在几年的蛰伏后,他终于找到了能让自己翱翔的那片天空。

1990年,他与他的团队合作开发“绿色计划”,后来发展一套语言叫做“Oak”,这也就是被后人所熟知的那个“优秀,稳定而出众”的Java的雏形。

工作履历

  • 2009年四月,Sun被甲骨文公司并购。高斯林于2010年四月时宣布从甲骨文公司离职。

Through some odd twists in the road over the past year, and atardisencountered along the way, I find myself starting employment at Google today. One of the toughest things about life is making choices. I had a hard time saying “no” to a bunch of other excellent possibilities. I find it odd that this time I’m takingthe road more travelled by, but it looks like interesting fun with huge leverage. I don’t know what I’ll be working on. I expect it’ll be a bit of everything, seasoned with a large dose of grumpy curmudgeon.

在过去的一年中,在道路上出现了一些奇怪的曲折一路走来,我发现自己今天开始在谷歌工作。生活中最艰难的事情之一就是做出选择。我很难对其他许多优秀的可能性说“不”。我觉得奇怪的是,这一次我走的是人迹罕至的道路,但它看起来很有趣,有着巨大的影响力。我不知道我将要做什么。我想这将是所有的东西中的一部分,带有大量暴躁的脾气。

  • 2011年3月29日,高斯林在个人博客上宣布将加入Google。
  • 2011年8月30日,加盟一家从事海洋机器人研究的创业公司Liquid Robotics,担任首席软件架构师。负责传感器软件开发和自主导航设计,数据中心海量数据处理。

Java语言 VS 其他语言

Java竞争对手

在这里插入图片描述

Java的优点

1、跨平台

写的代码可以在各个操作系统上运行。 技术支持是JVM(java虚拟机)。

-面试:JVM内存调优

因为有jvm,所以java跨平台。

跨平台的价值点:节约其它的重复开发成本。

2、面向对象编程语言(站在软件设计角度,站在人类思想角度),相对于面向过程(站在计算机维度思考问题)。

在这里插入图片描述

Java平台技术体系

在这里插入图片描述

面向对象优点

简化开发。

面向对象很难用一句话来概括,越精确的定义,背后的复杂度就越高。

广义上:

  • 面向对象是一种编程思想,基本原则是抽象出对象共同的属性和行为,封装到类里面
  • 面向对象编程三大核心:封装,继承,多态
  • 面向对象的商业价值:简化开发,利于维护,方便团队分工协作。

在这里插入图片描述

Java下载 和IEDA工具初识

在这里插入图片描述

下载Java

在这里插入图片描述

官网:https://www.oracle.com/java/technologies/downloads/
官网下载的话,一般会比较慢,因为是国外的网站。如果觉得慢的话,可以通过其他网站下载。

在这里插入图片描述

在这里插入图片描述

不同操作系统的JDK版本不一样,注意不要下载错了!!!以Windows操作系统为例,下载64为的jdk-8u321-windows-x64.exe。如果操作系统是32位的,就下载jdk-8u321-windows-i586.exe。

目前市场用的最多的就是jdk-8

在这里插入图片描述

注册账号

在这里插入图片描述

在这里插入图片描述

进行下载

在这里插入图片描述

IEDA编程工具

ntelliJ IDEA是一款功能强大,符合【人体工程学】的 JVM IDE。

IntelliJ IDEA简称IDEA,它是 JetBrains 公司下的Java集成开发环境,在业界被公认为是最好的Java开发工具之一;

JetBrains是捷克的一家软件公司,该公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主,旗下开发了多款软件开发工具;

官方网站:https://www.jetbrains.com/

Intellij IDEA工具已经有很长的历史了,2001年1月发布IntelliJ IDEA 1.0版本,只是一直没有被大量使用;

IntelliJ IDEA以前是收费软件,不过在2009年以后开始推出了免费的社区开源版本;

目前IntelliJ IDEA有免费的社区版(功能相对较少),和收费的旗舰版(功能比较全面);

在这里插入图片描述

来自官网:

Why IntelliJ IDEAEnjoy Productive JavaEvery aspect of IntelliJ IDEA has been designed to maximize developer productivity. Together, intelligent coding assistance and ergonomic design make development not only productive but also enjoyable。

在这里插入图片描述

在这里插入图片描述

版本

IntelliJ IDEA 分为“旗舰版”和“社区版”;

旗舰版(Ultimate Edition)为收费版本,功能强大,有30天免费试用期;

社区版(Community Edition)为免费版本,功能较旗舰版少了很多,可一直免费使用;

一般地,IntelliJ IDEA 大版本为一年迭代一次,大版本下的小版本迭代时间不固定,快则一个月,慢则两至三月迭代一次;

目前最新版本为:IntelliJ IDEA 2022.3.1

在这里插入图片描述

IDEA工程结构

工作空间 : 存放代码的目录。

在这里插入图片描述

项目结构

在这里插入图片描述

项目结构总览

在这里插入图片描述

Java基本语法结构

基本语法

语法

在这里插入图片描述

分析

在这里插入图片描述

打印语句

在这里插入图片描述

代码规范

在这里插入图片描述

在这里插入图片描述


总结

1.从硬件到软件的计算机基础知识;
2.Java之父的小故事;
3.Java语言的前世今生,及其特点;
4.Java下载 和 IDEA工具;

这篇关于Arya小科普 | 硬件软件基础知识 Java语言的前世今生 James Gosling老爷子的小故事 Java下载 和 IDEA工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327115

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c