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数据类型及语法熟悉
//**********************************************
//测试代码如下
//**********************************************
(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
...
简单的、面向对象的、健壮的、安全的、解释的、与平台无关的、多线程的、动态语言的。
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数据类型及语法熟悉
//**********************************************
//测试代码如下
- 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
- */
- }
- }
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
...