Java小白入门:聊聊Java这门编程语言
一、什么叫做编程
首先我们应该了解一下什么叫做编程。
百度百科词条的解释:
编程是编定程序的简称,是让计算机代我们解决某个问题,是对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
对于该解释,大家也包括我自己可能并不是很理解,那我们反正就这么理解,一般来说编程就是写代码,目的是为了解决问题,解决什么问题需要看需求,看甲方爸爸的需求,所以也就有了需求工程师这个职位。
这么理解,简单、粗暴,哈哈哈。
但是有个误区要提醒一下,编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程(这是词条中提到的,我觉得有必要提一下)。
二、白话编程语言
然后,我们来了解一下关于编程语言的知识。
我们都知道,语言嘛,当然是用来沟通交流、传递信息的,在人类的世界里,语言的种类非常多,像汉语、英语、日语、法语等等。
所以,我们不妨猜想一下,在计算机的世界里,会不会也是这样的呢?答案是,的确如此。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。
这种形式就是指编程语言。
在计算机领域,编程语言也很多,按发展历程来划分大致可以分为三大类:机器语言、汇编语言以及高级语言。从机器语言到高级语言,经历了很长一段时间的发展。它们是发明者为了满足现实的需要,不断迭代发展到今天这个简单、易于学习的高级语言的。
所以如今最常用的编程语言就是高级语言,而高级语言像比较常见的有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这门编程语言的更多相关文章
- Java Socket 入门2 Java与C# Socket 通信
参考http://www.cnblogs.com/cdtarena/p/3184313.html 这里以C#作为服务端 其实不论C#是服务端还是客户端都不是主要问题 毕竟不论客户端还是服务端 都包括 ...
- 带领技术小白入门——基于java的微信公众号开发(包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证)
微信公众号对于每个人来说都不陌生,但是许多人都不清楚是怎么开发的.身为技术小白的我,在闲暇之余研究了一下基于java的微信公众号开发.下面就是我的实现步骤,写的略显粗糙,希望大家多多提议! 一.申请服 ...
- Java小白不走弯路学习Java流程以及学习误区
学习Java编程技术肯定是以就业拿到高薪工作为主要目的的,可是高薪不会那么轻易拿到,这是一个最简单的道理.没有付出就没有回报,在整个学习Java编程技术的过程中,你需要付出时间.精力.金钱.废话不多说 ...
- java面向对象入门(3)-java构造方法
Java构造函数是特殊的方法(没有返回类型),使您可以在应用程序内部的其他类使用对象之前完全初始化对象状态.Java中的构造方法是使用new关键字调用的.下面让我们更深入地了解构造函数. 1.什么是j ...
- 200-Java语言基础-Java编程入门-005 | Java方法定义及使用
一.方法概述和格式说明 为什么要用方法: 提高代码的复用性 什么是方法: 完成特定功能的代码块 方法的格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方 ...
- 200-Java语言基础-Java编程入门-006 | Java数组定义及使用(引用数据类型)
一.数组概述和定义格式说明 为什么要有数组(容器): 为了存储同种数据类型的多个值 数组概念: 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引 ...
- 200-Java语言基础-Java编程入门-004 | Java分支与循环
一.流程控制语句 可以控制程序的执行流程 在程序开发的过程之中一共会存在有三种程序逻辑:顺序结构.条件分支(选择)结构.循环结构. 顺序结构的定义,即:所有的程序将按照定义的代码从上往下.顺序依次执行 ...
- Java小白如何一步步学好Java,听听企业Java培训师的实践经验吧
今天我准备给小主展示一篇Java培训老师的文章,希望能给Java小白一个学好Java的路径或者提示.以下就是原文: 从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做train ...
- Java从入门到精通一步到位!
Java作为近几年来非常火的编程语言,转行来做Java的人不计其数,但如今真正的人才仍然匮乏,所以学习Java一定要有一个系统的学习规划课程.阿里云大学帮您规划Java学习路线可以帮助您从一个小白成长 ...
随机推荐
- Visio图像应用
图像插入: 直接搜索然后插入 CAD是工程绘图. CAD属性设置框 下面是图像编辑: 通过格式中的旋转进行调整 但是CAD格式的图没有格式 图片可以设置题注 图片层次的使用 CAD图片颜色的修改在 图 ...
- MySQL中的CHAR和VARCHAR到底支持多长?
最近在研究MySQL的数据类型,我们知道,选择合适的数据类型和数据长度对MySQL的性能影响是不可忽视的,小字段意味着可以MySQL可以读取更多的记录,从而加快查询速度. 网上该问题的答案有很多版本, ...
- Gif动图压缩java版
简单说明下,如果不是压缩动图的话只用java本身的包足够实现压缩和截取图片了,为了能够压缩gif动图,这里引用了两个文件 AnimatedGifEncoder 和 GifDecoder, 先用Deco ...
- 【一起学源码-微服务】Nexflix Eureka 源码十三:Eureka源码解读完结撒花篇~!
前言 想说的话 [一起学源码-微服务-Netflix Eureka]专栏到这里就已经全部结束了. 实话实说,从最开始Eureka Server和Eureka Client初始化的流程还是一脸闷逼,到现 ...
- CSS3(4)---动画(animation)
CSS3(4)---动画(animation) 之前有写过过渡:CSS3(2)--- 过渡(transition) 个人理解两者不同点在于 过渡 只能指定属性的 开始值 与 结束值,然后在这两个属性值 ...
- Oracle表空间概述及其基本管理
最近在工作中遇到有同事对Oracle表空间的理解有问题,所以写了这篇文章.我会从概念,管理及特别需要关注的点等几个维度对表空间进行一些介绍.本文以介绍表空间为主,涉及到的其他概念不展开描述.有问题的地 ...
- 关于Integer 和Double包装类创建对象时的底层解析
public void method1() { Integer i = new Integer(1); Integer j = new Integer(1); System.out.println(i ...
- static和final关键字
static关键字 静态变量 静态变量:又称做类变量,也就是这个变量属于整个类,而不属于单个实例.类所有的实例共享静态变量,可以直接通过类名来访问它.静态变量在内存中只存在一份,当系统第一次加载类时, ...
- Python开发 之 Websocket 的使用示例
1.唠唠叨叨 最近又回顾了下Websocket,发现已经忘的七七八八了.于是用js写了客户端,用python写了服务端,来复习一下这方面的知识. 2.先看一下效果吧 2.1.效果1(一个客户端连上服务 ...
- 搭建个人OpenAPI
简介 OpenAPI Open API 即开放 API,也称开放平台. 所谓的开放 API(OpenAPI)是服务型网站常见的一种应用,网站的服务商将自己的网站服务封装成一系列 API(Applica ...