java数据类型

基本数据类型 (8种)

基本数据类型,不牵扯到内存分配问题

数值型
  • 整形: byte short int long 默认值 0
  • 浮点型 float,double 默认值 0.0
字符型
  • char ,默认值 ‘\u0000’
布尔型
  • boolean 默认值 false

引用数据类型 (3种)

引用数据类型需要由开发者为其分配空间

  • 数组,类,接口 默认值 null

byte的特殊性

当直接为byte赋值时,虽然任何整数都属于int类型,java编译的时候发现是为byte赋值会判断赋值的整数在byte的范围里面时,会自动转化,但是如果不在这个范围,会提示用户

浮点数

  • 浮点数就是小数,Java中只要是小数,那么对应的数据类型就是double,默认的小数类型就是double

    1. public static void main (String[] args){
    2. float a = 10.2f;
    3. float b= 10.2f;
    4. System.out.println(a*a);
    5. }
    6. //结果是 104.03999

    这个bug在jdk1.0就存在,解决不了,之能通过后期处理

    最早开发的时候考虑到内存的问题都使用float,往往能使用float就不使用double,以前内存苛刻,所有往往压缩数据范围,节省空间

  • 在开发过程中要考虑整型做除法时,是会舍去小数的,一点记得要做数据类型转换。

字符型 char

byte属于字节,一个字符=2个字节,字符除了与字节存在关系外,最主要的是可以和int进行转换

  • 字符型用单引号“’” 表示

    1. public static void main (String[] args){
    2. char a = 'A';
    3. int b = a;
    4. System.out.println(b);
    5. }

    字符 ‘A’~’Z’ 对应数字 65~90

    字符’a’~’z’ 对应数字97-122

布尔型

只有两种取值,true或者false

数据类型选取原则(99%适用)

  • 表示整数用int,表示小数用double;
  • 描述日期时间或者表示文件(内存)大小用long;
  • 如果实现内容传递或者时编码转换用byte;
  • 如果实现逻辑控制用boolean
  • 如果使用中文,可以使用char 避免乱码问题

运算符

  • 四则运算

  • 取模 %

  • ++、—操作,++在前,表示先把该变量做加1操作,再去运算,++在后,表示先拿该变量进行计算,然后=1

  • 逻辑运算,短路&& (与)、短路||(或),!(非) &(与)、|(或),短路与和短路或只要前面的条记不满足后面就不执行了,单个与单个或,全部都会执行

  • 10进制转2进制采用的方式就是 除二取余,倒序

    1. 例如:252进制计算过程 11001
    2. 25
    3. 2 1
    4. ----
    5. 12
    6. 2 0
    7. ---
    8. 6
    9. 2 0
    10. ----
    11. 3
    12. 2 1
    13. ---
    14. 1
    15. 2 1
    16. ----
    17. 0

swith

  • swith支持int和char类型

  • swith不支持布尔表达式

  • 从jdk1.5开始支持enum类型

  • 从jdk1.7后支持字符串

  • 字符串区分大小写

数组

数组初始化时。会在堆内存空间中初始化对应的数据类型的默认值,

  1. int[] array = new int[3];
  2. System.out.println(array[0]);//结果0 没有赋值之前,默认值时对应类型的默认值,int的默认值时0
  3. System.out.println(array[1]);//结果0
  4. System.out.println(array[2]);//结果0
  • 静态初始化两种形式
    • int[] array = {1,2,3,4,5};
    • int[] array = new int[] {1,2,3,4,5};
  • 动态初始化 int[] array = new int[3];