计算机分为硬件和软件,硬件就是组成计算机的物理组件。我们的电脑、手机、电子设备都算一个小的计算机。
软件就是按照特定的顺序把数据和指令组合在一起,能够完成相应功能的程序(计算机指令)。
软件分为两种:
开发其实就是制作软件的过程。开发既然是个过程,这个过程可以分为如下几个步骤:
①需求分析和调研、②需求设计、③编码、④测试、⑤后期维护。
从开始和客户谈需求,写需求文档、设计当文档,程序员编码,项目测试,整个过程即就是软件开发。在这个过程中分工合作,完成每一个阶段的任务。
我们想和计算机说话,就要先了解下用什么方式和计算机沟通。
和计算机交互的方式有两种:
若想和计算机沟通,常用的方式就是通过鼠标键盘操作图形化的界面即可完成。这种方式简单易学,大家都会。能干很多事,包括开发游戏。
通过命令行可以和计算机进行相应的沟通,也就是说只要我们输入命令即可完成和计算机沟通的目的。那么命令都有那些呢?常用的dos命令:
dir : 列出当前目录下的文件以及文件夹
md : 创建目录
rd : 删除目录 remove directory
cd : 进入指定目录
cd… : 退回到上一级目录
cd: 退回到根目录
del : 删除文件
exit : 推出dos命令行
help: 帮助命令
cls: dos窗口中清屏可以使用
起初操作电脑常用dos命令,因为需要记住很多命令,不利于普及,后期发展成图形界面,通过鼠标点击界面的形式完成对电脑的操作,其实内部运行的还是这些命令。
既然图形界面是将dos命令封装在里面,可是这个图形界面是怎么来的呢?其实这些图形界面都是通过相应的计算机语言写出来的。那什么又是计算机语言呢?
首先明确什么是语言,语言是人与人之间用于沟通的一种方式。例如:中国人与中国人用中文沟通。而中国人要和韩国人交流,就要学习韩语。
计算机语言:人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语言。计算机语言有很多种,如:C,C++,Java等。这里,我们选择其中的一种:Java语言。
Java之所以被开发,是要达到以下五个目的:
Java技术主要分成几个部分:Java语言、Java运行环境、类库。一般情况下说Java时并不区分指的是哪个部分。
Java在1.5版本时,做了重大改变,Sun公司并1.5版本重命名为Java 5.0。
J2EE(Java 2 Platform Enterprise Edition)企业版 可帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0 应用程序。 J2SE(Java 2 Platform Standard Edition)标准版 它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序,能为Java EE提供开发基础。比如Java版的扫雷。 J2ME(Java 2 Platform Micro Edition)小型版 用来开发移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)。现在使用的越少用了,Android会逐渐的取代J2ME的市场份额。 Java5.0版本后,更名为 JAVAEE JAVASE JAVAME
跨平台就是说同一个软件可以在不同的操作系统上执行,而不需要对软件做任务处理。即通过Java语言编写的应用程序在不同的系统平台上都可以运行。
Java应用程序为什么可以跨平台呢?其实只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
Java程序之所以能够实现跨平台运行,是因为它根本就不直接运行在任何底层平台上,而是需要在哪里运行,就在哪里(如Windows平台)事先准备好自己的Java平台,而这只是仅仅是安装和配置一个软件而已!
Java Virtual Machine ,简称JVM;它是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码(class)文件。
注意:Java语言是跨平台的,是因为Java应用程序需要Java虚拟机JVM负责运行。
而Java虚拟机JVM是不跨平台的,不同的操作系统需要安装与此对应的Java虚拟机JVM。
Jdk(java development toolkit ,java开发工具包)
是java的核心,包括了java运行环境,一堆java工具(javac、java、jdb)和java基础的类库(即javaAPI包括rt.jar)
可以认为Jre的bin目录里的就是jvm,lib中则是jvm工作所需要的类库 。
Jre(java runtime environmental,java运行时环境)
所有的java程序都要在jre下才能运行。包括jvm和java核心类库和支持文件。与jdk相比不包含开发工具(编译器、调试器、和其它工具)。
JVM(java virtual mechinal,java虚拟机)
jvm是jre的一部分,它是一个虚拟出来的计算机。Jvm的主要工作是解释自己的指令集(即字节码)并映射到本地的CPU的指令集或OS的系统调用。
简单而言:使用JDK开发完成的java程序,交给JRE去运行。
为什么JDK中包含一个JRE呢?
官网下载:jdk ,点击安装,分别安装JDK和JRE。
测试安装:进入安装目录下 ,win+R进入dos命令,然后:输入Java和Javac看是否能打印出相关信息,若打印出来说明JDK安装成功。
在配置环境变量过程中发现,path环境变量中还有很多其他与系统相关的配置,若JDK目录更改了,这时就要再次修改path中配置的值,很容易造成误操作。
为了不因为jdk的目录或者目录名称的改变,而不断更改path的值,而导致对path变量值的误操作,可以通过以下技巧完成。
新创建一个环境变量 JAVA_HOME 记录住jdk的目录。在path中通过%%动态的获取JAVA_HOME的值即可。
JAVA_HOME=C:\mysoft\Java\jdk1.7.0_21
path=%JAVA_HOME%\bin;%path%
%path%:动态获取path环境变量的值。
%JAVA_HOME%:动态获取名称为JAVA_HOME环境变量的值。
临时配置方式:通过dos命令中set命令完成
set :用于查看本机的所有环境变量的信息。
set 变量名 :查看具体一个环境变量的值。
set 变量名=:清空一个环境变量的值。
set 变量名=具体值 :给指定变量定义具体值。
想要在原有环境变量值基础上添加新值呢?首先,通过%变量名%操作符获取到原有环境变量的值。然后加上新值后在定义给该变量名即可:
set path=新值;%path%
注意:这种配置方式只在当前dos窗口和在此dos窗口中使用start开启的dos窗口中有效。窗口关闭,配置消失。
正式开始编写java,分为编写.java、编译、运行.class。
使用记事本或者其他记事本工具,编译一个java文件,拓展名为.java
public class Demo01{
public static void main(String[] args){
System.out.println("Hello World!!!");
}
}
紫色的部分称为关键字,我们这里先说class :用于定义类,java语言的程序代码都需要定义在类中。
关键字:被java语言赋予了特殊含义的单词。
Demo01:为了方便使用这个类,给类自定义的类名。
{}:定义该类中代码的范围。
有了java源文件,将其编译成JVM可以识别的文件。在源文件路径下,通过javac编译工具对Demo01.java文件进行编译。如果程序没有错误,没有任何提示,但在当前目录下会出现一个Demo01.class文件,该文件称为字节码文件,也是可以执行的java的程序。
通过java Demo01就可以直接运行。前提main方法,不是名字为main。
后记:main
一个程序的执行需要一个起始点或者入口,所以在Demo01类中的public static void main(String[] args){}
就是这个作用。
使用打印语句System.out.println("Hello World!!!")和System.out.print("Hello World!!!");
ln代表换行,System.out.print打印语句,()内为内容。“”为字符,还可以写数字。还可以写计算公式等。
错误原因:源文件名不存在或者写错,或者当前路径错误。
类文件名写错,或者类文件不在当前路径下,或者不再classpath指定路径下。 编译失败,注意错误出现的行数,在到源代码中指定位置排错。
注意:
Java语言拼写上严格区分大小写;
一个Java源文件里可以定义多个Java类,但其中最多只能有一个类被定义成public类; 若源文件中包括了public类,源文件必须和该public类同名; 一个源文件中包含N个Java类时,编译后会生成N份字节码文件,即每个类都会生成一份单独的class文件,且字节码文件名和其对应的类名相同;
任何一种语言都有自己的语法规则,Java也一样,既然是规则,那么知道其如何使用就可以了。
Java代码都定义在类中,类由class来定义,区分 public class 和 class;
main方法是程序的入口;保证程序的独立运行;被JVM调用;
注释:用于解释说明程序的文字就是注释。有利于提高了代码的阅读性。 注释分类:
注意:多行和文档注释都不能嵌套使用
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
注释还有一个功能就是调试程序用。
/**
这是我的Hello World程序。
*/
class Demo
{
/*
这是主函数,是程序的入口,它的出现可以保证程序的独立运行,
*/
public static void main(String[] args)
{
//这是输出语句用于将括号内的数据打印到控制台。
System.out.println("Hello World");
System.out.println(12/0);
}
}
import java.util.Scanner;
public class 输入和输出 {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
System.out.print("输入 ");
String s = input.nextLine();
Thread.currentThread().sleep(1000);
System.out.println(s);
}
}
关键字:被Java语言赋予了特定含义的一些字符!关键字中所有字母都为小写。好比汉字中的专有名词,例如:中国、北京、上海等。一般我们不能将这些词用在其他地方,改变其含义。
关键字分类:
1. 定义数据类型: class、interface、byte、short、int、long、float、double、char、boolean、void 2. 数据类型的值: true、false、null 3. 流程控制: if、else、switch、case、default、while、do、for、break、continue、return 4. 权限修饰符: private、protected、public 5. 类、函数、变量修饰符: abstract、final、static、 synchronized 6. 类之间关系: extends、implements 7. 异常处理: try、catch、finally、throw、throws 8. 包 package、import 9. 其他修饰 native(执行本地c)、strictfp(类、接口或方法上 约束表达式)、 transient(对象上不会被序列化) 、volatile(弱同步)、assert(断言)
package com.company;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!!!");
}
}
可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。
标识符组成:
注意:在起名字的时,只要标识符不是关键字就可以了,但为了提高阅读性,经常用有意义的英文单词作为标识符。
标识符书写规范: