java环境搭建和基本数据类型

java环境搭建

java编程语言的构成

  1. JDK: java开发工具包 (开发需要),包括JRE和开发工具
  2. JRE:java程序运行的最小环境 (运行java是必要的),包括JVM和API
  3. JVM :执行java字节码文件的虚拟机
  4. 关系 JDK(JRE(JVM))

第一个java程序HelloWorld

/**
* 第一个java程序 Hello World
*/

public class HelloWorld {
//main方法,程序的入口
public static void main(String[] args) {
//输出语句
System.out.println("Hello World");
}
}

注释

  1. 单行注释

    //这是单行注释
  2. 多行注释

    /*
    这是多行注释
    */
  3. 文档注释

    /**
    *文档注释:对当前的程序进行说明(功能,编写日期,编写人)
    文档注释一般写在类或方法上;
    */

java运行原理

Java程序的执行流程

  1. java源代码(.java)编译以后生成字节码文件(.class)
  2. 字节码文件在java虚拟机上执行
  3. java虚拟机(JVM)将字节码文件翻译为目标平台可以执行的指令(一次编写,到处运行)

标识符与数据类型

标识符

标识符使用必须遵循一定的规则
  1. 可以包含数字,但是不能以数字开头
  2. 除_ $符号外,不能包含其他特殊字符
  3. 不能使用java关键字或保留字符做标识符
  4. java标识符大小写敏感
  5. 可以使用汉字,但不推荐,见名知意的起名
变量的声明及初始化

变量在第一次使用时要进行初始化。

public class VarDemo {
public static void main(String[] args) {
//声明(定义)一个变量 变量的类型 变量名(自己命名的标识符)
int v1=10; //声明一个int(整数) 类型的变量 变量名是v1,并对其进行初始化,值为10
System.out.println(v1);
}
}

数据类型

分为两大类:基本数据类型和引用数据类型

基本数据类型
  1. 整数类型 byte(1个字节,8位) short(2个字节) int(4个字节) long(8个字节 )
  2. 浮点类型 float(4个字节) double(8个字节)
  3. 字符类型 char
  4. 布尔类型 boolean
引用数据类型

字面量

字面量:计算科学中用于表示源代码中固定值的表示法。

/**
* 字面量
*/
public class Literal {
public static void main(String[] args) {
int a = 3; //3默认就是int类型
long b = 5L; //5L是long类型的字面量
short c =6;
double d = 5.5; //小数默认是double类型
float f =5.5f; //float类型
char e = 'a'; //char 类型
String s = "a"; //字符串类型
}
}

数据类型转换

自动类型转换

将小范围数据转换为大范围数据时会自动进行类型转换

byte -short -char -int -long -float-double

/**
* 自动类型转换
*/

public class AutoConversion {
public static void main(String[] args) {
byte b= 100;
int i = b; //byte类型自动转换为int类型
long l = i; //int类型自动转换为long类型
float f =l; //long类型自动转换为float类型
double d = f; //float类型自动转换为double类型
double x = 5 + 5.0; //整数5在计算过程中自动转换为double,在计算


}
}

强制类型转换

将大范围数据转化为小范围数据时,无法自动完成类型转换,需要使用强制类型转换

强制类型转换可能会出现溢出和精度损失问题

/**
* 强制类型转换:范围从大到小的转换
* 会出现两个风险:溢出和精度损失
*/
public class ForedConversion {
public static void main(String[] args) {
int i1 = 120;
byte b1 = (byte) i1; //int 强制类型转换成 byte 范围内的数据可以转换成功

int i2 = -129;
byte b2 = (byte) i2; //超过了有效范围,会出现溢出问题
System.out.println(b2);

double d1 =5.0;
long l1 = (long) d1;
System.out.println(l1);

double d2 =5.1;
long l2 = (long) d2; //精度损失
}
}