文章目录
JAVA入门
JAVA的特点
Java具有面向对象、与平台无关、安全、稳定和多线程,这是因为JAVA的运行环境由JAVA虚拟机、类库以及一些核心文件组成。JAVA虚拟机的核心是所谓的字节码指令(不是机器指令),它将字节码翻译成本地计算机的机器码,并将机器码交给本地的操作系统运行
平台由操作系统(OS)和处理器(CPU)构成
JAVA中没有指针的概念
JAVA的特点之一就是内置对多线程的支持
ftp://10.199.227.254
JAVA程序的基本组成单元就是类,它可以在分布环境中动态的维护程序及类库
JAVA的安装
1、安装JDK
JAVA SE 也就是JDK8.0
建议安装时都选默认路径
值得注意的是安装JDK过程中还有一个JAVA运行环境的安装,JRE,建议也是默认
2、系统环境的设置
设置系统变量JAVA_HOME
系统环境Path的设置
由于以及设置了系统环境变量,所以这一步直接弄一个
%JAVA_HOME%\bin(%系统变量%是该系统变量的全部取值)
3系统环境classpath的设置
不必要
JAVA程序的开发步骤
1编写源文件
2编译源文件
3运行程序
简单的Java应用程序
- 编写源文件 如果源文件中有许多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须与这个名字完全相同,扩展名.java;如果没有public类,那么只要与某个类相同就可以了
特别注意,文件名区分大小写
保存时,类型为所有文件,编码为ANSI
如果保存文件时,系统自动加了txt(这是不允许的),那么可以用双引号括起来 - 保存文件后可以用JAVA编译器运行
命令行 - 每个JAVA 必须又一个类含有public static void main(String args[])方法,称这个类是应用程序的主类
JAVA反编译
不涉及
小结:1、JAVA源文件由若书写形式互相独立的类组成。一个源文件必须由public
2.JAVA源文件扩展名为.java;字节码扩展名为.class
3JDK提供的编译器是javac.exe
反编译器为javap.exe;
解释器为java.exe
public class Person {
void speakHello() {
System.out.print("您好,很高兴认识您");
System.out.println("nice to meet you");
}
}
class Xiti {
public static void main(String args[]) {
Person zhang = new Person();
zhang.speakHello();
}
}
这个的文件名字是Person.java
只有一个字节码文件为Person.class
基本数据类型与数组
标识符与关键字
定义:用来标识类名、变量名、方法名、类型名、数组名及文件名的有效字符序列称为标识符
- 标识符由字母、下划线、美元符号和数字组成,长度不受限制
- 第一个字符不可以是数字字符
- 不能是关键字
- 不能是true false null
- 区分大小写
JAVA语言使用Unicode标准字符集 最多识别65 356个字符
关键字就是具有特定用途或者被赋予了特定意义的一些单词,不可以把关键词作为标识符来使用
PS 关键词全部小写
基本数据类型
逻辑类型 boolean
常量 true false
整数类型
int 4个字节32位内存
byte 1个字节8位内存 范围比较小 -128~127
short 2个字节16位内存
long 8个字节64位内存常用后缀L表示
PS JAVA中不存在无符号类型 没有 unsigned int m;
字符类型
char类型 2个字节16位
用单引号括起来
有些字符不能通过键盘输入到字符串或者程序中,这个时候就需要使用转义字符常量,例如:\n,\b,\t,’,",\
直接例子:”我喜欢双引号\"“才是正确的
想要知道一个字符在Unicode中的顺序,可以用(int)‘A’,如果要知道在一个数字,则用(char)65
浮点类型
float单精度 常量后必须有f 8位有效数字 4个字节的内存,占32位
double 双精度 常量后面可以有d或D,也可以省略 8个字节,64位内存 16位有效数字
float x=0.4f;
double y=0.4;
那么实际在x中的数据为0.40000000059604645;y中为0.40000000000000,因此y中小于x
类型转换运算
当把级别低的变量的值赋给高级别变量时,自动转换
反过来,必须使用类型转换运算
int x=(int)34.89;
最后x=34;
输入、输出数据
输入基本型数据
Scanner reader = new Scanner(System.in);
然后使用nextBoolean(),nextByte(),nextShort(),nextLong(),nextInt()
值得注意的是首字符大写
import java.util.Scanner;
public class Example2_3 {
public static void main (String args[ ]){
System.out.println("请输入若干个数,每输入一个数回车确认");
System.out.println("最后输入数字0结束输入操作");
Scanner reader=new Scanner(System.in);
double sum=0;
double x = reader.nextDouble();
while(x!=0){
sum=sum+x;
x=reader.nextDouble();
}
System.out.println("sum="+sum);
}
}
输出基本型数据
System.out.println()
或System.out.print()
可输出串值,表达式的值,两者的区别是前者输出后换行
可以使用并置符号+将变量,表达式或一个常数值与一个字符串并置一起输出
System,out.println(m+"个数的和为"+sum)
用System.out.println()
与System.out.print()
时不可以出现回车
但是
System.out.println(“您好,”+
“很高兴认识你”);
是正确的
另外,还有一种
System.out.printf("格式控制符",表达式1,表达式2)
%d int
%c char
%f float double
%s 字符串
%md 输出的int占据m列
%m.nf:输出的float占m列,保留n位小数
数组
声明数组
int a[][] 或者 int [][] a
注意 int [ ] a,b[ ]是声明了一个int型一维数组a和一个二维数组b
JAVA不允许在声明数组中的方括号指定数组元素的个数
如果声明了 int a[22]是错误的
为数组分配元素
数组名= new 数组元素的类型【数组元素的个数】;
例如
float boy[];
boy=new float[4];
//可以和在一起
float boy[]=new float[4];
对于二维数组,构成它的一维数组不必有相同的长度
int a[][]=new int [3][];
a[0]=new int[6];
a[1]=new int[8];
对于JAVA,它允许使用int型变量的值指定数组的元素个数
int size=30;
double number[]=new double[size];
length的使用
一维数组,数组名.length—数组元素个数
二维数组 数组名.length----一维数组的个数
数组的初始化
默认为0
float boy[]={,};一步完成
对于二维数组
int a[][]={{},{}}…
数组的引用
数组属于引用型变量,因此两个相同类型的数组如果又相同的引用,他们就完全相同
int a[]={1,2,3},b[]={4,5};
a=b
public class Example2_4 {
public static void main(String args[]) {
int a[]={1,2,3,4};
int b[]={100,200,300};
System.out.println("数组a的元素个数="+a.length);
System.out.println("数组b的元素个数="+b.length);
System.out.println("数组a的引用="+a);
System.out.println("数组b的引用="+b);
a=b;
System.out.println("数组a的元素个数="+a.length);
System.out.println("数组b的元素个数="+b.length);
System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);
System.out.print("b[0]="+b[0]+",b[1]="+b[1]+",b[2]="+b[2]);
}
}
//普通的println如果要字符串与其它混用,需要加+
char a[]={'中','国','科','大'};
System.out.println(a);
//结果是中国科大
小结:char型在Unicode表中的位置范围是0~65535;
println的输出必须用+进行连接
常见错误
ArrayIndexOutOfBoundsException-------数组越界
运算符、表达式与语句
算术混合运算的精度
精度由低到高的排序
byte short char int long float double
混合运算精度往高的地方取
JAVA允许把不超出byte short char的取值范围的算术表达式赋值给byte/short。
!的优先级特别高,为2
&&为11
||为12
等于号优先级为14
位运算符
| 1|1=1 1|0=1
& 0&1=0
异或
位非
~1=0;
instanceof运算符
左面操作元是一个对象,右面是一个类。当左面的对象是右面的类或子类的创建对象时,运算结果位true
for语句与数组
for(声明循环遍历变量:数组的名字){}
注意必须是声明,不可以用之前已经声明过的数字