数据类型
数据类型
-
强类型原语言
要求变量的使用要严格符合规定,所有的变量都必须先定义才能使用
-
弱类型语言
-
Java基本数据类型
1、数值类型:整数类型、浮点类型、字符类型。
整数类型:
byte 占一个字节(8bit/位),范围:-2^7 ~ 2^7-1(-128~127)
short 占两个字节(16bit/位),范围 -2^15 ~ 2^15-1(-32768~32767)
int 占四个字节(32bit/位),范围 -2^31 ~ 2^31-1 (-2147483648~2147483647) 约21亿
long 占八个字节(64bit/位),范围 2^63 ~ 2^63-1。long类型需添加"L"后缀。
拓展:整数:十进制 、八进制0 、十六进制0x 、二进制0b
浮点类型:
float占4个字节(32bit/位),能精确到6~7位,声明一个小数类型,要加F或者f,建议加F;
double 占8字节(64bit/位),能精确到15~16位,小数类型默认是double类型;
拓展:最好完全不要使用浮点数进行比较
字符串类型:
char:占两个字节(8bit/位)
string :字符串是类
拓展:
1、字符表示Unicode(万国码占2字节)编码表中的每一个符号,每个符号使用单引号引起来,其中前128个符号和ASCII表相同。
public class note { public static void main(String[] args) { char s='\u0054'; System.out.println((int)s); } }U+0000为Unicode编码的表示方式
2、转义字符
转义字符 意义 ASCLL码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 008 \f 换页(FF),将当前位置移到下页开头 012 \n 换行(LF) ,将当前位置移到下一行开头 010 \r 回车(CR) ,将当前位置移到本行开头 013 \t 水平制表(HT) (跳到下一个TAB位置) 009 \v 垂直制表(VT) 011 ' 代表一个单引号 039 " 代表一个双引号字符 034 \ 代表一个反斜线字符''' 092 ? 代表一个问号 063 \0 空字符(NUL) 000 \ddd 1到3位八进制数所代表的任意字符 三位八进制 \xhh 十六进制所代表的任意字符 十六进制 2、布尔数据类型
boolean:占1位,有true和false2个值,一个表示真,一个表示假,一般用于表示逻辑运算
boolean falg=true; if(flag==true){}if(flag){}其中上面两种情况再Java中意思相同。
-
引用数据类型
类、接口、数组
变量:
-
可以变化的量
-
Java为强类型语言,每个变量都声明其类型;
-
Java变量是程序中的储存单元,其组成包括变量名、变量类型、作用域
变量的定义
int a=127;
//类型 变量名=值;
注意:
- 每个变量都有类型,类型可以是基本类型也可以是引用类型;
- 变量名必须是合法的标识符;
- 变量声明是一条完整的语句。必须以分号结束;
变量的作用域:
- 类变量
- 实例变量
- 局部变量
//变量作用域
public class note01 {
//类变量: static
static int salary=2400;
//实例变量:从属于对象;如果不进行初始化,输出这个类型的默认值
//布尔类型:默认值为false
//除了基本类型之外的默认值为null;
String name;
int age;//数值类型默认值 0 0.0 字符串u0000
//main方法
public static void main(String[] args) {
//局部变量:必须声明和初始化值
int a=1;
System.out.println(a);
//引用实例变量
note01 note01 =new note01();
System.out.println(note01.age);
System.out.println(note01.name);
//引用类变量;
System.out.println(salary );
}
// 其他方法
public void add(){
}
1
0
null
2400
常量:
初始化后不能再改变的值,不会变动的值;
常量分类
- 整数类型
十进制表示方式;正常数字,比如13.25等
二进制表示方式以0b(0B)开头,如0b1011、0B1001
十六进制表示方式:0X(0x)开头,数字以0-9及A-F 组成 如0x23A2
八进制表示方式:以0开头,如01,0721
-
小数类型,如1.0等
-
布尔类型,true、false
-
字符类型,字符类型必须使用‘ ’包裹,并且其中仅能包含一个字符。如:’a’ ’A’
-
字符串类型,一种引用类型,字符串必须使用” ”包裹,其中可以包含0~n个字符;
常量的定义
final double IP=3.14; //final 类型 变量名=值;
变量的命名规范:
- 所有变量、方法、类名:见名知意
- 类成员名:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则 Note
- 方法名:首字母小写和驼峰原则 run()
数据类型转换
强制数据类型转换
自动类型转换
由于Java是强类型语言,所以进行有些运算的时候需要用到类型转换。
低-------------------------------------------------->高
byte;short,char>int >long>float>double
运算中,先把不同的类型转换为相同的类型,再进行运算。
public class note {
public static void main(String[] args) {
int a=128;
byte i=(byte)a;
System.out.println(i); //i输出的值为-128 内存溢出
//强制类型转换 (类型)变量名(高到低)
float b=10.23f;
double c=b;
System.out.println(b);
//自动类型转换(低到高)
int money=1000000000;
int year=20;
long slar=year*((long )money);
System.out.println(slar);
char s='\u0054';
System.out.println((int)s);//字符的本质是数字
System.out.println((int)12.1f);//精度丢失
}
}
//输出结果
-128
10.23
20000000000
84
12
注意:
- 不能对布尔类型进行转换;
- 不能把对象类型转化为不相干的类型;
- 把高容量的转化为低容量的时候需要强制转换,反之自动转换;
- 转换的时候可能存在内存溢出或者精度问题;

浙公网安备 33010602011771号