基础(数据的基础长度单位)
bit Byte KB MB GB TB PB EB EB YB BB DB CB XB
简介
编写java程序先创建包,在创建类,然后写程序,程序中一个成语只有一个主函数(一个程序好比一颗树,而程序中的主函数就是树干。)
//类
public class Test1 {
/**
* 主函数的格式如下
* 主函数一个类中只有一个
* 主函数参数可以在执行时候添加数据
*
* */
public static void main(String args[]){
}
}
一.变量
概念:
计算机内存中的一块存储空间,是存储数据的基本单元。
语法:
1.先声明,再赋值,然后使用。
声明: 数据类型 变量名
赋值: 变量名=值; =(赋值运算符)意思为等号左边的值赋值给等号右边。
2.声明并赋值(常用)
数据类型 变量名 = 值
3.同时声明多个同类型的变量
数据类型 :变量名1, 变量名 2, 变量名3 , 变量名 4;
//先声明再赋值
int a;
a=10;
//声明并赋值
int b=10;
//声明多个变量
int c,d,e,f,g;
数据类型:
1.基本数据类型
1)整数:
名称 | 字节数 | 二级制长度 | 十进制长度 |
---|---|---|---|
byte | 1个字节 | -27~27-1 | -128~127 |
short | 2个字节 | -215~215-1 | -32768~32767 |
int | 4个字节 | -231~231-1 | -2147483648~2147483648 |
lang | 8个字节 | -263~263-1 | -922京 ~ 922京 |
2)小数: 近似值(1bit符号 8bits指数 23bits尾数) IEEE754标准
名称 | 字节数 | 正数 | 负数 |
---|---|---|---|
float | 4个字节 | -3.4E+38 ~ -1.4E-45 | 1.4E-45 ~ 3.4E+38 |
double | 8个字节 | -1.7E+308 ~ -4.9E-324 | 4.9E-324 ~ 1.7E+308 |
3)字符: character
char 2个字节 0 ~ 65535 ASCII / Unicode 编码
赋值方式: ‘A’ 65 ‘\u0041’
转义字符:\u ’ \ \n \t
4)布尔:
boolean 1个字节(中的1bit) 取值:true / false 常用于表示状态
2.引用数据类型:
I. 字符串:String “字面值”
数据类型转换
自动类型转换:
I. 两种类型相互兼容(同是数字或者字符)
II. 目标类型大于源类型.(数据的长度相对提高)
强制类型转换:
I. 两种类型相互兼容。(同是字符或者数字)
II. 目标类型小于源类型。(数据的长度相对降低)
强制转换规则
I. 整数长度合适,数据完整。
II. 整数长度不适,数据截断。
III. 小数转换整数,数据截断、失去精度(低于16位小数的情况下)
IV. 字符整数转换,数据完整。
V. boolean的取值true/false,不可转换。
double b=1.12;
//强制类型转换
int a=(int)b;
//强制类型转换
byte c=(byte)b;
//强制类型转换
long d=(long)b;
注:
1,强制转换时会出现数据截断可能使数据出错
自动类型提升:
- 两个操作数,有一个为double,其结果提升为double。
- 如果没有double,有一个为float,其结果提升为float。
- 如果没有float,有一个为long,其结果提升为long。
- 如果没有long,有一个为int,其结果提升为int。
- 如果没有int,均为byte或short,其结果仍旧为int。
- 注意:任何类型与String相加(+)时,实为拼接,其结果自动提升为String。
//自动类型提升
int a1=12;
//自动提升为double 所以接收错误。
int b1=a1+1.2;
//自动提升正确;
double b3=a1+1.2;
byte c3=1;
//整形会自动变为int
byte c4=c3+1;
//接收正确
int c5=c3+1;
//接收错误,任何数拼接字符串都是字符串,前拼后拼一样。
int c6=c3+"xxx";
//接收正确
String c7=c3+"xxx";
表达式:
使用运算符连接的变量或字面值,并最终得到一个结果。
控制台录入:
- import java.util.Scanner; //导包
- Scanner input = new Scanner(System.in); //声明Scanner类型的变量
- 接收不同类型的数据:
.nextInt(); //整数
.nextDouble(); //小数
.next(); //字符串
.next().charAt(0); //字符串的首个字符
变量的作用范围
全局变量
在类中声明,作用声明全类可用。称为类变量,或者实例变量。
局部变量:
在函数中声明,作用范围只在函数的起始位置。