Java的数据类型
————————————————————————-
Java数据类型分为基本数据类型和引用数据类型。
基本数据类型
1、基本数据类型有以下8种
- 整数 byte、short、int、long
- 浮点数 float、double
- 布尔值 boolean
- 字符 char
2、其基本数据类型的取值范围如下
数据类型 | 位数 | 最低值 | 最高值 |
---|---|---|---|
byte | 8 | -128 | 127 |
short | 16 | -32768 | 32767 |
int | 32 | -2147483648(-2e31) | 2147483647(2e31-1) |
long | 64 | -2e63 | 2e63-1 |
float | 32 | ? | ? |
double | 64 | ? | ? |
boolean | 1 | true/false | true/false |
char | 16 | 0(‘\u0000’) | 65535(‘\uFFFF’) |
3、其基本数据类型的程序代码:
public static void main(String[] ages){
byte a=127;
short b=32767;
int c=2147483647;
long d=Long.valueOf("9223372036854775807");
boolean e=true;
float f=10.00f;
double g=10.000d;
char h='k';
System.out.println(0+'海');
//下面是查看数据类型的最大值,最小值同理。
System.out.println(Long.MAX_VALUE);
System.out.println(Integer.MAX_VALUE);
System.out.println(Short.MAX_VALUE);
}
-注意:1)如果要表示一个数据是float型的,可以在数据后面加上“F”。
2)如果要表示一个数据是double型的,赋值时可以加d或D也可以不加。
4、以下其基本数据类型的转换
基本数据类型的转换分为”隐式类型转换“与“强制类型转换”。
隐式类型转换的规则:
1、类型兼容。
2、目标类型大于源类型,如:byte< short< int< long< float< double [char< int< long< float< double].
3、数值表达式的转换:
- 有double的则结果为double;
- 有float的则结果为float;
- 有long的则结果为long;
- 其它结果则为int;
- 相应的程序代码如下
public static void main(String[] ages){
byte a=1; short b=a; int c=b; long d=c; float e=d; double f=e; char g='A'; int h=g; long j=h; float k=j; double l=k; int q=a+b+c; long w=b+d; float r=e+d+b; double t=d+e+f; int y=g+h; long u=j+g+h; float o=k+g; double p=l+k+j+h+g; System.out.println(0+g); System.out.println(Long.valueOf(g)); System.out.println(w); System.out.println(y);
}
强制类型转换 数值型的的规则:
1、大的类型转换成小的类型,需要使用(类型名)进行强制转换。
2、强制转换可能会精度丢失。
3、char可以与整数型进行互转
4、相应的程序如下
public static void main(String[] ages){
float a=32768.6f; short b=(short)a; int c=(int)a; byte d=(byte)a; System.out.println(b); System.out.println(c); System.out.println(d);
}
引用数据类型
1、引用数据类型
- 除8种基本数据类型以外的都是引用数据类型。
- 比如:String,File,Dog,Pig,LittleRocket与数组等。
- 使用方式和基本数据类型完全一样(属性、参数、返回值)。
赋值:
- 使用new关键字来赋值,例外(String和包装器类)。Heap 堆空间 :对象本身。
- Stack 栈空间:引用变量,存储的是对象的虚地址。
2、比较基本数据类型和引用数据类型
项目 | 基本数据类型 | 引用数据类型 |
---|---|---|
概念 | 单纯的值 | 对象 |
存储位置 | 栈中 | 栈中存引用,堆中存对象本身 |
赋值方式 | 直接赋值 | 栈中存引用,堆中存对象本身 |
3、其程序代码如下
package com.chinasofti.java3.quote;
public class DogDyeHair {
public Dog take(Dog dog){
dog.setName("拉布拉多");
return dog;
}
public static void main(String[] ages){
DogDyeHair dogDyeHair=new DogDyeHair();
Dog dog=new Dog();
dog=dogDyeHair.take(dog);
dog=dogDyeHair.choose(dog);
dog=dogDyeHair.pick(dog);
System.out.println(dog.getName());
}
}
package com.chinasofti.java3.quote;
public class Dog {
private String name;
private String owner;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
}
参考
计算机常识
- 计算机使用0和1存储数据
- 用bit来存储0和1
- 1byte=8bit
- 1k=1024byte
- 1m=1024k
- 1g=1024m
取值范围
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+ 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20 =127
快捷键
- Ctrl + / : 注释本行
- Ctrl + Alt + ↓(↑) : 向下(上)复制本行
- Alt + ↓(↑) : 向下(上)移动本行
- Ctrl+Shift+/ :添加/* */注释
- Ctrl + D : 删除本行
- Ctrl shift + F 自动调整格式