1.1什么是java语言?
- java是一门高级的面向对象的程序设计语言,使用java语言编写的程序是跨平台的(依赖于JVM虚拟机)。
- java语言编写的程序既是编译型的,又是解释型的。
java程序的编译和运行过程
程序代码经过编译之后转换为一种称为java字节码的中间语言,java虚拟机(JVM)将对字节码进行解释和运行。编译只进行一次,而解释在每次运行程序时都会进行。编译后的字节码采用经过JVM优化过得机器码进行保存,然后在计算机上进行运行。
java API文档:API是程序编程接口,主要包括类的继承结构,成员变量,成员方法,构造方法,静态成员的描述信息和详细说明等内容。
1.2 java语言的特性
- 1 面向对象:
面向对象时java语言的基础,也是java语言的重要特性。java本身就是一种纯面向对象的程序设计语言。java提倡万物皆对象,语言中不能在类外面定义单独的数据和函数,java语言的最外部的数据类型是对象,所有元素都要通过类和对象来访问。 - 2.分布性:
java的分布特性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,数据分布是将数据分别存放在多个不同的主机上。java可以凭借URL对象访问网络对象,访问方式与访问本地系统相同。 - 3.多线程:
多线程机制能够使应用程序在同一时间并行执行多项任务,而且想用的同步机制可以保证不同线程能够正确地共享数据保证线程安全,使用多线程,可以带来更好的交互能力和实时行为。 - 4.解释型,高性能,动态,可移植性等
“包资源管理器”视图
2.1 java主类结构
- java语言是面向对象的程序设计语言。java程序的基本组成单位是类,类体中有包含属性与方法两部分。每一个应用程序都必须包含一个main方法,含有main()方法的类成为主类。main()方法是程序开始执行的位置。
- 文件名必须和类名同名,还要注意大小写,java是严格区分大小写的。
声明成员变量和局部变量
通常将类的属性称为类的全局变量/成员变量,将方法中的属性称为局部变量。全局变量声明在类体中,局部变量声明在方法体中。全局变量和局部变量都有自己的应用范围。
2.2 八大基本数据类型
2.2.1整数类型
整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。
注:以上四种类型变量,要注意变量的取值范围,超出相应的范围就会出错。对于long型的值,若赋给的值大于int型的最大值或者小于int型的最小值,则需要在数字后面加上L或者l,表示该数值为长整数,如:long num = 214748650L。
2.2.2 浮点类型
浮点类型表示有小数部分的数字。分为单精度浮点类型(float)和双精度浮点类型(double)
注:在默认情况下,小数都被看做是double类型。**如果使用float类型小数,需要在后面加上F或者f。**也可以使用d或者D后缀表示这是一个double类型。不加d也不会出错,但是声明float类型变量时,如果不加f系统就会默认为double类型,就会出错。
float f1 = 13.33F
double d1 = 4567.88d//不加d不会出错
double d2 = 4567.88
2.2.3 字符类型
1.char类型
- 字符类型(char) 用于存储单个字符,在定义字符类型变量时,要用单引号表示,双引号的话表示一个字符串。
‘S’ —>字符类型
“S”---->字符串类型,虽然只有一个字符,但是由于是双引号,仍然表示字符串。 - 最小值是’\u0000’(即为0);
- 最大值是’\uffff’(即为65,535);
- java语言可以把字符作为整数对待,由于unicode 编码采用无符号编码,可以存储65536个字符,所以java语言中的字符几乎可以处理所有国家的文字若想得到一个0-65536之间的数代表的unicode 表中相应对应位置上的字符,就必须进行char类型转换。
2.转义字符
- \r 回车
- \n 换行
- \b 退格
- \f 换页
- 转义字符赋值给字符常量时,需要跟字符常量值一样使用’ ’
char c1 = '\r'
2.2.4 布尔类型
布尔类型又称为逻辑类型,常在流程控制中,作为判断条件。
2.3 变量与常量
2.3.1 标识符
可以用来表示类名,变量名,方法名,文件名等
- java语言规定,标识符可以是字母数字下划线(_)和美元符号($)组成,并且第一个字符不能是数字,标识符不能是java中保留的关键字
2.3.2 声明变量
定义变量就是告诉编译器这个变量的数据类型,这样编译器才能在内存中分配相应的内存空间给它,以及它能存放什么样的数据。在程序运行过程中这个空间里面的值是变化的,这个内存空间就是变量。内存空间的值就是变量值。在声明这个变量时,可以是没有值的,也可以直接赋给初值。
2.3.3 声明常量
在程序运行过程中一直不会被改变的量称为常量,也叫final变量。常量在整个程序中只会被赋值一次。在为所有对象共享值时,常量是非常有用的。
final 数据类型 常量名 = [值]//常量名习惯上用大写,但是并不要求
当定义的final变量属于“成员变量”时,必须在定义时就设置它的初值,否则就会发生编译错误。
public class day18 {
static final double PI = 3.14;//当常量值为成员变量时,必须在定义时就赋初值
static int age = 23;
public static void main(String[] args){
final int num;//非成员变量,可不赋初值
num = 1234;
age = 25;//修改变量
//num = 1235; 错误代码,num是常量,只能被赋值一次
System.out.println(PI);//3.14
System.out.println(num);//1234
System.out.println(age);//被修改,25
}
}
2.3.4 变量的有效范围
1.成员变量/全局变量
在类体重定义的变量被称为成员变量,成员变量在整个类中都有效。成员变量又分为:实例变量/静态变量
class test{
int x = 45;//实例变量
static int y = 8;//静态变量
}
静态变量可以跨类,甚至可以在整个程序中运行。对于静态变量,除了能够在定义他的类内存取,还能直接以“类名.静态变量”的方式在其他类中使用。
2.局部变量
在类的方法体中声明的变量称为局部变量,局部变量只在当前代码块中有效。
- 局部变量的生命周期取决于方法,当方法被调用的时候,java虚拟机为方法中的局部变量分配内存空间,当该方法调用结束后,则会释放该方法中局部变量占用的内存空间,局部变量也会被销毁。
- 当局部变量名称和全局变量名称相同时,此时成员变量会被隐藏,即这个成员变量在这个方法中会暂时失效。
public class day18_1 {
static int num = 3;//成员变量num
public static void main(String[] args){
int num = 7;//局部变量num
System.out.println(num);//输出为7,成员变量暂时失效
}
}