Java的安装
下载
从官网下载JDK
安装完成后配置环境变量
在控制面板中,点击“高级系统设置”,然后点击“环境变量”
编辑系统变量,如下图
修改环境变量PATH,添加一项
%JAVA_HOME%\bin
我遇到的问题以及思考
当我把Java安装到D盘,总是会安装失败,当我选择安装到C盘就会成功。
由于我C盘的剩余空间确实很珍贵,于是我暴力地把安装到C盘的Java移到D盘。(这是非常菜的做法)
于是,配置完成环境变量后出现了一个现象:当我输入javac,电脑既不报错也不输出,编译时也不报错和产生class文件。
后来跟学长讨论时,他说有可能是我很low地强行移盘时注册表没改,也许javac是根据注册表去找jar的,由于是javac.exe还在,所以输入javac不会报错,但找不到jar,没有catch的异常,就终止了。
安装到D盘失败有可能是因为我原本安装在D盘上的游戏都需要jre,jdk是jre的超集,可能发生了jre的覆盖安装。
用cmd写第一个Java
BIN子目录中的命令文件
- javac
java语言编译器,源文件名必须以java为扩展名,命令中,后缀不能缺省。 - java
java字节码解释器,字节码文件名必须以class为拓展名,命令中,扩展名class必须缺省。 - javap
java字节码分析程序 - javaprof
资源分析工具 - javah
C代码处理工具 - appletviewer
Applet浏览工具 - jdb
java调试工具 - jar
管理jar文件 - javadoc
用于生成API文档
第一步:用记事本编辑源程序。
第二步:保存文件名和类名一致,区分大小写。
第三步:保存,保存时注意保存类型选择:所有文件。
第四步:使用javac命令编译源文件生成.class文件,编译源程序后再目录下生成HelloWorld.class文件。
编译时,目录要转到源代码文件所在的目录。
eclipse的安装
从官网上下载安装包
安装第一个
创建第一个Project
选择workspace
点击“Create a new Java project”
将project命名为“test_1”。
创建成功后,如图:
在test_1项目下创建一个类
创建类c2_2,完成输入学号,按逆序存储后输出:
开始调试
在第7行打了断点,变量表如下变化:
继续执行:
继续执行:
在控制台输入字符串,继续执行:
翻转后的字符,t:
输出结果:
java语言基础
控制台输入/输出
用Scanner类实现数据输入(仅JDK1.50或更高级版本支持)
用法:
import java.util.Scanner;
Sanner in = new Scanner(System,in);
String s=in.next();//输入1个字符串(空格/Tab/换行分隔)
String t=in.nextLine();//输入1个字符串(换行分隔)
int a=in.nextInt();//输入1个整数
float b=in.nextFloat();//输入1给单精度实数
double c=in.nextDouble();//输入1个双精度实数
数据输出
用法:
import java.io.*;
System.out.print(字符串);//输出串不换行
System.out.println(字符串);//输出串并换行
System.out.println();//输出换行
格式化输出方法*:(仅JDK1.50或者更高版本支持)
System.out.printf(格式串,表达式列表);
//格式符语法:%[参数索引$][标志][宽度][.精度]格式符
- 格式符:
d: 十进制整数
o: 八进制整数
x: 十六进制整数
f: 十进制小数格式浮点数
e: 十进制指数格式浮点数
g: 自动格式浮点数
a:十六进制小数
s: 字符串
c: 字符
b: 布尔值
h: 散列码
tx: 日期时间(x为3~7整数)
%: 输出%
- 宽度精度 同C语言
- 标志
+: 强制输出正数的正号
-: 输出域中向左对齐
0: 不足域宽用0占位
(: 正数不变,负数求绝对值用括号括起来
,: 千分位分隔符
: 如 : 如%1 :如d%1$x表示用十和十六进制输出第1个参数
<: 用前面一个参数继续输出
例1:int a=1, b=2,c=3;
System.out.printf("a=%d,b=%d\nc=%4d",a,b,c);
输出为:a=1,b=2
c=3
例2:int a=255,b=10;
System.out.printf("%1$d%1$x,%2$d",a,b);
输出为:255ff,10
例3:float x=0.256f;
System.out.printf("%.2f,%<e",x);
输出为:0.26,2.560000e-01
字符串
字符串的创建
String s;
String s=new String();
String s=“abcd”;
String s=new String("abcd ");
字符串连接运算符+
String s;
s="abc"+"xyz";
int a=10;
System.out.println("a="+a);
/*字符串与其它类型变量相加其它类型自动转换为字符串 */
字符串类中String中常用公有函数
int length() //求串长
int compareTo(String t) // 比较两串大小
本串<串t, 返回负数
本串>串t, 返回正数
本串=串t, 返回0
String toLowerCase() //本串大写英文变成小写
String toUpperCase() //本串小写英文变成大写
字符与子串查找
int indexOf(int ch) //字符ch第一次出现的位置号
int indexOf(String SubStr)
int indexOf(int ch, int fromIndex)
int idexOf(String SubStr, int fromIndex)
int lastIndexOf(int ch) //字符ch最后一次出现的位置
int lastIndexOf(String SubStr)
int lastIndexOf(int ch, int fromIndex)
int lastIndexOf(String SubStr, int fromIndex)
数值转化为串
syntax: 数值类型类名.toString(该数值表达式);
例:
double a=-100.575; int b=123;
String s=Double.toString(a);
String t=Integer.toString(b);
System.out.println("a="+Double.toString(a+1));
串转化为数值
syntax: 数据类型类名.parse首字母大写类型名(串表达式);
String s= "258";
int a=Integer.parseInt(s);
//VJ++6.0不支持parse函数
运算符
算术运算符:+ - * / % ++ - -
关系运算符:> < >= <= = = != (布尔结果)
逻辑运算符:! && || & | ^ (布尔结果)
位运算符:>> << >>> & | ^ ~
赋值与自反赋值运算符:= += -= *= /= %= &= |= ^= >>= <<= >>>=
类型强制转换运算符: (类型名)
实例运算符:instanceof
内存分配运算符:new
条件运算符:式1?式2:式3
说明: (1) 逻辑运算符中, && 与 & 的区别:&&具有短路功能,即(逻辑式1)&& (逻辑式2)
若逻辑式1结果为false, 则不再计算逻辑式2; 若使用&运算符,则逻辑式1和逻辑式2均要计算。
(2) 逻辑运算符中, || 与 | 的区别:||具有短路功能,即(逻辑式1)|| (逻辑式2)
若逻辑式1结果为true, 则不再计算逻辑式2;若使用|运算符,则逻辑式1和逻辑式2均要计算。
一维数组
定义数组名标识符
syntax: T 数组名[]; //T表示数据类型名
T []数组名;
例: int a[]; double b[];
创建数组空间与元素值的初始化
方法1: 定义数组名标识符时给出数组所有元素。
例: float a[]={0.0f, 0.1f, 0.2f, 0.3f };// 数组a有4个元素
(2) 方法2: 使用new运算符
定义数组名时直接使用new
syntax: T 数组名[]=new T[元素个数];
float a[]=new float[10]; // 数组a有10个元素
先定义数组名再使用new
syntax: 数组名=new T[元素个数];
例: float a[]; a=new float[10]; // 数组a有10个元素
已分配空间的数组可以用new重新分配空间
例: double a[]=new double[5]; // 数组a有5个元素
…
a=new double[10]; // 数组a重新分配10个元素
一维数组元素的访问
(1) 下标表达式同C语言(从0开始)
(2) 下标超界产生一个异常
(3) 一维数组长度(元素个数)表达式
syntax: 一维数组名.length
例:int a[]=new int[5];
int n=a.length; // 变量n的值为5
二维数组
定义二维数组并创建数组存储空间
例: syntax1: int a[][]; a=new int[3][4];
syntax2: int a[][]=new int[3][4];
syntax3: int a[][]={{1,2,3},{4,5,6},{7,8,9}};
syntax4: 各行单独分配维度大小
int line_num=4;
int a[][]=new int[line_num][];
a[0]=new int[1];
a[1]=new int[2];
a[2]=new int[3];
a[3]=new int[4];
二维数组元素的访问: 同C语言