一.初识Java
- Java的发展史 长期开发版本是JDK8
- Java语言之父 -> 詹姆斯·高斯林。 现代计算机之父 -> 冯诺依曼
- .java -> 编译javac xxxx.java -> xxxx.class [字节码文件:二进制文件]。java命令 运行Java程序。
- 在Java当中 写代码时候
一个.java文件当中,如果有一个类是public修饰的类。那么这个类的名字必须和文件名一致。
在一个java文件中,只能有一个public类。 - 注释问题
// 行注释
/*
块注释
*/
/**
* 文档注释
*/
JDK是Java开发工具包,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb)和Java基础的类库(即Java API 包括rt.jar)。
JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
JVM是整个Java实现跨平台的最核心的部分,所有的Java程序首先会被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
JDK中包含了JRE,JRE又包含JVM
二.数据类型
java 的字符类型采用的是 Unicode编码方案,每个 Unicode码占用8个比特位
Java的8种基本数据类型
字节类型 byte、短整型 short、整型 int、长整型 long、单精度浮点数 float、双精度浮点数 double、字符类型 char、布尔类型 boolean
1.整型 int
public class main {
public static void main2(String[] args) {
/*
1. a是整型变量 此时a占用4个字节,和平台多少位没有关系
字节
bit byte kb mb gb tb
8 1024 1024 1024 1024
在Java中没有 无符号 和 有符号 这样的概念
int 4个字节 32位 = 1符号位 + 31数值位
-2^31 ~ 2^31-1
最大值为何是2^31-1,是因为计算机正整数是从0开始计数的
*/
int a = 4;
System.out.println(a);
// Integer == int 的plus版本 比int强大
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
}
2.短整型 short
public class main {
public static void main(String[] args) {
//2个字节 16bit -2^15 2^15-1
//short sh = 32768;//如果你给的值 超过了 最大值 会直接报错
short sh = 2;
System.out.println(sh);
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);
}
}
3.长整型 long
public class main {
public static void main(String[] args) {
/*
8个字节 64bit -2^63 2^63-1
*/
long a = 8;
System.out.println(a);
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
}
}
4.字节类型 byte
public class main {
public static void main(String[] args) {
//1个字节 8bit -2^7 2^7-1
byte a = 10;
System.out.println(a);
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
}
}
4.单精度浮点数 float
public class main {
public static void main(String[] args) {
float f = 12.5f;
/*这里将 12.5f 赋值给float类型的变量f,
如果不加f,系统会默认把赋值的数字当作double类型处理,
然后在把这个double类型的值赋给float类型,这样就会出现精度丢失。*/
System.out.println(f);
System.out.println(Float.MAX_VALUE);
System.out.println(Float.MIN_VALUE);
}
}
6.双精度浮点数 double
public class main {
public static void main(String[] args) {
//8个字节 64bit
double d = 12.500;
System.out.println(d);
double num = 1.1;
System.out.println(num*num);
/*System.out.printf("%.2f\n",d);
System.out.printf("%f",d);*/
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);
int a = 1;
int b = 2;
System.out.println(a/b);
}
}
7.字符类型 char
public class main {
public static void main(String[] args) {
//字符类型 2个字节 汉字占两个字节 16bit
char ch = 'a';
System.out.println(ch);
char ch2 = '牛';
System.out.println(ch2);
char ch3 = 100;//输出的是ASCII码对应的字符
System.out.println(ch3);
}
}
8.布尔类型 boolean
public class main {
public static void main8(String[] args) {
//JVM 没有明确大小
boolean flag = true;
System.out.println(flag);
}
}