一、什么叫做编程

首先我们应该了解一下什么叫做编程。

百度百科词条的解释:

编程是编定程序的简称,是让计算机代我们解决某个问题,是对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。

对于该解释,大家也包括我自己可能并不是很理解,那我们反正就这么理解,一般来说编程就是写代码,目的是为了解决问题,解决什么问题需要看需求,看甲方爸爸的需求,所以也就有了需求工程师这个职位。

这么理解,简单、粗暴,哈哈哈。

但是有个误区要提醒一下,编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程(这是词条中提到的,我觉得有必要提一下)。

二、白话编程语言

然后,我们来了解一下关于编程语言的知识。

我们都知道,语言嘛,当然是用来沟通交流、传递信息的,在人类的世界里,语言的种类非常多,像汉语、英语、日语、法语等等。

所以,我们不妨猜想一下,在计算机的世界里,会不会也是这样的呢?答案是,的确如此。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。

这种形式就是指编程语言。

在计算机领域,编程语言也很多,按发展历程来划分大致可以分为三大类:机器语言、汇编语言以及高级语言。从机器语言到高级语言,经历了很长一段时间的发展。它们是发明者为了满足现实的需要,不断迭代发展到今天这个简单、易于学习的高级语言的。

所以如今最常用的编程语言就是高级语言,而高级语言像比较常见的有C、C++、Java、Python等等,那么我们可以用它们做什么事呢?

前面说了,编程语言和我们熟悉的汉语一样,也是用来沟通交流的,只是在沟通对象上有区别而已。

汉语是人与人之间的沟通,而编程语言则是人与计算机之间的沟通(简称人机交互),并且这种沟通是单向的,只有人可以主动来和计算机“交流”,而计算机是不会主动和我们说话的。
但是,在科技发展如此迅速的时代,或许未来真的会诞生智能电脑(人工智能领域)也很有可能哦。(这个只是谭少额外的一点想法,说的可能不太准确,毕竟对这些不懂)。

在IT领域中,编程语言是程序员小哥哥和计算机打交道、指挥计算机帮其解决现实问题的工具。

对编程和编程语言有了一个大概的了解之后,下面我们开始介绍Java。

、Java介绍

那有的人可能就想问了,既然编程语言这么多种,那为什么偏偏就选择Java呢?这其实就和很多人会选择努力学好英语一样,它们都比较火热,而且都在各自领域起着重大作用。

Java被称之为计算机界的“英语”,在编程语言排行榜中多年来一直名列前茅,并且连续多年排名第一,你说它火不火。说白了,学好它对你很有用,不管是靠它找工作以此谋生还是作为一个爱好,对你生活和工作的发展都很有帮助。

所以,想出国、想到外企工作的人就要学好英语,而想当程序员,拿高薪,迎娶白富美的你(男生),学好Java就很大程度上能帮你实现。
当然了,你也可以选择学其他语言,不一定非得是Java,只是相对来说,学Java的人比较多些,学Java出身做程序员的叫做Java程序员。

可能有人想说,学的人这么多,岂不是竞争也很大啊。
是的,竞争非常大,但是通往成功的路上并不拥挤,因为很多人由于坚持不下去而放弃了,坚持到最后的人很少,所以,要成功,那就做那个坚持到最后的人。

好了,废话不多说了,正式开始介绍Java。

1、Java诞生及其发展简史

1991年,SUN公司的Green项目,播下了Java语言的种子,当时Java还不叫Java,叫Oak。
1995年年初,Sun公司发布了Java语言,开源免费给大家使用,短短几个月内,Java受到了大家的广泛喜爱,成为了互联网上最热门的宝贝。

但是,此时的Java还不能开发复杂的应用程序,要开发的话,必须要有一个强大的开发类库。
因此,Sun公司在1996年发布了JDK1.0。

有了这个东西,我们就能使用Java开发复杂的应用程序了。
在接下来几年里,Sun公司陆续又接着发布了JDK1.1、JDK1.2,而1998年12月JDK1.2的发布是Java历史上最重要的一个版本,这次将Java分成了J2SE、J2EE、J2ME三个版本。

三个版本之间的关系如下:

J2SE是Java技术的基础和核心,也是其他两个版本的基础,初学Java就是从J2SE学起的。
J2EE是Java技术中应用最广泛的部分,主要用于企业级应用的开发。
J2ME则主要用于控制移动设备和信息家电等有限存储的设备(实际开发中用的比较少,了解即可)。

这个版本的发布,标志着Java吹响了向桌面、企业、移动三个领域进军的号角

2004年10月,Sun公司发布了万众期待的JDK1.5,并将JDK1.5改名为JavaSE 5.0,同样的,J2EE和J2ME也改名为JavaEE和JavaME。

2009年4月,Oracle宣布收购Sun,从此Java成了Oracle公司的资产,而Sun公司也永远的消失了,但Sun公司创造的传奇是老一辈程序员心中的怀念。

……此处省略部分历史

经过二十多年的发展,至今Java已经成为互联网上最受欢迎的编程语言了。如今JDK的最新版本已经到JDK13了,并且还在不断的发展中。

2、学好Java具体能够做什么呢?

可以做软件,分为三类,电脑桌面应用和网页版应用,还有移动客户端程序。

  但是现在有专门搞移动端的安卓开发和IOS开发了,所以Java主要应用于前两个领域(用的最多的还是网页版应用开发,也就是前面提到的企业级应用),不过学安卓开发也是要有Java基础的,IOS开发就要学别的东西了。

3、Java语言的特性

  • 简单易用
  • 面向对象
  • 安全性高
  • 支持多线程
  • 跨平台

简单易用:任何事物都是相对的,Java相对C、C++来说要简单易学,容易上手,但是这不代表学好也比它们容易。
跨平台:我们称能够支持程序运行的硬件或软件环境为平台,各操作系统也是软件,所以Windows、Linux、Mac都可以称之为一个平台。

Java程序不是直接运行在操作系统上,而是运行在一个叫做Java虚拟机(Java Virtual Machine,简称JVM)的虚拟计算机上。
Java针对不同的系统有不同的JVM实现,只要你的系统中安装了对应的JVM,就能运行Java程序,而不依赖于操作系统。

简单点说就是,你拿一个Java程序,在Windows、Linux、Mac上都能运行,只要它们各自都安装了JVM。

JVM是Java语言的运行环境,也是Java 最具吸引力的特性之一

JVM用于读取并处理编译过的与平台无关的字节码文件,从而实现Java的可移植性。(字节码文件后面会讲到)。
但是值得注意的是Java虚拟机是不跨平台的,也就是说在Windows下得装Windows版的JVM,在Linux下装Linux版的JVM,在Mac下得装Mac版的JVM。

文章首发于同名微信公众号:谭少学Java

这是我在博客园的第一篇博客,以后的Java学习、更博之路还很漫长,感兴趣的老铁可以关注一波。

Java小白入门:聊聊Java这门编程语言的更多相关文章

  1. Java Socket 入门2 Java与C# Socket 通信

    参考http://www.cnblogs.com/cdtarena/p/3184313.html 这里以C#作为服务端  其实不论C#是服务端还是客户端都不是主要问题 毕竟不论客户端还是服务端 都包括 ...

  2. 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)

    微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...

  3. Java小白不走弯路学习Java流程以及学习误区

    学习Java编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习Java编程技术的过程中,你需要付出时间.精力.金钱.废话不多说 ...

  4. java面向对象入门(3)-java构造方法

    Java构造函数是特殊的方法(没有返回类型),使您可以在应用程序内部的其他类使用对象之前完全初始化对象状态.Java中的构造方法是使用new关键字调用的.下面让我们更深入地了解构造函数. 1.什么是j ...

  5. 200-Java语言基础-Java编程入门-005 | Java方法定义及使用

    一.方法概述和格式说明 为什么要用方法: 提高代码的复用性 什么是方法: 完成特定功能的代码块 方法的格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {     方 ...

  6. 200-Java语言基础-Java编程入门-006 | Java数组定义及使用(引用数据类型)

    一.数组概述和定义格式说明 为什么要有数组(容器): 为了存储同种数据类型的多个值 数组概念: 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引 ...

  7. 200-Java语言基础-Java编程入门-004 | Java分支与循环

    一.流程控制语句 可以控制程序的执行流程 在程序开发的过程之中一共会存在有三种程序逻辑:顺序结构.条件分支(选择)结构.循环结构. 顺序结构的定义,即:所有的程序将按照定义的代码从上往下.顺序依次执行 ...

  8. Java小白如何一步步学好Java,听听企业Java培训师的实践经验吧

    今天我准备给小主展示一篇Java培训老师的文章,希望能给Java小白一个学好Java的路径或者提示.以下就是原文: 从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做train ...

  9. Java从入门到精通一步到位!

    Java作为近几年来非常火的编程语言,转行来做Java的人不计其数,但如今真正的人才仍然匮乏,所以学习Java一定要有一个系统的学习规划课程.阿里云大学帮您规划Java学习路线可以帮助您从一个小白成长 ...

随机推荐

  1. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  2. 跟我一起学QT_QT标准对话框_颜色选择框

    标准对话框 QT的标准对话框分为以下几种 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 颜色对话框 首先学习的是颜色对话框颜色对话框类QColor ...

  3. 用c++ 给易语言写支持库学习记录

    废话我就不对说 直接开始 易语言官方下载的易语言安装路径下 有一个SDK文件夹 我们点进入cpp文件夹里面提供是c++的SDK elib文件夹里就是sdk 我们新建一个win32项目 这里我用的是VS ...

  4. 【题解】歌唱王国(概率生成函数+KMP)+伦讲的求方差

    [题解]歌唱王国(概率生成函数+KMP)+伦讲的求方差 生成函数的本质是什么呀!为什么和It-st一样神 设\(f_i\)表示填了\(i\)个时候停下来的概率,\(g_i\)是填了\(i\)个的时候不 ...

  5. Python3 pip换源

    pip安装源 介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里: ...

  6. Linux开发环境及应用—《第三周单元测验》《第四周单元测验》

    三单元 1.vi处于文本输入状态时,按下下列哪个按键可以返回命令状态?C A.^ B.$ C.Esc D- 2.vi处于命令状态时,按下下列哪组按键可以把正在编辑的内容保存到磁盘上?D A.Ctrl- ...

  7. SpringBoot 2.X集成 jdbc自动配置原理探究

    前言 Springboot对于数据访问层,不管是 SQL还是 NOSQL,Spring Boot 底层都是采用 Spring Data 的方式统一处理.Spring Data 是 Spring 家族中 ...

  8. 菜鸟学习Fabric源码学习 — Endorser背书节点

    Fabric 1.4 源码分析 Endorser背书节点 本文档主要介绍fabric背书节点的主要功能及其实现. 1. 简介 Endorser节点是peer节点所扮演的一种角色,在peer启动时会创建 ...

  9. AtomicXXX系列类使用分析

    本博客系列是学习并发编程过程中的记录总结.由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅. 并发编程系列博客传送门 在java.util.concurrent.atomic ...

  10. 微信小程序开发笔记(二)

    一.前言 继承上一篇所说的,有了对微信小程序的基础概念后,这边将会示范动手做一个小程序,在动手的过程中我们可以更快的熟悉小程序里面的架构和开发流程. 二.小程序的设计 这次要做的是一个猜数字的程序,程 ...