核心概念:JVM、JDK、JRE、
Java :1995年诞生,sun公司,
java SE 基础核心,Java EE ,Java ME
开源,跨平台(不同的系统平台都可以运行---虚拟机的支持)(可移植性)
JVM :JAVA Virtual Machine
源代码(.java)--->编译器(字解码文件)(.class)---->解释器----->显示执行
JDK(Java Development Kit) :开发工具包
JRE (Java Runtime Environment) :运行环境
javac HelloWord.java(编译,生成 .class文件)
Java HelloWord (运行)
1.安装JDK,
2.配置环境变量
1.JAVA_HOOME--->配置JDK安装路径,
2.PATH--->配置JDK命令文件的位置,
3.CLASSPATH--->配置类库的位置
标识符:就是用于给 Java 程序中变量、类、方法等命名的符号。
使用标识符时,需要遵守几条规则:
1.标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴
2.标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3.标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!
4.标识符的命名最好能反映出其作用,做到见名知意。
数据类型:基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址
String 是一种常见的引用数据类型
引用数据类型(类,接口,数组)
基本数据类型
1.数值型
整数类型(byte--1,short,int--4,long)
浮点型(float---4,double---8)
2.字符型(char---2)
3.布尔值(boolean---1)
Java中变量的使用规则:
1、Java 中的变量需要先声明后使用
2、变量使用时,可以声明变量的同时进行初始化
3、变量中每次只能赋一个值,但可以修改多次
4、main 方法中定义的变量必须先赋值,然后才能输出
5.变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等
常量名:
程序运行过程中不允许改变,一般使用大写字符,
语法:final 常量名 = 值;
Java 语言中常用的运算符可分为如下几种:
算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符(三元运算符)
Java 运算符优先级:
1. ()
2. ! +(正) -(负) ++ --
3. * / %
4. +(加) -(减)
5. < <= > >=
6. == !=
7. ^
8. &&
9. ||
10. ?:
11. = += -= *= /= %=
获取输入的值:
import java.util.Scanner;
Scanner input = new Scanner(Systrm.in);
数组:
1、 声明数组
语法: 数据类型[ ] 数组名;
数据类型 数组名[ ];
int[] scores=new int[5];
int[] scores={1,2,3,4,5};
int[] scores=new int[]{1,2,3,4,5};
Arrays类:
是 Java 中提供的一个工具类,在 java.util 包中。
按升序排列:Arrays.sort(数组名);
Arrays.toString(数组名); 数组-->字符串(逗号间隔)
二维数组:
int[][] num=new int[3][4];
String[][] names={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}};
static关键字的特点
* A:static关键字的特点
* a:随着类的加载而加载
* b:优先于对象存在
* c:被类的所有对象共享
* 举例:咱们班级的学生应该共用同一个班级编号。
* 其实这个特点也是在告诉我们什么时候使用静态?
* 如果某个成员变量是被所有对象共享的,那么它就应该定义为静态的。
* 举例:
* 饮水机(用静态修饰)
* 水杯(不能用静态修饰)
* 共性用静态,特性用非静态
* d:可以通过类名调用
* 其实它本身也可以通过对象名调用。
* 推荐使用类名调用。
* 静态修饰的内容一般我们称其为:与类相关的,类成员
static的注意事项
* a:在静态方法中是没有this关键字的
* 如何理解呢?
* 静态是随着类的加载而加载,this是随着对象的创建而存在。
* 静态比对象先存在。
* b:静态方法只能访问静态的成员变量和静态的成员方法
* 静态方法:
* 成员变量:只能访问静态变量
* 成员方法:只能访问静态成员方法
* 非静态方法:
* 成员变量:可以是静态的,也可以是非静态的
* 成员方法:可是是静态的成员方法,也可以是非静态的成员方法。
* 简单记:
* 静态只能访问静态。
static 四种用法
* static是java中非常重要的一个关键字,而且它的用法也很丰富,主要有四种用法:
* 用来修饰成员变量,将其变为类的成员,从而实现所有对象对于该成员的共享;
* 用来修饰成员方法,将其变为类方法,可以直接使用“类名.方法名”的方式调用,常用于工具类;
* 静态块用法,将多个类成员放在一起初始化,使得程序更加规整,其中理解对象的初始化过程非常关键;
* 静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用类方法,更加方便。
静态变量和成员变量的区别
* 静态变量也叫类变量 成员变量也叫对象变量
* A:所属不同
* 静态变量属于类,所以也称为为类变量
* 成员变量属于对象,所以也称为实例变量(对象变量)
* B:内存中位置不同
* 静态变量存储于方法区的静态区
* 成员变量存储于堆内存
* C:内存出现时间不同
* 静态变量随着类的加载而加载,随着类的消失而消失
* 成员变量随着对象的创建而存在,随着对象的消失而消失
* D:调用不同
* 静态变量可以通过类名调用,也可以通过对象调用
* 成员变量只能通过对象名调用
代码块:
在Java中,使用{}括起来的代码被称为代码块。
* a:局部代码块
* 在方法中出现;限定变量生命周期,及早释放,提高内存利用率
* b:构造代码块 (初始化块)
*在类中方法外出现;多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行
* c:静态代码块
* 在类中方法外出现,并加上static修饰;用于给类进行初始化,在加载的时候就执行,并且只执行一次。
* 一般用于加载驱动
* 随着类的加载而加载,优先于main方法执行