Java程序设计—孙鑫java无难事教程Lesson1《java技术与应用》 

1.Java语言特性
 简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态语言的。
2.Java跨平台原理 
 
 原理介绍如下图所示:
 图1:

 图2:

3.java环境熟悉
 (1)path环境变量
 启动cmd.exe后,键入set path查看路径,如下:
 C:\Users\juber>set path
 Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32
 \WindowsPowerShell\v1.0\;C:\Program Files\Common Files\Thunder Network\KanKan\Co
 decs;C:\Program Files\Common Files\Compuware;C:\Program Files\Java\jdk1.7.0_03\b
 in
 PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
 配置环境变量如下图所示:

 (2)jar命令
 a.打包文件
 F:\java\JavaLesson\Lesson1>jar cvf Lesson1.jar Hello.class Welcome.class
 //**********************************************
 b.整个目录打包
 F:\java\JavaLesson>jar cvf Lesson1.jar Lesson1/
 已添加清单
 正在添加: Lesson1/(输入 = 0) (输出 = 0)(存储了 0%)
 正在添加: Lesson1/Hello.class(输入 = 416) (输出 = 286)(压缩了 31%)
 正在添加: Lesson1/Hello.java(输入 = 169) (输出 = 127)(压缩了 24%)
 ...
 (3)public类名和文件名相同
4.Java的8种数据类型
 byte b;//1个字节有符号整数
 short s;//2字节有符号整型
 int   i;//4字节有符号整型
 long   l;//8字节有符号整型
 char   c;//2字节无符号整型65535种字符 采用UNICODE编码
 float  f;//4字节浮点数
 double d;//8字节浮点数
 boolean bool=true;//两种值false和true
5.Java数据类型及语法熟悉
 //**********************************************
 //测试代码如下
 
 
     [java]      view plain     copy     print     ?    
   
1. public class
2. {  
3. public static void
4.     {  
5. //System.out.println("Hello World!"); 
6. /*
7.         byte b;//1个字节有符号整数
8.         b=3;
9.         b=(byte)(b*3); //ok
10.         //b=b*3;//error int to byte possible lose of data
11.         System.out.println(b);
12.         */
13. /*
14.         short s;//2字节有符号整型
15.         int   i;//4字节有符号整型
16.         long   l;//8字节有符号整型
17.         char   c;//2字节无符号整型65535种字符 采用UNICODE编码
18.         */
19. /*
20.         float  f;//4字节浮点数
21.         f=1.3f;//ok
22.         //f=1.3;//error possible lose of data
23.         System.out.println(f);
24.         */
25. /*
26.         double d;//8字节浮点数
27.         boolean bool=true;//ok
28.         //boolean bool=1 ;//error 错误  不能与整型进行相互转换
29.         System.out.println(bool);
30.         */
31. /*
32.         //error  
33.         if(1)
34.         {
35.         
36.         }
37.         //ok
38.         if(true)
39.         {
40.         }
41.         */
42. /*
43.         //数组定义
44.         //int num[3];//error 定义时不能分配空间
45.         //int num1[];
46.         //num1=new int[3];//ok 定以后分配
47.         //定义时分配
48.         //int[] num2=new int[]{1,2,3};//ok
49.         //int[] num2=new int[3]{1,2,3};//error 加上大小错误
50.         //简单的初始化形式
51.         int[] num3=new int[3];
52.         num3[0]=1;
53.         num3[1]=2;
54.         num3[2]=3;
55.         */
56. /*
57.         //二维数组
58.         int[][] num4;
59.         num4=new int[3][4];
60.         num4[0][1]=2;
61.         num4[0][2]=3;
62.         */
63. /*
64.         //不规则数组
65.         int[][] num5;
66.         num5=new int[3][];
67.         num5[0]=new int[5];
68.         num5[1]=new int[3];
69.         num5[2]=new int[2];
70.         num5[0][4]=45;
71.         num5[1][2]=34;
72.         num5[2][1]=21;
73.         System.out.println(num5[0][4]);
74.         System.out.println(num5[1][2]);
75.         System.out.println(num5[2][1]);
76.         //System.out.println(num5[2][2]);//error 数组越界
77.         */
78.           
79. //二维数组初始化 
80. //int[][] num6=new int[][]{1,2,3,4,5,6};//error 
81. //int[][] num6=new int[][]{{1,2,3},{4,5,6}};//ok 
82. //int[][] num6=new int[2][3]{{1,2,3},{4,5,6}};//error 
83. //int[][] num6={{1,2,3},{4,5,6}};//ok 
84. //*/ 
85.         /*  
86. //不规则数组初始化 
87. int[][] num7={{1,2,3},{4,5},{6}};  
88. 0][2]);  
89. 1][1]);  
90. 2][0]);  
91. //System.out.println(num7[2][2]);//error 数组越界 
92.         */  
93. /*
94.         //++操作依赖于具体语言
95.         //++测试1
96.         int i=3;
97.         //System.out.println(i++);//result 3
98.         //System.out.println(++i);//result 4
99.         int count=(i++)+(i++)+(i++);
100.         System.out.println(i);//result 6
101.         System.out.println(count);// result 12
102.         //++测试2
103.         int j=3;
104.         int count2=(++j)+(++j)+(++j);
105.         System.out.println(j);//result 6
106.         System.out.println(count2);// result 15
107.         */
108.     }  
109. }  
  
public class   Hello
{
    public static void main(String[] args)
    {
        //System.out.println("Hello World!");
        /*
        byte b;//1个字节有符号整数
        b=3;
        b=(byte)(b*3); //ok
        //b=b*3;//error int to byte possible lose of data
        System.out.println(b);
        */
        /*
        short s;//2字节有符号整型
        int   i;//4字节有符号整型
        long   l;//8字节有符号整型
        char   c;//2字节无符号整型65535种字符 采用UNICODE编码
        */
        /*
        float  f;//4字节浮点数
        f=1.3f;//ok
        //f=1.3;//error possible lose of data
        System.out.println(f);
        */
        /*
        double d;//8字节浮点数
        boolean bool=true;//ok
        //boolean bool=1 ;//error 错误  不能与整型进行相互转换
        System.out.println(bool);
        */
        /*
        //error  
        if(1)
        {
        
        }
        //ok
        if(true)
        {
        }
        */
        /*
        //数组定义
        //int num[3];//error 定义时不能分配空间
        //int num1[];
        //num1=new int[3];//ok 定以后分配
        //定义时分配
        //int[] num2=new int[]{1,2,3};//ok
        //int[] num2=new int[3]{1,2,3};//error 加上大小错误
        //简单的初始化形式
        int[] num3=new int[3];
        num3[0]=1;
        num3[1]=2;
        num3[2]=3;
        */
        /*
        //二维数组
        int[][] num4;
        num4=new int[3][4];
        num4[0][1]=2;
        num4[0][2]=3;
        */
        /*
        //不规则数组
        int[][] num5;
        num5=new int[3][];
        num5[0]=new int[5];
        num5[1]=new int[3];
        num5[2]=new int[2];
        num5[0][4]=45;
        num5[1][2]=34;
        num5[2][1]=21;
        System.out.println(num5[0][4]);
        System.out.println(num5[1][2]);
        System.out.println(num5[2][1]);
        //System.out.println(num5[2][2]);//error 数组越界
        */
        
        //二维数组初始化
        //int[][] num6=new int[][]{1,2,3,4,5,6};//error
        //int[][] num6=new int[][]{{1,2,3},{4,5,6}};//ok
        //int[][] num6=new int[2][3]{{1,2,3},{4,5,6}};//error
        //int[][] num6={{1,2,3},{4,5,6}};//ok
        //*/
        /*
        //不规则数组初始化
        int[][] num7={{1,2,3},{4,5},{6}};
        System.out.println(num7[0][2]);
        System.out.println(num7[1][1]);
        System.out.println(num7[2][0]);
        //System.out.println(num7[2][2]);//error 数组越界
        */
        /*
        //++操作依赖于具体语言
        //++测试1
        int i=3;
        //System.out.println(i++);//result 3
        //System.out.println(++i);//result 4
        int count=(i++)+(i++)+(i++);
        System.out.println(i);//result 6
        System.out.println(count);// result 12
        //++测试2
        int j=3;
        int count2=(++j)+(++j)+(++j);
        System.out.println(j);//result 6
        System.out.println(count2);// result 15
        */
    }
}//相应的错误类型及结果如下所示:  
 //**********************************************  
 (1)  缺少main函数 
 
 //**********************************************  
 错误: 在类 Hello 中找不到主方法, 请将主方法定义为:  
   public static void main(String[] args)  
 (2)  设置了错误的类路径 
 
 //**********************************************  
 F:\java\JavaLesson\Lesson1>set classpath=e:\  
 F:\java\JavaLesson\Lesson1>java Hello  
 错误: 找不到或无法加载主类 Hello  
 (3)  类型不匹配 
 
 //**********************************************  
 Hello.java:8: 错误: 可能损失精度  
                 b=b*3;  
                    ^  
   需要: byte  
   找到:    int  
 1 个错误  
 (4)  精度不匹配 
 
 //**********************************************  
 Hello.java:19: 错误: 可能损失精度  
                 f=1.3;  
                   ^  
   需要: float  
   找到:    double  
 1 个错误  
 (5)  布尔类型赋值不兼容 
 
 //**********************************************  
 Hello.java:24: 错误: 不兼容的类型  
         boolean bool=1;  
                      ^  
   需要: boolean  
   找到:    int  
 1 个错误  
 (6)  布尔表达式中类型不兼容 
 
 //**********************************************  
 if(1)  
 {      
 }  
 Hello.java:28: 错误: 不兼容的类型  
         if(1)  
            ^  
   需要: boolean  
   找到:    int  
 1 个错误  
 (7)  数组定义错误1   int num[3];//定义形式不能类似c语言 
 
 //**********************************************  
 Hello.java:35: 错误: 需要']'  
         int num[3];//定义时不能分配空间  
                 ^  
 Hello.java:35: 错误: 非法的表达式开始  
         int num[3];//定义时不能分配空间  
                  ^  
 2 个错误  
 (8)  数组定义错误2 加上定义列表时无需指定大小 
 
 Hello.java:39: 错误: 需要';'  
                 int num2[]=new int[3]{1,2,3};//加上大小错误  
                                      ^  
 1 个错误  
 (9)数组定义错误3  越界错误  
 //**********************************************  
 45  
 34  
 21  
 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2  
         at Hello.main(Hello.java:71)  
 (10)  数组定义错误4  数组元素初始化错误 
 
 //**********************************************  
 Hello.java:79: 错误: 不兼容的类型  
                 int[][] num6=new int[][]{1,2,3,4,5,6};//error  
                                          ^  
   需要: int[]  
   找到:    int  
 Hello.java:79: 错误: 不兼容的类型  
                 int[][] num6=new int[][]{1,2,3,4,5,6};//error  
                                            ^  
 ...  
 (11)  数组定义错误5  数组元素初始化错误 不能指定数组大小 
 
 //**********************************************  
 Hello.java:81: 错误: 需要';'  
         int[][] num6=new int[2][3]{{1,2,3},{4,5,6}};//error  
                                   ^  
 Hello.java:81: 错误: 不是语句  
         int[][] num6=new int[2][3]{{1,2,3},{4,5,6}};//error  
 ...