初识Java
初始Java
JDK、JRE和JVM
Java的源文件名和类名必须保持一致,并且类名一定要大写
类名的访问修饰符一般是大写.
1、javac命令把java源文件编译成.class文件(字节码文件),这个期间叫做编译期间
有可能引发编译错误,导致不能生成class文件,就是我们常见的爆红
2、java命令运行这个.class文件,输出运行结果,这个期间叫做运行期间
有可能引发运行错误
JVM:Java运行虚拟机
用于执行字节码文件的虚拟计算机,是Java实现跨平台的最核心的部分.
JRE:Java运行所需的环境
包含了Java虚拟机、库函数、运行Java应用程序所必须的文件、只能运行class而没有编译的功能。
JDK:包含了Java开发、运行、编译的环境和类库,以及源码包
bin/存放了二进制文件的目录,最主要的是编译器,最主要的是编译器(javac.exe)
include/Java和JVM交互用的头文件
lib/存放类库文件
JRE/Java运行环境
JDK包含了JRE,JRE包含了JVM
参考:JDK、JRE和JVM的作用以及关系
//第一种注释方法:行注释 /* 第二种注释方法:多行注释 */ /** * 第三种注释方法:文本注释 */ public class Code01 { //Java的程序主入口是从main方法开始运行的 public static void main(String[] args) {
//Java是一种强类型语言、定义变量时,必须声明其变量类型
}
}
Java数据类型
数据类型分为基本数据类型和引用类型
基本数据类型:四种八个
整数类型:byte(1个字节)包装类:Byte short(2个字节)包装类:Short int(4个字节)整数默认包装类:Integer long(8个字节)包装类:Long
浮点类型:float(单精度:4个字节)包装类:Float double(双精度:8个字节)浮点数默认 包装类:Double
布尔类型:boolean包装类:Boolean
字符类型:char(两个字节)包装类:Character
引用类型:
类、接口、数组、枚举、注解
基本数据类型:
byte a=4; //定义的值不能超过-128——127这个范围:否则报错 short b=5; //定义的值不能超过:-32768——32767,否则报错 int c=6; //定义范围同上 long d=7L; //定义范围同上 定义long类,必须加L,否则默认int类型。 System.out.println(a); //4 System.out.println(b); //5 System.out.println(c); //6 System.out.println(d); //7 System.out.println("byte的大小:"+Byte.SIZE+",byte的数据范围:"+Byte.MIN_VALUE+","+Byte.MAX_VALUE); //byte的大小:8,byte的数据范围:-128,127 System.out.println("short的大小:"+Short.SIZE+",short的数据范围:"+Short.MIN_VALUE+","+Short.MAX_VALUE); //short的大小:16,short的数据范围:-32768,32767 System.out.println("int的大小:"+Integer.SIZE+",int的数据范围:"+Integer.MIN_VALUE+","+Integer.MAX_VALUE); //int的大小:32,int的数据范围:-2147483648,2147483647 System.out.println("long的大小:"+Long.SIZE+",long的数据范围:"+Long.MIN_VALUE+","+Long.MAX_VALUE); //long的大小:64,long的数据范围:-9223372036854775808,9223372036854775807 float e=1.12f; //定义范围同上 不加f报错 double f=1.25; //定义范围同上 System.out.println("float的大小:"+Float.SIZE+",float的数据范围:"+Float.MIN_VALUE+","+Float.MAX_VALUE); //float的大小:32,float的数据范围:1.4E-45,3.4028235E38 System.out.println("double的大小:"+Double.SIZE+",double的数据范围:"+Double.MIN_VALUE+","+Double.MAX_VALUE); //double的大小:64,double的数据范围:4.9E-324,1.7976931348623157E308 boolean g=true; //boolean类型只有true和false两个值,也没有上面的范围的方法 System.out.println(g); //true char k='a'; //char只能定义单个字符 System.out.println("char的大小:"+Character.SIZE); //char/*
数据类型转换
/* 基本数据类型的转换 byte——>short——>int——>long——>float——>double 低位——————————————————————————————————>高位 低位向高位类型转换,直接转换 低位<——————————————————————————————————高位 高位向低位类型转换,需要强制转换 */ public class Code03 { public static void main(String[] args) { //直接转换 byte a=10; int b=a; System.out.println(b); //10 int c=10; double d=c; System.out.println(d); //10.0 //强制转换 int d1=15; byte a1= (byte) d1; System.out.println(a1); //15 int f3=128; byte b1= (byte) f3; System.out.println(b1); //-128 溢出 byte=[-128,127] //char类型可以和int类型相互转换 //char类型a表示的是ASCII码值int类型,a-z 97-123 A-Z 65-91 char c1='a'; int c2=c1; System.out.println(c2); //97 int k1=65; char k2= (char) k1; System.out.println(k2); //A } }
实例—类变量
public class Code08 { int a; //实例变量(非静态变量) static int b; //类变量(静态变量) public void display(){ System.out.println(a); //0 实例方法可以直接使用实例变量 System.out.println(b); //0 实例方法可以直接使用静态变量 } public static void play(){ Code05 code05 = new Code05(); System.out.println(code05.a); //0 类方法中使用实例变量,必须通过类对象调用实例变量 System.out.println(b); //0 类方法中可以使用类变量 } public static void main(String[] args) { Code05 code05 = new Code05(); code05.display(); //因为main方法为静态方法所有调用非static修饰的方法必须通过对象调用 play(); //因为main方法为静态方法调用static修饰的方法可以直接调用 //static int a; 局部方法中不能使用static修饰变量 } }
全局-局部变量:
全局变量:整数类型默认为0 浮点数类型默认0.0 char默认空 boolean类型默认值为false
局部变量:使用前必须赋值
public class Code06 { byte a; short b; int c; long d; float e; double f; char g; boolean h; public void display(){ System.out.println(a); //0 System.out.println(b); //0 System.out.println(c); //0 System.out.println(d); //0 System.out.println(e); //0.0 System.out.println(f); //0.0 System.out.println(g); // System.out.println(h); //false } public static void main(String[] args) { new Code06().display(); System.out.println("========================================="); int a; //局部变量没有默认值 //System.out.println(a); //Error:(29, 28) java: 可能尚未初始化变量a 使用前必须赋值 a=10; System.out.println(a); //10 } }
类方法-实例方法
/*
Java中的方法分为:实例方法(非静态方法:无static修饰)和类方法(静态方法:static修饰)
类方法(静态方法)不能够直接使用实例变量(非静态变量),必须通过创建对象调用实例变量(非静态变量)
实例方法(非静态方法:无static修饰):可以直接使用实例变量(非静态变量:无static修饰的变量)和类变量(静态变量)
静态变量叫做类变量,只能定义在类中,不能在局部方法中声明,局部变量不能是static.
*/
public class Code07 {
int a; //实例变量(非静态变量)
static int b; //类变量(静态变量)
//没有用static修饰的方法,实例方法,也叫非静态方法
public void display(){
System.out.println(a); //0 实例方法可以直接使用实例变量
System.out.println(b); //0 实例方法可以直接使用静态变量
}
public static void play(){
Code05 code05 = new Code05();
System.out.println(code05.a); //0 类方法中使用实例变量,必须通过类对象调用实例变量
System.out.println(b); //0 类方法中可以使用类变量
}
public static void main(String[] args) {
Code05 code05 = new Code05();
code05.display(); //因为main方法为静态方法所有调用非static修饰的方法必须通过对象调用
play(); //因为main方法为静态方法调用static修饰的方法可以直接调用
}
}