java基础语法(数据类型)

1、 java数据类型概述

Java语言中的数据类型分为两大类,分别是基本类型引用类型。数据都有对应的数据类型,数据不同在内存中占用大小不同。

2、数据存储的单位

位、字节、字 是计算机数据存储的单位。

位(bit):是计算机中最小的单位,也是最基本的概念,在计算机中,由于只有逻辑0和逻辑1的存在,即每一个逻辑0或者1便是一个位。每一个位存储一个1位的二进制码,一个字节由8位组成。

字节(byte):计算机中处理数据的基本单位,是由八个位组成的一个字节,8个bit组成1个Byte

字(word):代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位,在常见的计算机编码格式下,一个字等于两个字节(十六位)(1word = 2Byte = 16bit)

2.1、进制转换:

二转十:按位乘

二转八:421法则

二转十六:8421法则

字符转二:ASCII编码

图片:RGB

3、 基本数据类型

Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。

3.1、八种数据类型

3.2、基本数据类型演示及注意事项

1)整型(4个): byte(字节型)、short(短整型)、int(整型)、long(长整型)

byte a = 199; 
short s = 199; 
int a = 199; 
long a = 199L; 

注. 声明long类型数据的时候,后面需要加L或者l 

2)浮点型(2个):float(单精度型/浮点型) 、double(双精度型

float f = 1.0f;
double d = 1.0;

注:1)声明float类型的数据的时候加f或者F;

       2)double类型的数据的有效位数 15~16;

       3)float类型的数据有效位数是 6~7;

3)字符(1个): char(字符型

char a = 'a'

4)布尔类型:(1个): boolean(布尔类型)

数据只有true、flase

4、引用数据类型
4.1、类引用

1)Object :Object是所有类的父类也是类层次结构的根类,每个类都使用Object作为超类,所有对象(包括数组)都可以实现这个类的方法,用Object可以定义所有的类

2)String :String类代表字符串,Java 程序中的所有字符串字(如"abc")。

3)Date :Date表示特定的瞬间,精确到毫秒。Date的类一般现在都被CalendarGregorianCalendar所有代替

4)Void :Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。

4.2、接口interface引用

1)List:列表 ,此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引 (在列表中的位置)访问元素,并搜索列表中的元素。List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。 List 接口提供了两 种在列表的任意位置高效插入和移除多个元素的方法。

2)add() : 在列表的插入指定元素。

3)remove():移除列表中指定位置的元素。

4)get(int index):返回列表中指定位置的元素。

4.3、数组引用

数组:型存储在一个连续的内存块中的相同数据类(引用数据类型)的元素集合。
数组中的每一个数据称之为数组元素,数组中的元素以索引来表示其存放的位置,索引(下标)从0开始。

5、类型转换(自动转换强制转换
5.1、类型转换图

5.2、自动类型转换

自动类型转换:范围小的类型自动转换为范围大的数据类型再参与运算(范围小转范围大)

public static void main(String[] args) {
    //1.多个类型数据混合运数时,系统会按最大的类型进行转换
    int a = 10;
    //float a1 = a + 1.1; //错误  结果类型一个是double
    float a2 = a + 1.1F;  //结果类型一个是float
    double a3 = a + 1.1;  //结果类型一个是double
    //2.容量大的赋值给容量小的肯定会报错
    //int b = 1.1; //错误 原因:double -> int
    //3.(byte,short) 和 char之间不会相互自动转换
    byte b1 = 10; //正确
    int b2 = 1;
    //byte b3 = b2; //错误 原因:变量赋值,判断该类型
    //char c1 = b1; //错误 原因:byte不能自动转换为char
    //4.byte,short,char该三个数据类型计算,计算时首先转换为int类型
    byte c1 = 1;
    short c2 = 2;
    //short c3 = c1 + c2; //错误 原因:计算时首先转换为int类型
    int c3 = c1 + c2; //正确

}
5.3、强制类型转换

强制类型转换:将范围大的数据类型转换为范围小的数据类型(范围大转范围小)

注意:

1)强转会造成数据丢失或溢出

2)浮点转整数,小数部分直接省略保留整数部分

 public static void main(String[] args) {
        //1.精度降低或溢出
        int i = (int) 1.9; //结果 1
        //2.强转符号只针对于最近的操作数有效,往往会使用小括号提升优先级
        //int x = (int) 10 * 3.5 + 6 * 1.5;//编译错误
        int x = (int) (10 * 3.5 + 6 * 1.5);//正确 (int)44.0 -> 44
        //3.char类型可以保留int的常量值,不能保存int的变量值需要强转
        char c = 100; //保留int的常量值
        int i = 100;
        //char m = i; //错误
        char m = (char) i; //正确
 }

5.4隐含强制类型转换(初始化)

1)在变量的初始化时,整数的默认类型是 int。byte b = 123; 123 默认是 int 类型,他会隐含强制转换为低级别的 byte 和 short 类型,所以不用显示强制转换;但是 int 类型只能显式强制转换为 long 型,所以 long a = 123L;

2)浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值