JAVA基础

1、数据类型及转换

1.1 注释

注释是在程序指定位置添加的说明性信息
简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码

// 单行注释
/*
	多行注释
*/
/**文档注释*/

1.2 强制转换

强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
简单理解:大的给小的,不能直接给,需要强转
格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
范例:

ink k = (int)88.88;

注意:强制类型转换,有可能会发生精度损失
精度损失:简单理解,将容积为8升的容器中的水,倒入容积为4升的容器中,如果水超出了4升,就洒了。

1.3 常量

常量:在程序的执行过程中,其值不会发生改变的量(数据)
常量的分类:
字符串常量:被双引号所包裹的内容
整数常量:所有整数
小数常量:所有小数
字符常量:被单引号包裹的内容,里面只能存放单个字符
布尔常量:只有两值,true(真),false(假)
布尔常量单独打印没有意义,为了后面要学习的运算符,打基础
空变量:null,数组部分详细讲解
注意:null空常量不能输出打印

1.4 类型转换

案例:判断是否正确

public class Test{
	public static void main(String[] args){
		byte a = 3;				//1
		byte b = 4;				//2
		/*
			隐藏转换:当小的数据类型和大的数据类型在一起运算的时候,小的会先提示为打的之后,再进行运算
			特殊关注:byte short char在运算的时候,都会直接提升为int,然后再进行运算。
			解决方法:byte c = (byte)(a + b)
		*/
		byte c = a + b;			//3 错误:不兼容的类型:从int转换到byte可能会有损失
		byte d = 3 + 4;			//4 这里的3和4是两个变量,Java存在常量优化机制,会在编译的时候就会让3和4进行相加,然后会自动判断7是否在byte的取值范围内。1、在范围内:编译出错 2、在范围内:通过编译
	}
}

1.5 变量

以上两块内存空间,所记录的值,是经常发生改变的,对于这种经常发生改变的数据,就是所谓的变量。
结论:变量就是内存中的存储空间,空间中存储着经常发生改变的量(数据)
怎么定义变量
~变量的定义格式
数据类型 变量名 = 数据值;
数据类型:为空间中存储的数据,加入类型【限制】整数?小数?...
变量名:自己要为空间起的名字,没有难度
数据值:空间中要存储的数值,没有难度

1.6 数据类型

计算机存储单元

1B(字节)= 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
TB PB等......
数据类型
Java语言是强类型语言,对于每一种数据都给出了明确的数据类型,不同的数据类型也分配了不同的内存空间,所以它们表示的数据大小也是不一样的。
数据类型内存占用和取值范围

常量【没有手动指定数据类型】但只要是数据,就会存在数据类型

public static void main(String[] args){
	//整数类型,默认为int
	System.out.println(10);
	//浮点类型(小数类型),默认为double
	System.out.println(12.3);
}

1.7 变量的定义和试用

变量的定义格式
数据类型 变量名 = 数据值;
变量的使用
根据标识,变量名进行使用

public class Demo{
	public static void main(String[] args){
		int a = 10;
		System.out.println(a);
		a = 30;
		System.out.println(a);
	}
}

总结:变量就是内存中的空间,内部存储着不断发生变化的数据

1.8 变量的注意事项

变量名不允许重复定义

public static void main(String[] args){
		int a = 10;
		//int a = 20; 错误代码
		a = 20;
		System.out.println(a);
	}

一条语句可以定义多个变量,但需要使用逗号进行分割

public static void main(String[] args){
		int a = 10 , b = 20 , c = 30;
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
	}

变量在使用之前一定要进行赋值

public static void main(String[] args){
		//int a; 错误代码
		int a = 10;
		System.out.println(a);
	}

定义float和long变量的注意事项
定义float类型变量的时候:需要在数值后面加入F的标识,F可以大写也可以小写
定义long类型变量的时候:需要在数值后面加入L的标识,L可以大写也可以小写
但是,建议大写 1L 1l(小写)

public static void main(String[] args){
	float a = 12.3F;
	long b = 1000L;
}

变量的作用域范围
变量的作用域:只在它所在的大括号中有效、

public static void main(String[] args){
	int a = 12;
	{	
		int b = 20; //无效 运行完就消失
		System.out.println(a);
	}

1.9 键盘录入

键盘录入介绍
为什么要有键盘录入?
目的:为了让我们操作的数据,变得更加灵活
举例:int a = 10;
这里a虽然是个变量,但记录得值,却是手动写死的。能不能让a变量记录的值,灵活起来,用户输入什么,a变量就记录什么。
实现键盘录入
步骤1:导包,需要写在class的上面

		import java.util.Scanner

步骤2:创建对象

		Scanner sc = new Scanner(System.in);
		只有sc可以改变,其他属于固定格式

步骤3:使用变量接收数据

		int i = sc.nextInt();
		只有i变量可以改变,其他属于固定格式

1.10 标识符

标识符概述
标识符:就是给类,方法,变量等起名字的符号。
标识符定义规则:
由数字、字母、下划线(_)和美元(S)组成
·不能以数字开头
·不能是关键字
·区分大小写
常见命名约定
小驼峰命名法:
约定1:标识符是一个单词的时候,首字母小写 eg:name
约定2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写 eg:firstName
大驼峰命名法:
约定1:标识符是一个单词的时候,首字母大写 eg:Student
约定2:标识符由多个单词组成的时候,每个单词的首字母大写 eg:GoodStudent

1.11 隐式转换

类型转换
为什么要学习类型转换

public class Test{
	public static void main(String[] args){
		int a = 10;
		double b = 12.3;
		数据类型 c = a + b;
	}
}

类型转换的分类
隐式转换
强制转换
隐式转换的过程
隐式转换
将数据类型中,取值范围小的数据,给取值范围大的类型赋值,可以直接赋值

范例:
int a = 10;
double b = a;

简单记:小的给大的,可以直接给。
int 4个字节
double 8个字节
4升的油,倒入8升的桶,可以直接倒入

隐式转换的细节

特殊关注:
byte short char 三种数据在运算的时候,不管是否有更高的数据类型,都会提升为int,然后再进行运算