java中数据类型转换与基本数据类型使用

100 阅读2分钟

java基础

1 、编译与运行

在学习java的时候,一开始肯定是在控制台上手动的进行编译与运行,这里记录一下这两个方法

- 编译
    javac BreakDetail.java
- 运行
    java BreakDetail

2、数据类型与包装类

  • 基本数据类型所占的空间字节大小
类型初始容量内存中空间(字节)包装类
byte【字节】01Byte
short02Short
int04Integer
long\u0000(十六进行表示0字符)8Long
floatfalse4Float
double0.08Double
boolean0.01Boolean
char02Character
  • 基本数据类型转引用数据类型,以int-> Integer , Integer ->int 为例(一次类推):

int-> Integer :调用了Integer的ValueOf方法

Integer ->int:调用了Integer的intValue()方法

浮点数

  • 浮点数的相等比较

确定浮点数的精度,进行减法比较,不能直接==比较

例如:钱 最小精度为0.01 3.010钱 与 3.012 是否相等

double a = 3.010;
double b = 3.012;
if(a-b<0.01) {System.out.pring("相等!")}
  • 浮点数的存放机制

浮点数在机器中的存放形式:浮点数= 符号位+指数位+尾数位

5.12e2=512

5.12E-2=0.0512 e,E就是10的意思

精度推荐使用double,准确狠多

字符char

  • 关于字符编码

unicode编码:两个字节表示一个字符

utf-8:大小可变的编码,一个字母使用一个字节,汉字使用两个字节;

gbk:表示汉字,一个字母使用一个字节,汉字使用两个字节;

big5:表达繁体中文。

低精度向高精度转换.png

  • 字符与数字的转换
    char a = 98;
    System.out.println(a);  // b
    char c1 = a;
    System.out.println((int)c1); // 98
    char c2= 98;
    System.out.println(c2);// b

混合运算时需要注意

  • 混合运算时,系统会将所有数据类型转化为最大容量的数据类型;

  • 浮点:1.1 会转化为double ,1 会转化为int,byte,short这些如果进行混合运算会自动转化为int,如果接受类型是byte、short、char就会报错!

    int a = a;

    float b = a+1.1; // 报错,类型是double ,1.1F即可

  • (byte、short)和char不能自动转化

int a =1;
byte b =a;
// 报错,如果是赋值变量直接判断类型;
byte c=2;
short d = 3;
byte f = c+d;  // 报错
  • 数字与字符串的转化,两种方法

方法1:直接相加

方法2:通过包装类的parse方法

        String a = "1";
        int i = Integer.parseInt(a);
  • 复合运算符运算会进行类型转化

+= 会将右边的表达式强制转换为左边的数据类型

byte b = 3;
b+=2;    // 等价于 b=  (byte)(b+2);
b++;   // 等价于 b=b+1;

break与return的细节

  1. break可以直接退出当前循环,并不是所有循环
  2. break中label的使用(不建议使用)
    lable1:
    for (int i = 0; i < 5; i++) {
        lable2:
        for (int j = 0; j < 10; j++) {
            if(i==2) {
                break lable2;
            }
        }
    }

定义lable可以使用break退出指定label,不建议使用,降低代码的可读性

return细节

  • 用在方法中,跳出方法
  • 用在main方法中,退出程序

基本数据类型与引用数据类型在jvm中的存储

  • 基本数据类型存储在栈中
  • 引用数据类型地址在栈中,具体数据在堆中,也可能存在常量池,例如String
  • 创建的引用数据类型:String、数组、类、接口

值传递与地址传递.png