Java是什么?Java到底能干嘛?

Java是什么?Java到底能干嘛?我刚开始学习Java的时候,很长一段时间都有这么个疑惑?Java到底是啥?它能干什么?自己也看过不少的课程和书,大部分都是从Java的发展史开始讲,总之就是那些什么Jav…

大家好,又见面了,我是你们的朋友全栈君。

我刚开始学习Java的时候,很长一段时间都有这么个疑惑?

Java到底是啥?它能干什么?

自己也看过不少的课程和书,大部分都是从Java的发展史开始讲,总之就是那些什么Java历史悠久,Java很优秀,Java越来越牛,用的人越来越多,什么编程语言排行榜常年第一,大致都是这些,然后再扯些其他的,接着就上起了Hello World!就这样,你Java生涯的第一个代码开始了,意思是“你好,世界!”

我还是想不通,Java是啥,能干嘛,能不能先告诉我?

可能你在刚开始学习Java的时候也有这样的疑惑,那么你会怎么做呢?你不知道啊,怎么办?问别人?不,你应该会想到百度,不是说

百度一下,你就知道吗?

好嘞,我们上百度看看去:

640?wx_fmt=png

看到第一个是百度百科对Java的介绍,点开看看吧,百度百科是这样介绍Java的:

Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 [1] 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 [3] 。

大眼一看,说的真好,不过总觉得有点官方啊,继续搜索其他的文章,看看别人怎么介绍Java的,随便点开一篇文章,看,这位博主这样说:

Java是一种可以撰写跨平台应用程序的、面向对象的程序设计语言。简单说,Java就是一种语言,不过是一种针对jvm的语言,Java编译后是字节码,而jvm会把这些字节码解释成机器码,然后做出相应的动作。

百度百科那个说到了C和C++,还有什么面向对象,分布式,还有什么静态面向对象编程,觉得有点不懂,看这位博主写的,貌似懂了一些,不过啥是jvm啊?

你看看,刚开始学习个Java,没想到什么是Java都弄不清楚,有点小失落!

庆哥说:很多人刚开始学习Java的时候其实并不会这样仔细的去研究到底什么是Java,大部分都是百度搜一下看一下什么是Java,或者看书看视频,听别人大致讲一下什么是Java就过去了,结果就是突然有人问你什么是Java,你貌似不知道怎么说,大致能想起来,嗯,是个编程语言。

那么怎么去理解Java,该怎么说呢?要的是那种从来没有接触过编程的人也能一听就知道Java是什么了?有吗?

那必须有啊,那啥是Java嘞?

首先嘞,你先记住,Java是语言,啥是语言?汉语,英语,法语和德语,布拉布拉,就这些,对,Java也是一门语言,有啥不同嘞,像汉语,针对的是我们人,我们中国人大部分都是使用汉语来进行沟通,Java也是语言,不过我们人不用Java语言沟通,那Java是谁的沟通语言?

Java是计算机和我们的沟通语言,计算机可以懂Java这门语言。当然,你学会了Java,你也会这门语言,你就可以和计算机沟通啦!

比如说,你对你女朋友说“给我倒洗脚水去!”,然后你女朋友听到了这句话,知道自己该干嘛了,就去给你倒洗脚水了(现实中大部分不是这样,哈哈)。

那么你要是和计算机沟通,想让计算机给我们做一件事情,总不能说“喂,计算机,给我倒洗脚水去”,这个计算机还真听不懂,那咋办?

当然是得使用计算机能够明白的语言与它沟通啦!那是啥,Java就是啊,你使用Java是可以和计算机沟通的,当然这里的沟通是类比我们人与人之间的说法,其实对于计算机而言,准确的应该是我们给计算机下达指令,计算机收到我们的指令去做相应的事情。

怎么样,大致有个印象吧!啥是Java,明白那么一丢丢了吧!

Java是一门语言,记住了吧,这个语言是用于计算机的,我们使用Java可以和计算机进行交流,我们写一段Java代码,计算机就知道我们想干啥,当然前提是你写的是正常的代码,所以Java可以叫做计算机语言。

可能有人又不明白了,啥是计算机语言,这个?不就是计算机之间的语言嘛,我们看看百科怎么介绍计算机语言的:

计算机语言(computer language)指用于人与计算机之间通讯的语言,是人与计算机之间传递信息的介质。但是其概念比通用的编程语言要更广泛。例如,HTML是置标语言,也是计算机语言,但并不是编程语言。

看到这里我们又要肯定一个概念,啥嘞?

Java是一门计算机语言,可以用于我们与计算机之间的沟通,我们可以使用Java语言给计算机下达指令。

好,我们继续,我们看上面说到了编程语言,那啥又是编程语言,和计算机语言有什么区别呢?

首先你要知道,你学习Java,以后你就可以说自己是程序员,码农,敲代码的,干编程的!

你看,我们又说到了编程,咱先来说说编程语言吧,上面我们说到,Java是一门计算机语言,那是不是编程语言呢?

必须的啊,Java铁定是编程语言啊,这里要记住:

计算机语言包括的更多,它包括了编程语言,除此之外,计算机语言还包括置标语言,建模语言,你可能又糊涂了,这都是啥啊?其实吧,我也不知道,所以,别管了,你只要记住,计算机语言包括编程语言,Java是一门计算机语言,也是一门编程语言。

到了这里,急需要和大家解释一下,什么是编程语言,百科对他是这样说的:

用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

简单点,大白话一点:

可以写程序,也就是我们可以使用它来让计算机干活

没忘记吧,Java就是一门编程语言啊,当然,编程语言那可有不少嘞,就像各个国家都有自己不同的语言,编程语言也是有很多分类的,来来,看张图吧:

640?wx_fmt=png

你看看,是不是很多啊,不过不用管它,我们的重点是Java。

说到了这里,我们大致知道了Java是个啥,那么这个Java怎么用啊?能不能举个例子啊,好,接下来,我们就让我们的计算机给我们倒洗脚水,走起。

对了,你起码应该知道Java编程语言,是需要你写的吧,也就是需要你敲代码的。

庆哥说:啥是代码啊,代是代表的意思,码嘞,这可不是我们骑得那玩意,这里指的是二进制编码,所以代码就是“代表二进制编码的东西”,这一块,后面也会详细介绍,不着急。

下面我们开始敲代码吧,打开你的记事本,然后写上这些:

public class Hello{	
    public static void main(String[] args){	
        System.out.println("hello,给我倒洗脚水去");	
    }	
}

对了,你知道上面这是干嘛不,我们在给计算机发指令嘞,也就是让它给咱干活,写好之后保存这个文件,对了,文件的格式要改成以“java”结尾的哦,文件名称要叫Hello,也就是“Hello.java”

看,就是它:

640?wx_fmt=png

然后我们打开我们电脑上的cmd命令行,关于cmd有多种打开方式,通常的一种是按下“win+r”会出现这个:

640?wx_fmt=png

在里面输入cmd,然后确定,就会出现“黑窗口”,也就是dos命令窗口。也就是现在这个样子:

640?wx_fmt=png

可能有人说,不一样啊,我的没有那个cd,我也是刚打上的,所以,你也敲上个cd吧,可能有人知道这是干嘛的,接下来我们把刚才创建的“Hello.java”直接拖拽到这个黑窗口,就成了这样:

640?wx_fmt=png

然后注意要把后面的“\Hello.java”删除掉,然后按一下回车键,也就是“Enter”,就出现了这个:

640?wx_fmt=png

ps:到这里可能有人会出错了,我们初学编程的时候总会遇到各种各样的奇葩问题,很多人迷茫的不要不要的,说我明明照着做的,为啥就是不行,初学者出现这样的问题,大部分都是自己的马虎造成的,非说自己的一样,到最后,不是字母写错,就是忘了空格,还有个重要的是标点符号不是英文状态下的,如果你这里出现错误了,看看,有没有出现我说的错误。

接下来,我们继续输入:

javac Hello.java

然后回车,这一回车不要紧,那是会产生一个新物种的:

640?wx_fmt=png

出现了啥新物种呢?你看看,就是它:

640?wx_fmt=png

这个是Java的字节码文件,也叫做class文件,因为命名是以class结尾的,这个你不懂没关系,我们接着往下做:

640?wx_fmt=png

看到没,我们又输入了以下命令:

java Hello

然后我们看到有个输出:

Hello,给我倒洗脚水去

ps:如果你在跟着我的操作在你的电脑上操作的话,可能你在输入javac那一步就出错了,那是因为你缺少java运行环境,这个我们后面会详细介绍,你可以先看我操作的结果。

有人说,这是啥,有点疑惑啊,我之前不是说了嘛,我们可以使用java语言来给计算机下达指令,让计算机给我们干活,对了,你不会真以为计算机会给咱们倒洗脚水吧。

我们再来看看这段代码:

public class Hello{	
    public static void main(String[] args){	
        System.out.println("hello,给我倒洗脚水去");	
    }	
}

这就是一段最简单的java代码,至于为啥这样写,你先不用管,我们不是说可以用java给计算机下达指令嘛?指令在哪?

System.out.println("hello,给我倒洗脚水去");

这其实就是我们给计算机下达的一个指令,意思是让计算机在屏幕上打印这一句话:

hello,给我倒洗脚水去

我们看刚才的输出,是不是就是打印出了这句话:

640?wx_fmt=png

你看,计算机是不是按照我们给的Java指令做出了相应的动作,当然,这是最基本的,最简单的。

到这里,我相信,你大致懂了什么是Java了,不过接下来还有一个大问题,那就是Java能干嘛啊?

上面我们给出了一个简单的例子,就那么一丢丢代码,不过还可以有很复杂的,代码超级多的,这样就会产生一个有很多功能的东西,比如我们可以用Java写一个计算器,啥计算器,就类似你电脑上自带的计算器那样,再比如我们常用的qq吧,我们也可以用Java写一个,当然,越复杂的应用,写起来难度越大,我们还可以使用Java做出来一个网站,你想在网站上展示啥都行。

不过嘞,Java可能写系统更多一些,就是各种各样的后台,啥是后台,比如你进入淘宝买东西吧,你登陆自己的账户和名称,然后进入首页,然后搜索“好吃的”,然后就会出来一大堆好吃的。

为啥你输入自己的账户和名称就能进去网站,那是因为用Java代码写了一个逻辑,比如说,你的名字是1,密码是2,当你点击登录按钮的时候,Java代码中就会做判断,如果名字是1而且密码是2,那就让你登进去,否则就进不去,这都是Java代码的功劳。

当你选中一个好吃的,然后下单,填写地址,然后你就愉快的购物完成了,接下来商家需要给你发货啊,于是商家就会登上一个网站,在这个里面可以看到你叫啥,买的啥,地址在哪,然后就给你发货了,商家登入的这个网站就可以叫做后台。

懂了嘛,Java就可以完成这样的一个网站。

学到后面你就会发现,语言就是工具,能做的事情有很多,不局限于网站啊,桌面应用啥的!

说了这些,你也能大致知道Java能做些啥了,其实我知道你了解的还是有点模糊,那下面咱再说说。

Java其实有三个版本分类:

  1. JavaSE

  2. JavaME

  3. JavaEE

你可以大致的这样理解,JavaSE是Java的核心基础,包含的就是基础知识,自学Java刚开始都是从这个开始的,JavaME呢?不知道大家之前玩过那种游戏没,就是在安卓手机还没有的时候,我们会下载一些jar结尾的游戏文件来安装,打开之后都会先有这个图标:

640?wx_fmt=png

你可以简单理解这就是JavaME搞出来的,不过后来出来了安卓,就代替了它,所以不用太管它,至于JavaEE,可以称为企业级应用开发,这部分会学各种框架,各种高级玩意儿,也是我们后期主要学习的东西,我们可以利用这部分知识开发各种网站啊,桌面应用啊,一些工具啊,甚至游戏都可以,当然,很多应用都是使用到了java的综合技术来实现的。

现在很多学习编程的人,刚开始会疑惑不知道学哪门编程语言,其实吧“铁打的思想,流水的语言”,语言终归是工具,怎么用,能干嘛,这取决于用的人,如果你足够牛,那么你可以:

用java改变世界!

尾声:这篇文章相当于一个先导课,目的是让大家对java有个初步的认识,后期会有更加详细的介绍,会带着大家一步步揭开java的神秘面纱!

有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号

640?wx_fmt=png

好文章,我在看❤️

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156595.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm该不该用汉化_pycharm语言怎么改成中文

    pycharm该不该用汉化_pycharm语言怎么改成中文原文:PyCharm设置中文(无需汉化包)(转载)如果侵权请联系我删除

    2025年6月14日
    4
  • 冯诺依曼结构的基本原理_冯诺依曼机工作原理

    冯诺依曼结构的基本原理_冯诺依曼机工作原理2.冯诺依曼计算机的工作原理*存储系统构建与快速访问存储程序:将程序存放在计算机的存储器中*指令系统、控制器设计等程序控制:按指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号

    2022年8月5日
    4
  • Jmm模型_fgls模型

    Jmm模型_fgls模型一、什么是JMM模型Java内存模型(即JavaMemoryModel,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),用于存储线程私有的数据,而Java内存模型中规定所有变…

    2025年9月13日
    14
  • DeepLab v3_deeplab模型导出

    DeepLab v3_deeplab模型导出大年初一我居然在更博客。今年过年由于病毒横行,没有串门没有聚餐,整个人闲的没事干。。。医生真是不容易,忙得团团转还有生命危险,新希望他们平安。本篇不属于初级教程。如果完全看不懂请自行谷歌或搜索作者博客。deeplab官方提供了多种backbone,通过train.py中传递参数,–model_variant=”resnet_v1_101_beta”\可以更改backbone。…

    2022年9月25日
    5
  • linux网络发包工具_web抓包工具

    linux网络发包工具_web抓包工具如果想做模仿网络攻击的测试,选择高速小包发送工具,最好还是可以指定协议的。当然,我们研究这些可不是打算用来攻击他人的机器,搞网络破坏的,而是用来通过该方法测试收数据体验一下被攻击的感觉,哈哈,也顺便衡量一下机器的性能。这方面smartbit测试仪可以完全可以满足。可惜啊,一台都得好几十万,对于大多数人来说都不太划算。那么还有没有软件的发包工具可以实现高速按指定协议发送数据包啊?!有。还是要归功于l

    2025年8月27日
    4
  • vue网络图片url转Base64「建议收藏」

    vue网络图片url转Base64「建议收藏」单张图片转Base64<script>methods:{ //异步执行 imageUrlToBase64(){ //一定要设置为let,不然图片不显示 letimage=newImage(); //解决跨域问题 image.setAttribute(‘crossOrigin’,’anonymous’); let…

    2025年12月7日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号