一、什么叫做编程

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

百度百科词条的解释:

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

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

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

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

二、白话编程语言

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

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

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

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

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

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

所以如今最常用的编程语言就是高级语言,而高级语言像比较常见的有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. UI自动化测试框架 ---TestCafe

    UI自动化测试框架 ---TestCafe 官网文档链接: https://devexpress.github.io/testcafe/ https://devexpress.github.io/te ...

  2. Kali之msf简单的漏洞利用

    1.信息收集 靶机的IP地址为:192.168.173.136 利用nmap工具扫描其开放端口.系统等 整理一下目标系统的相关信息 系统版本:Windows server 2003 开放的端口及服务: ...

  3. 模型正则化,dropout

    正则化 在模型中加入正则项,防止训练过拟合,使测试集效果提升 Dropout 每次在网络中正向传播时,在每一层随机将一些神经元置零(相当于激活函数置零),一般在全连接层使用,在卷积层一般随机将整个通道 ...

  4. 003 ansible部署ceph集群

    介绍:在上一次的deploy部署ceph,虽然出了结果,最后的结果并没有满足最初的目的,现在尝试使用ansible部署一遍,看是否会有问题 一.环境准备 ceph1充当部署节点,ceph2,ceph3 ...

  5. 快速部署postfix邮件服务器

    • 装包.配置.起服务– 默认的标准配置即可为本机提供发/收邮件服务– 若有必要,可扩大服务范围(邮件域) 前提:邮件服务器,必须为手工配置永久主机名虚拟机server0[root@server0 ~ ...

  6. @Configuration结合@Bean实现对象的配置

    @Configuration结合@Bean实现对象的配置 前提:最近项目中需要做支付接口,支付宝以及微信支付,本文并不介绍如何写支付接口,而是通过这个示例讲解配置应该怎么写,项目中使用的是Kotlin ...

  7. windows生成github密钥并推送文件踩坑

    强调官方文档最可靠,百度踩坑很浪费时间,建议去寻找一手数据源头 github官方文档提供了帮助 第一步 查看密钥 如果您还没有 SSH 密钥,则必须生成新 SSH 密钥. 如果您不确定是否已有 SSH ...

  8. MATLAB生成正弦波

    要求:选定采样频率,生成不同频率的正弦波 程序: f1=100;%生成正弦波的频率 fs=1000;%采样频率 N=100;%采样点数 n=0:N-1; t=n/fs;%时间序列 y=sin(2*pi ...

  9. 【转】常见Java面试题 – 第一部分:非可变性(Immutability)和对象引用(Object reference)

    ImportNew注: 本文是ImportNew编译整理的Java面试题系列文章之一.请看此系列相关面试题.你可以从这里查看全部的Java面试系列. 一些比较核心的Java问题经常会用来考验面试者的J ...

  10. 哪些工具可以提升PHP开发效率

    本文就我自己在开发过程中的一点经验,谈谈如何利用工具来提升开发工作的编码效率, IDE(phpstorm 收费) 一个好的IDE真的可以给开发人员节省大量的时间,我从最开始使用editplus 到su ...