1.1 软件

    1.1.1 定义:是一系列按照特定顺序组织的计算机数据和指令的集合。

    1.1.2 分类:系统软件和应用软件。


1.2 人机交互

    1.2.1 交互方式

  •  图形化界面:如windows

  •  命令行方式:如DOS、Linux的终端

    1.2.2 命令行

        常用命令:

        dir:显示当前目录下的所有文件和文件夹

        md:创建目录

        rd:删除目录(保证文件夹是空的)

        del:删除文件(不走回收站)

        cd:进入指定目录

        cd..:退回到上一级目录

        exit:退出


1.3 java概述

    java语言是SUN在1995年推出的一门高级编程语言,一种面向Internet的编程语言。

    1.3.1 java分类

  •  javaEE企业版:针对企业

  •  javaSE标准版:针对桌面

  •  javaME小型版:针对电子产品和嵌入式设备

    1.3.2 java的特点

    跨平台:在不同的操作系统上都可以运行,java的程序是基于JVM虚拟机的,所以只要在操作系统上安装一个JVM虚拟机,就可以让java在该系统中运行。

    

第一章  java语言基础_java语言

1.4 java的环境搭建

    1.4.1 什么是JRE、JDK?

    说实话,我用这么久java,搭建环境无数次,还真是第一次弄清他们的含义,以前就知道下呼呼的拿来用就行。


    • JRE(Java Runtime Environment)java运行环境,包括JVM虚拟机和java程序所需的核心类库。如果仅仅是想要运行一个java程序,只需要安装JRE即可。

    • JDK(Java Development Kit)java开发工具包,这是提供给开发人员用的。其中包含了java开发工具,开发的时候一定需要运行,所以也包含了JRE。其中的开发工具包括:编译工具(javac.exe)和打包工具(jar.exe)等

    下载地址:www.oracle.com 现在已经更新到1.8版本了

    1.4.2 环境变量配置

        首先在我的电脑右键——>属性——>高级系统设置——>高级选项卡——>点击环境变量

        在系统变量中找到Path,点击编辑,将安装的JDK的bin文件夹的目录(D:\Study\Java\jdk\bin)放进去。

        第一章  java语言基础_系统软件_02

        问题来了:配置好之后,你今后可能更改JDK的盘符、路径和文件夹名称,每一次的改动都需要修改Path,这样不仅麻烦,还有肯能将Path中系统的环境变了修改了。

        所以对环境变量的配置改进一下:

        新建一个环境变量

        第一章  java语言基础_java语言_03

        然后将Path中的之前配置的D:\Study\Java\jdk\bin改为%JAVA_HOME%\bin,这样以后只需要修改JAVA_HOME中的值就可以了。

    1.4.3 java编码体验:

        先用记事本编写一段代码

          class Hell{
            public static void main(String[] args){
                System.out.println("Hello Java!");
            }
          }

        然后保存,后缀名.java,这个文件称之为源文件。

        编写完后,想要运行它,需要将它转化为机器认识的语言,也就是要将源文件翻译成执行文件,这就用到了javac编译工具。用命令行来完成:

        第一章  java语言基础_windows_04

        这时可以看到文件夹中多出了一个.class文件,这个就是java运行文件。

        第一章  java语言基础_电子产品_05

        编译完后,就要运行一下,这就需要java工具,这时候就会调用虚拟机。用命令行来完成:

        第一章  java语言基础_Internet_06

    1.4.4 常见错误:

       1. javac:找不到文件

           可能路径D:\WorkSpace\java0826错了;

           可能文件名h.java错了。

       2. 找不到活无法加载主类

            可能路径D:\WorkSpace\java0826错了;

            可能类名错了。

    1.4.5 classpath配置

        刚才编译好的java文件,只能在文件的当前目录下运行,但是我想让它在任何目录下都能执行,怎么去做呢?

        将文件夹路径配置到环境变量中就可以,新建变量,名称classpath,值D:\WorkSpace\java0826

    1.4.6 注释

        主要是对程序进行解释说明


    •  单行注释://

    •  多行注释:/**/


    1.5 java语言基础组成


    •  关键字

    •  标识符

    •  注释

    •  常量和变量

    •  运算符

    •  语句

    •  函数

    •  数组

    1.5.1 标识符

     1. 组成:由英文字母、数字、_和$

     2. 规则:

        不能以数字开头

        不能使用关键字

     3. java的命名规范


    • 包名:所有字母都小写。xxyyy

    • 类名:所有单词的首字母大写。XxxYy

    • 变量名和函数名:第一个单词首字母小写,之后的每个单词首字母都大写。xxYyyZz

    • 常量名:所有字母都大写,多个单词用下划线连接。XXX_YY

    1.5.2 常量和变量

    1. 常量:不能改变的数值

      分类:


    •  整数常量

    •  小数常量

    •  布尔类型常量

    •  字符常量

    •  字符串常量

    •  null常量

    2. 变量

    (1)定义:在内存中开辟一块空间,来存储不确定的数据。

    (2)定义变量的格式:

        数据类型    变量名 = 初始值;

        int a = 3;

    (3)数据类型:

    第一章  java语言基础_windows_07

    1.5.3 类型转换

    分类:

    自动类型转换(隐式类型转换)和强制类型转换(显示类型转换)

    1. 自动类型转换:对于数值型低精度自动转换为高精度

        int a = 3;

        double b;

        b = a + 4;

        注:字符型会自动提升为int型。

    2. 强制类型转换

        int a;

        a = (int)3.14;

    1.5.4 转义字符

    通过\来改变后面的字母或符号的含义


    •  \n:换行

    •  \t:制表符

    •  \r:回车。Linux中可以用\r表示回车,在Windows中的回车用\r\n表示。

    •  \d:退格

    •  \\:表示\

    •  \":表示"

    1.5.5 运算符


    •   算术运算符

    •   赋值运算符

    •   比较运算符

    •   逻辑运算符

    •   位运算符

    •   三元运算符

    1. 算术运算符

        包括:+、-、*、/(取商)、%(取余)、++(自加)、--(自减)

        5/2 = 2;

        5%2 = 1;

    2. 赋值运算符:

        包括:=、+=、-=、*=、/=、%=

        例:

        x+=6;——>x=x+6;

        short s=4;

        s = s + 4;//编译出错,两步运算,s + 4算完会提升为int类型。

        s+=4;//成功,一步运算,内部有一个自动转换。

    3. 比较运算符

        包括:==(相等于)、!=(不等于)、<、>、<=、>=

        比较运算符的结果是boolean类型,不是true就是false。

    4. 逻辑运算符

        包括:&(与)、|(或)、^(异或)、!(非)、&&(短路与)、||(短路或)

        (1)&(与)

            true & true = true;

            true & false = false;

            false & true = false;

            false & false = false;

            只要有一个为false,结果就是false;

            只有两个都是true,结果才是true。

         (2) |(或)

            true | true = true;

            true | false = true ;

            false | true = true ;

            false | false = false;

            只要有一个为true,结果就是true

            只有两个都是false,结果才是false

         (3)^(异或)

            true ^ true = false;

            true ^ false = true ;

            false ^ true = true ;

            false ^ false = false;

            两个都一样,结果是false;

            两个都不同,结果是true;

               (4) !(非):

            !true = false;

            !false = true;

               (5) &&(短路与):

             int a = 2;

             a > 3 && a < 6;

           因为a > 3为false,所以后面a < 6不再判断,结果一定为false。

           左边为false时,右边不运算。

         (6)||(短路或)

            原理和&&(短路与)一样;

            当左边为true时,右边不运算。

    5. 位运算符

        包括:<<(左移)、>>(右移)、>>>(无符号右移)、 &(与)、|(或)、^(异或)、~(反码)

        (1)<<(左移)

            3<<2:

            先把3写成二进制0000-0000 0000-0000 0000-0000 0000-0011,然后左移2位

                           00-0000 0000-0000 0000-0000 0000-001100 = 12;

            左移相当于*2的位数次幂

            3<<2 ——> 3 * 4 = 12;

            3<<2 = 12;

        (2)>>(右移)

            6>>2=1;

                   0000-0000 0000-0000 0000-0000 0000-0110

             ——> 000000-0000 0000-0000 0000-0000 0000-01

            右移相当于/2的位数次幂

            6>>2 ——> 6 * 4 = 1;

        (3)>>>(无符号右移)

            >>缺少位由原有数据的最高位的值而定;

            如果最高位为0,右移后用0补齐空位;

            如果最高位是1,右移后用1补齐空位。

            >>>无论最高位是什么,都用0补空位。

        (4)&(与)

            6 & 3:

                110

               &011

               ----

                010 = 2;

            6 & 3 = 2;

            把0当作false,1当作true,进行&运算即可;

        (5)|(或):

            6 | 5:

                110

               |101

               ____

                111 = 7;

            6 | 5 = 7;

        (6)^(异或)

            6 ^ 5:

                110

               ^101

               ____

                011 = 3;

            6 ^ 5 = 3;

            一个数异或同一个数两次,结果还是原数。

        (7)~(反码)

            ~6:

                ~000...110

                ----------

                 111...001 = -7

            ~6 = -7;

    6. 三元运算符

        格式:

        (条件表达式)?表达式1:表达式2;

        如果条件为true,结果是表达式1

        如果条件为false,结果是表达式2

        例:

        int x = 3, y = 4, z;

        z = (x > y)?x : y;

        z存储的是两个数的最大的一个