Java数据转换

梦开始的地方: Hello World

public class Hello{
public static void main(String[] args) {
 System.out.println("hello,world~");
}
}

  • 一个源文件中最多只能有一个public类,其他类的个数不限,也可以将main方法写在非public类中,然后指定运行非public类,这样入口方法就是非public的main方法。
  • 使用tab操作,实现缩进默认整体向右边移动,用shift+tab整体向左移
  • jdk=jre+Java开发工具 jre=jvm+核心类库

Java转义字符
  1. \t:一个制表位,实现对齐的功能
  2. \n: 换行符
  3. \: 一个\
  4. \": 一个”
  5. \’: 一个‘
  6. \r: 一个回车 System.out.println(“你好\r哈哈~”);
变量
  1. 变量是程序的基本组成单位 基本要素:类型+名称=值
  2. 变量相当于内存中一个数据存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)
  3. 变量在同一类型范围内不能重名,可以在同一类型范围内不断变化
类型占用内存空间范围
byte [字节]1字节-128~127
short [短整型]2字节-(2 ^15 ) ~ 2 ^15-1 -32768~32767
int [整形]4字节-(2 ^31)~2 ^31-1 -2147483648~2147483647
long[长整型]8字节-2^ 63~2 ^63-1
单精度float4字节-3.403E38~3.403E38
双精度double(常用)8字节-1.798E308~1.798E308
布尔类型boolean1字节true flase 无null
short int-32786~32767

Java数据类型

  1. 基本数据类型

    • 数值型
      • 整数型类:存放整数(byte[1],short[2],int[4],long[8])
      • 浮点(小数)类型:(float[4],double[8])
    • 字符型(char[2]),存放单个字符 ‘a’
    • 布尔型(boolean[1]), 存放true flase
  2. 引用数据类型

    • 类(class)
    • 接口(interface)
    • 数组([])

整数类型

  • Java的整型常量默认为int型,声明long型常量需后加’l’或’L’
  • bit:计算机中最小的存储单位。byte:计算机中最基本的存储单元。1 byte=8 bit。
  • long类型有几个bit? [8*8=64bit]

浮点类型

  • 尾数部分可能丢失,造成精度损失(小数都是近似值)。
  • Java的浮点型常量默认为double型,声明float型常量需后加’f’或’F’
    double num1 = 2.7;  //2.7
    double num2 = 8.1/3;  //接近2.7的一个小数,而不是2.7
    if(num1 == num2){
            System.out.println("相等")
            }
    if(Math.abs(num1 - num2)<0.000001){//比较两个数的差值的绝对值
            System.out.println("差值非常小,到我的规定精度,认为相等~~~");
            }
            System.out.println(Arrays.toString(Math.abs(num1 -num2)));
        }
    

字符类型

  • 字符类型是用单引号( ‘’ )括起来的单个字符,例如:char c1=‘a’; char c2=‘中’; char c3=‘9’;
  • 在Java中,char的本质是一个整数,在输出时,是unicode码对应的字符。
    http.//tool.chinaz.com/Tools/Unicode.aspx
  • char类型是可以进行运算的,相当于一个整数,因为他有对应的Unicode码
  • 可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出
char c1=97;
System.out.println(c1);//a

char c2='a';
System.out.println((int)c2);//97

char c3='韩';
System.out.println((int)c3);//38889

char c4=38889;
System.out.println(c4);//韩
  • 字符和码值的对应关系是通过字符编码表决定的(是规定好)
  • 介绍下字符编码表[sublime测试]
  1. ASCII (ASCII编码表一个字节表示, 一个128个字符,实际上一个字节可以表示256个字符,只用128个)
  2. Unicode (Unicode编码表固定大小的编码使用两个字节来表示字符,字母和汉字统一都是占用两个字节,这样浪费空间)
  3. utf-8 (编码表,大小可变的编码字母使用1个字节,汉字使用3个字节)
  4. gbk (可以表示汉字,而且范围广, 字母使用1个字节,汉字2个字节)
  5. gb2312 (可以表示汉字,gb2312 < gbk)
  6. big5码 (繁体中文,台湾,香港)

布尔类型

  • 适于逻辑运算,一般用于程序流程控制:if条件控制语句 while、do-while、for循环控制语句
boolean pass=true;
if (pass){
    System.out.println("通过考试");
}else{
    System.out.println("未通过考试");
}

基本数据类型转换

  • 自动类型转换

    • 当java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。

    在这里插入图片描述

    int num = 'a';//char - >int  97
    double d = 80;//int - >double  80.0
    
    • 有多种类型的数据混合运算时,系统首先将所有数据转换成容量最大的那种数据类型,然后进行计算

      int n1 = 10; //ok

      float d1 = n1 + 1.1; //错误,n1 + 1.1 => 结果类型是double

      double d1 = n1 + 1.1; //对

      float d1 = n1 + 1.1F; //对 ,n1 + 1.1F => 结果类型是float

    • 当我们把精度(容量)大 的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换
      • int n2 = 1.1; //错误,double => int
      • (byte,short) 和char之间不会相互自动转换
    • 当把具体数赋给 byte 时。先判断该数是否在 byte 范围内,如果是就可以
    • byte short char 它们三者可以计算,在计算时首先转换为int 类型
      • byte b1 = 10; // 对,-128~127
      • int n2 = 1; // n2 是int
      • byte = n2; //错误,如果是变量赋值,判断类型
      • char c1 = b1; //错,byte不能自动转换为char
    • byte short char 它们三者可以计算,在计算时首先转换为int 类型 , boolean不参与转换
      • byte b2 = 1; byte b3 = 2; short s1 = 1;
      • short s2 = b2+ s1; // 错,b2 +s1 => int
      • int s2 = b2+s1; //错,b2 +s1 => int
      • byte b4 = b2+b3; //错 b2+b3 => int
  • 强制类型转换

    • 自动转换类型的逆过程,将容量大的数据类型转换为容量小的数据类型,使用时要加上强制转换符(),但可能造成精度损失或溢出,格外要注意
    • int n1 = (int)1.9;
      System.out.println("n1=" + n1);//造成精度损失
      
      int n2 = 2000;
      byte b1 = (byte)n2;
      System.out.println("b1="+ b1);//造成数据溢出
      
  • 基本数据类型和String类型的转换

    • 基本数据类型 => String 将基本类型的值+" "即可
      int a=1;
      String b= a + "";
      
    • String => 基本数据类型 通过基本类型的包装类调用parseXX的方法即可
    • 字符串 => 字符char 含义是指 把字符串的第一个字符得到解读 s.charAt(0) 得到s字符串的第一个字符
      String s="123";
      int num1 = Integer.parseInt(s);
      double num2 = Double.parseDouble(s);
      
      System.out.println(s.charAt(0));  
      
      char c1='\n';//换行
      char c2='\t';//制表符 ctrl+d
      char c3='\r';//回车
      char c4='\\';//输出\
      char c5='1';//换行
      char c6='2';//换行
      char c7='3';//换行
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值