Java的三大版本

计算机高级语言的类型主要有编译型和解释型两种,而Java语言是两种类型的结合

  Java首先利用文本编辑器编写Java源程序,源文件的后缀名为 .Java;再利用编译器将 源文件编译成字节码文件,字节码文件的后缀名为 .class;最后利用虚拟机(解释器)解释执行

1610803466168.png

Java的三大版本
 1. Java SE(Java Standard Edition):标准版,定位在个人计算机的应用(发展不好, Windows桌面应用一般不用Java SE开发)
 2. (主流)Java EE(Java Enterprise Edition):企业版,定位在服务器端的应用
 3. Java ME(Java Micro Edition):微型版,定位在消费电子产品的应用上(用的越来越少)

注意:Java ME不是安卓开发,两码事

JVM、JRE和JDK

   JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。它也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java解释运行,边解释边运行,这样,速度就会受到一定的影响

  不同的操作系统有不同的虚拟机。Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。Java虚拟机是实现跨平台的核心机制

1610803466204.png

JVM、JRE和JDK之间的关系
 1. JVM(Java Virtual Machine)就是虚拟的用于执行bytecode字节码的“虚拟计算机”
 2. Java Runtime Environment(JRE)包含:Java虚拟机、库函数、运行Java应用程序所必 须的文件
 3. Java Development Kit(JDK)包含:包含JRE、以及增加编译器和调试器等用于程序开发的文件

下载并安装JDK

  百度搜索JDK,进入官网进行下载,进入到下载界面选择java SE11.0.4(LTS,长期支持的意思)或者java SE 12.0.2都可以,这里下载java SE11.0.4(LTS)。

1610803466287.png

java的安装就是傻瓜式的安装,一直下一步就可以了,注意安装路径即可。

1610803466340.png

配置环境变量

找到环境变量,然后选择新建,变量名为JAVA_HOME,变量值时Java的目录,注意这块不需要带\bin。

1610803466376.png

找到系统变量的path,点击编辑/编辑文本,在变量的得最前面加上[%JAVA_HOME%\bin;]。

1610803466416.png

Path环境变量的作用

  作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

第一个Java程序

编写编译执行代码

编写源代码: 新建Hello.java文件

1610803466458.png

编译源代码,在Hello.java文件目录下打开cmd,javac Hello.java ,编译Hello

1610803466490.png

执行源代码,在cmd中输入java Hello,运行Hello,不要带后缀

1610803466546.png

代码详解

  class 称为 类 ,是java中很重要的概念,类名要和文件名保持一致,要求首字母大写,例如文件名Hello,则class名称就是Hello。

  1. public static void main(String[] args),称为主函数,也叫主方法,这是程序的入口。
  2. System.out.print(“……”);用于输出一段内容,不换行。
  3. System.out.println(“……”);输出一段内容后换行。

变量的声明与赋值

声明变量

Java语言就是表示人的语言
 1. 变量:可变的值
 2. 声明:说一下

声明变量
 有个整数a:int a;(变量的声明)
 有个整数a它的值为10:int a = 10;(声明一个变量,赋值为10)
 例子:

  1. int a = 30;
  2. System.out.print("哈哈" + a);
  3. 输出:哈哈30

变量本质

  变量本质上就是代表一个”可操作的储存空间”,空间位置是确定的,但是里面放什么值不确定。我们可以通过变量名来访问”对应的储存空间”,从而操纵这个”储存空间”储存的值
  Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据储存空间的大小,比如int a = 3;,表示a变量的储存空间的大小为4个字节
示例:不同数据类型的常量在内存中分配不同的空间

  1. double a;
  2. long b;
  3. int c;

1610803466568.png

注意事项:
 每个变量都有类型,类型可以是基本类型,也可以是引用类型
 变量名必须是合法的标识符
 变量声明是一条完整的语句,因此每一个声明必须以分号结束

常量(Constant)

常量通常指的是一个固定的值,例如:1、2、3、’a’、’b’、true、false、”helloWorld”等。

在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
 声明格式为:final type varName = value;

常量的声明及使用

  1. public class TestConstant {
  2. public static void main(String[] args) {
  3. final double PI = 3.14;
  4. //PI = 3.15 编译器报错,不能再被赋值
  5. double r = 4; //变量
  6. double area = PI * r * r;
  7. double circle = 2 * PI * r;
  8. System.out.println("area = " + area);
  9. System.out.printf("circle = " + circle);
  10. }
  11. }

  为了更好的区分和表述,一般将1、2、3、’a’、’b’、true、false、”helloWorld”等称为字面常量,而使用final修饰的PI等称为符号常量。

老鸟建议
 1. 变量和常量命名规范(规范是程序员的基本准则,不规范会直接损害你的个人形象):
 2. 所有变量、方法、类名:见名知意
 3. 类成员变量:首字母小写和驼峰原则: monthSalary
 4. 局部变量:首字母小写和驼峰原则
 5. 常量:大写字母和下划线:MAX_VALUE
 6. 类名:首字母大写和驼峰原则: Man, GoodMan
 7. 方法名:首字母小写和驼峰原则: run(), runRun()

八种基本数据类型

基本介绍

  Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。

Java中定义了3类8种基本数据类型
 数值型- byte、 short、int、 long、float、 double
 字符型- char
 布尔型-boolean

1610803466599.png

注意事项
 引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!

整型变量/常量

  整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反,C和C++程序需要针对不同的处理器选择最有效的整型。

1610803466629.png

Java 语言整型常量的四种表示形式
 十进制整数,如:99, -500, 0
 八进制整数,要求以 0 开头,如:015
 十六进制数,要求 0x 或 0X 开头,如:0x15
 二进制数,要求0b或0B开头,如:0b01110011

Java语言的整型常数默认为int型,声明long型常量可以后加‘ l ’或‘ L ’

【示例1】长整型常数的声明

  1. long a = 55555555; //编译成功,在int表示的范围内(21亿内)。
  2. long b = 55555555555;//不加L编译错误,已经超过int表示的范围。
  3. //我们修改成long类型的常量即可:
  4. long b = 55555555555L;

【示例2】

  1. public class TestConstant {
  2. public static void main(String[] args) {
  3. //byte a = 30;
  4. //int b = 15;
  5. int c = 015; //八进制
  6. int d = 0x15; //十六进制
  7. int e = 0b1101; //二进制
  8. //以十进制输出
  9. System.out.println(c);
  10. System.out.println(d);
  11. System.out.println(e);
  12. }
  13. }

字符型变量/常量

  字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如’A’是一个字符,它与”A”是不同的,”A”表示含有一个字符的字符串。char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
示例:字符型举例

  1. char eChar = 'a';
  2. char cChar ='中';

  unicode具有从0到65535之间的编码,他们通常用从’\u0000’到’\uFFFF’之间的十六进制值来表示(前缀为u表示Unicode)
示例:字符型的十六进制值表示方法

  1. char c = '\u0061';

  Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义。常用的转义字符及其含义和Unicode值如表

1610803466656.png

字符连接,在最前面加上双引号(空字符串)

示例:System.out.println(“” + ‘a’+’b’);
  如果在最前面不加双引号,那则是uincode码值相加,并将加的值输出最前面必须是字符串,后面可以+字符串/字符

  1. char e = 'a';
  2. char f = 'b';
  3. System.out.println("" + e + f);
  4. System.out.println("字符是" + e);
  5. 输出结果为
  6. ab
  7. 字符是a

  char型(文本型)用于存放字符的数据类型,占用2个字节,采用unicode编码,它的前128字节编码与ASCII兼容。
  字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加’’,比如’1’表示字符’1’而不是数值1,char c=’1’;我们试着输出c看看,System.out.println(c);结果就是1,而如果我们这样输出呢?System.out.println(c + 0);结果却变成了49。
  如果我们这样定义c看看,charc=’\u0031’;输出的结果仍然是1,这是因为字符’1’对应着unicode编码就是\u0031。

浮点型

  float和doub1e是表示浮点型的数据类型,他们之间的区别在于他们的精确度不同。
  float 3.402823e+38~1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用个字节double 1.797693e+308~4.9000000e-324占用8个字节。
  doub1e型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是doub1e型的,如果要表示一个数据是float型的,可以在数据后面加上“F”。

1610803466688.png

  浮点型的数据是不能完全精确的,所以有的时候在计算的时候可能会在小数点最后几位出现浮动,这是正常的。

boolean型(布尔型)

这个类型只有两个值,true和false(真和非真)boolean t=true;boolean f=false;

认识字符串类型(String)

利用关键字String定义
 例如:String a = “我爱我的祖国”;

字符串的连接

  1. String a = "我爱我的祖国";
  2. String b = "祖国也爱我";
  3. String c = a + "," + b + "。";
  4. System.out.println(c);

空字符串也是字符串
 例如:”” = 字符串

局部变量的字符串类型必须赋予初值;