1 概述

1.1 计算机

  • 计算机包括硬件和软件两部分。硬件包括计算机中可以看得见的物理部分。软件提供看不见的指令。这些指令控制硬件并且使得硬件完成特定的任务。

1.2 程序设计

  • 定义:创建(或开发软件)。软件包含了指令,告诉计算机做什么。
  • 应用场景:软件遍布我们周围。除了个人计算机,飞机、汽车、手机甚至烤面包机中,同样运行着软件。

1.3 程序设计语言

  • 软件开发人员在程序设计语言的强大工具的帮助下制作软件。

1.4 如何选择学习那种编程语言?

  • 程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。
  • 无需困惑那种语言是最好的。事实上,没有“最好”的语言。每种语言都有它的长处和短处。
  • 经验丰富的程序员知道各种语言擅长的应用场景,因此,会尽可能的掌握各种不同的程序设计语言。
  • 如果你掌握了一种编程语言,应该会很容易上手其他的编程语言。关键是学习如何使用程序设计方法来解决问题。

2 计算机硬件介绍

2.1 冯·诺依曼体系结构

  • 冯·诺依曼体系结构是现代计算机的基础,现在大多数计算机依然是冯诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯诺依曼体系结构的束缚。冯·诺依曼也因为被人们称为“计算机之父”。

2.2 CPU

  • 中央处理器是计算机的大脑。它从内存中获取指令,然后执行这些指令。
  • 中央处理器包括控制单元和算术/逻辑单元。其中,控制单元用于控制和协调其他组件的动作。算术/逻辑单元用于完成数值运算和逻辑运算。
  • 每台计算机都有一个内部时钟,该时钟以固定速度发射电子脉冲。时钟速度越快,在给定的时间段内执行的指令就越多。其计量单位是Hz,1Hz相当于每秒发射1个脉冲。随着CPU速度的不断提高,目前以GHz来表述。
  • 最初的CPU只有一个核。核是处理器中实现指令读取和执行的部分。一个多核CPU是一个具有两个或者更多独立核的组件,可以提高CPU的处理能力。

2.3 IT行业的三大定律

2.3.1 摩尔定律

  • 摩尔定律是Intel创始人之一戈登·摩尔提出来的。
  • 其内容为:当价格不变的时候,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。

2.3.2 安迪-比尔定律

  • 安迪-比尔定律描述了硬件厂商和软件厂商之间的关系。比尔拿走安迪所给的。
  • 个人电脑工作整个生态链是这样的:以微软为首的软件开发商吃掉硬件提升带来的全部好处,迫使用户更新机器让惠普和戴尔等公司收益,而这些整机生产商再向Intel这样的半导体厂商订货购买新的芯片,同时向Seagate等外设厂商购买新的外设。在这中间,各家的利润先后得到相应的提升,股票也随着增长。各个硬件半导体和外设公司再将利润投入研发,按照摩尔定律制定的速度,提升硬件性能,为微软下一步更新软件、吃掉硬件性能做准备。当然,微软和其他软件开发商在吃掉大部分硬件提升好处的同时,或多或少的给用户带来一些新的东西。

2.3.3 反摩尔定律

  • 反摩尔定律是Google的前CEO埃里克·施密特提出的。
  • 如果你反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多 、同样的产品,它的营业额就要降一半。
  • 反摩尔定律对于所有的IT公司来讲,都是非常可怕的,因为一个IT公司花了同样的劳动,却只得到以前一半的收入。反摩尔定律逼着所有的硬件设备公司必须赶上摩尔定律所规定的更新速度,而所有的硬件和设备厂商将活的非常辛苦。

2.3 存储设备

  • 内存中的信息在断电的时候会丢失。我们可以考虑将程序和数据永久的保存在磁盘设备上。当计算机确实需要这些数据的时候,再移入内存,因为从内存中读取要比从存储设备快的多。
  • 存储设备有如下的几种:
  • ①磁盘驱动器:每台计算机至少有一个硬盘驱动器。硬盘用于永久的保存数据和程序。
  • ②光盘驱动器:CD的容量可容纳700MB。DVD的容量可容纳4.7GB。
  • ③USB闪存驱动器:可以使用USB将打印机、数码相机、鼠标、外设硬盘驱动器连接到计算机上。USB闪存驱动器很小,可用于存储和传输数据的设备。  

2.4 比特(bit)和字节(byte)

  • 计算机就是一些列的电路开关。每个开关存在两种状态:开和关。如果电路是开的,它的值是1。如果电路上关的,它的值是0。
  • 一个0或者1存储为一个比特(bit),是计算机中最小的存储单位。
  • 计算机的最基本的存储单元是字节(byte)。每个字节是由8个比特构成的。
  • 计算机的存储能力是以字节来衡量的,其换算如下:
    • 1KB=1024B
    • 1MB=1024KB
    • 1GB=1024MB
    • 1TB=1024GB
    • ……  

2.5 内存

  • 内存(RAM):由一个有序的字节序列组成,用于存储程序及程序需要的数据。
  • 一个程序和它的数据在被CPU执行前必须移到计算机的内存中。
  • 每个字节都有唯一的地址。使用这个地址确定字节的位置,以便于存储和获取数据。
  • 一个计算机具有的RAM越多,它的运行速度越快,但是此规律是有限制的。
  • 内存和CPU一样,也构建在表面嵌有数百万晶体管的硅半导体芯片上。但内存芯片更简单、更低速、更便宜。
  • 实测发现:内存存取数据的速度要比硬盘的存取速度快10倍,在某些环境里,硬盘和内存之间的速度差距可能会更大。而CPU的速度要比内存不知道快多少倍。当我们把程序从硬盘放到内存以后,CPU就直接在内存运行程序,这样比CPU直接在硬盘运行程序快的多。
  • 内存解决了一部分CPU运行过快,而硬盘数据存取太慢的问题。提高了我们电脑的运行速度。内存就如同一条“高速车道”一般,数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理。
  • 但是,内存是带电存储的(一旦断电数据就会消失),而且容量是有限的,所以要长时间存储程序或数据就需要使用硬盘。
  • 内存的作用:
  • ①保存从硬盘读取的数据,提供给CPU使用。
  • ②保存CPU的一些临时执行结构,以便CPU下次使用或保存到硬盘。  

2.6 输入输出设备

  • 常见的输入设备:键盘和鼠标。
  • 常见的输出设备:显示器和打印机。

3 计算机发展史上的鼻祖

3.1 图灵

  • 最近半个世纪以来,世界计算机科学界的重大进步,离不开图灵等人的理论奠基作用和多方面的开创性研究成果。图灵是当之无愧的计算机科学和人工智能之父。甚至认为,他在技术上的贡献对未来世界的影响几乎可与牛顿、爱因斯坦等巨人比肩。
  • 图灵论文中的“用有限的指令和有限的存储空间可算尽一切可算之物”理论让当时的科学家震惊。
  • 美国计算机学会(ACM)的年度“图灵奖”,自从1966年设定以来,一直是世界计算机科学领域的最高荣誉,相当于计算机科学界的诺贝尔奖。至今,中国人只有姚期智院士获取该奖项。

3.2 冯·诺依曼

  • 20世纪最重要的数学家之一,在现代计算机、博弈论、核武器和生化武器等诸多领域有杰出建树的最伟大的科学全才之一,被后人称为“计算机之父”和“博弈论之父”。
  • 计算机基本工作原理是存储程序和程序控制,它是由世界著名的数学家冯·诺依曼提出的。最简单的来说,冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。

4 操作系统

  • 操作系统是运行在计算机上最重要的程序,它可以管理和控制计算机的活动。
  • 操作系统的主要任务:
  • ①控制和监视系统的活动。
  • ②分配和调度系统资源。
  • ③调度操作。

5 万维网

  • 万维网简称web,发明人是蒂姆·伯纳斯·李。
  • 分为web客户端和web服务器程序。
  • www可以让web客户端访问浏览web服务器上的页面。是一个由许多互相连接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的树屋,称为“资源”,并且有一个全局的“统一资源标识符URI”标识,这些资源通过http传送给用户,而后者通过点击链接来获取资源。

java语言编程入门的更多相关文章

  1. 微博,and java 多线程编程 入门到精通 将cpu 的那个 张振华

    http://down.51cto.com/data/2263476  java 多线程编程 入门到精通  将cpu 的那个 张振华 多个用户可以同时用一个 vhost,但是vhost之间是隔离的. ...

  2. JAVA网络编程入门

    JAVA网络编程入门 软件结构 C/S结构 B/S结构 无论哪一种结构,都离不开网络的支持.网络编程,就是在网络的条件下实现机器间的通信的过程 网络通信协议 网络通信协议:通信双方必须同时遵守才能完成 ...

  3. Java并发编程入门与高并发面试(三):线程安全性-原子性-CAS(CAS的ABA问题)

    摘要:本文介绍线程的安全性,原子性,java.lang.Number包下的类与CAS操作,synchronized锁,和原子性操作各方法间的对比. 线程安全性 线程安全? 线程安全性? 原子性 Ato ...

  4. JAVA语言编程思维入门

    Java语言是一门强数据类型语言,也就是所有的数据有自己的数据类型,不能搞混淆.比如整数int 字符串String 不能用int a="字符串123";这样写是错的,因为数据类型不 ...

  5. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  6. java自学-编程入门

    java语言写的代码需要先编译为可执行文件,才能被jvm执行.在下载的jdk安装目录下的bin目录,有两个可执行程序java.exe和javac.exe,javac就是用来编译的,java是执行编译后 ...

  7. JAVA语言编程格式高级规范

    作为一位开发人员,都要有严格的代码规范.为此我总结了一些代码规范案例. 目   录 1. 前言 2. 试用范围 3. JAVA命名规范-- 3.1 公共约定 3.2 Java文件.包 3.3 类.接口 ...

  8. C语言编程入门之--第四章C语言基本数据类型

      导读:C语言程序中经常涉及一些数学计算,所以要熟悉其基本的数据类型.数据类型学习起来比较枯燥,不过结合之前的内存概念,以及本节的字节概念,相信数据类型也就不难理解了.本章从二进制的基本概念开始,然 ...

  9. Java语言编程 - 搭建Java开发环境

    2.1 JDK.JRE和JVM关系 要弄清楚JDK.JRE和JVM这三者之间的关系,先看如下图,有个感性的认识: JDK:Java Development ToolKit(Java开发工具包).JDK ...

随机推荐

  1. 在jsp中怎么使用Cookie?el表达式中获取cookie的问题

    初学jsp,不清楚cookie的使用方法,希望高手指点一下!   一般来说有两种办法,在JSP中使用Java的嵌入脚本. 例如: 写入Cookie <html> <head>. ...

  2. 2018.08.18 NOIP模拟 snow(最大流)

    Snow 题目背景 SOURCE:NOIP2015-SHY4 题目描述 有一天,TT 要去 ABC 家.ABC 的大门外有 n 个站台,用 1 到 n 的正整数编号,TT 需要对每个站台访问恰好一定次 ...

  3. 2018.08.11 洛谷P3224 [HNOI2012]永无乡(线段树合并)

    传送门 给出n个带点权的点,支持连边和查询连通块第k大. 这个貌似就是一道线段树合并的裸板啊... 代码: #include<bits/stdc++.h> #define N 100005 ...

  4. hdu-2159(完全背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159 思路:完全背包,但有次数的限制,因此,对次数进行dp,判断次数是否超限. #include< ...

  5. IntelliJ IDEA 2017版 spring-boot修改端口号配置把端口号改为8081

    1.修改端口号主要是通过配置文件修改.如图: 完整版配置 ######################################################## ###server 配置信息 ...

  6. Creating a Simple Web Service and Client with JAX-WS

    Creating a Simple Web Service and Client with JAX-WS 发布服务 package cn.zno.service.impl; import javax. ...

  7. Airplace平台

    Demo: 左上角:(0, 0)开始导航,手机终端上实时在地图上当前所在显示,当前点以绿色点显示,轨迹点以红色显示. 系统架构:基于移动手机的以网络为辅助的架构.特点:低头顶交流,用户隐私和安全 &g ...

  8. (最短路) Heavy Transportation --POJ--1797

    链接: http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS   Memory Limit: 30000K To ...

  9. HDU1501 Zipper(DFS) 2016-07-24 15:04 65人阅读 评论(0) 收藏

    Zipper Problem Description Given three strings, you are to determine whether the third string can be ...

  10. [译]在 Andriod/IOS 程序中使用自己的字体

    原文链接:http://firemonkeyblog.blogspot.com/2014/12/using-custom-fonts-in-android-delphi.html 你应该能够在 And ...