关于java:java-从基础do入门二-数据类型

4次阅读

共计 2948 个字符,预计需要花费 8 分钟才能阅读完成。

一、

1, 根本类型 八种
    -- 整数:byte short int long
    -- 小数:float double
    -- 布尔:boolean
    -- 字符:char  
2, 根本类型对应的工具类:

根本类型: byte;short;int;long;float;double;char;boolean
工具类:Byte;Short;Integer;Long Float;Double; Character; Boolean

//3, 通过点. 来调用工具类的性能
//4, 打印变量时, 千万不要用双引号  

//1, 整数类型的取值范畴 byte short int long
例如:创立变量, 记录最大值: 变量类型 变量名 变量值

  byte max = Byte.MAX_VALUE ;
System.out.println("max");

float–Float double–Double
区别:float 是单精度, 对小数位运算不准确
区别:double 是单精度, 对小数位运算十分精。

char-- 字符型 -- 一个字符
char c = 'a' ;// 一个字母
char c2 = '1' ;// 一个数字
char c3 = '中' ;//char 类型能不能存一个中文汉字?  --  能够
char c4 = 126 ;// 能够间接存数                                 System.out.println(c);                                        System.out.println(c2);            
System.out.println(c3);

char 类型是字符型, 容许你间接存入一个数字自身. 然而, 应用时还是要用字符的.
应用时, 底层会去查问 ascii 码表, 数字对应的字符是啥, 而后用字符自身.
ascii 码表里, 规定了 0~127 数字对应的字符,char 类型的取值范畴是 0~65535.
数值转换图:

练习: 圆形面积

    package cn.tedu.basic;
    import java.util.Scanner;
    // 这个类用来测试  圆形面积
    // 总结
    //1, 批改变量的值, 既然被定义成了变量, 他的值就能够始终被批改
    //2, 变量的值为了写的更加灵便, 能够动静接管键盘输入的值
    //3, 拿着变量的值, 带入公式, 运算后果, 并交给 area/zhouchang 去保留
    //4, 动静拼接字符串, 用 + 实现 

public class Test3_Area {

public static void main(String[] args) {
    double r = 5.5 ;// 定义变量, 记录圆的半径
// 动静的接管键盘输入的值
r = new Scanner(System.in).nextDouble() ;// 批改变量的值
            

double area = 3.14 r r ;
// 圆形面积:3.14 r r
System.out.println(“ 圆的面积是:”+area);// 打印面积

//TODO 圆的周长
double zhouchang = 2*3.14*r ;
        }
    }
--5, 练习: 变量替换
package cn.tedu.basic;
import java.util.Scanner;

// 这个类用来测试 变量值替换

public class Test4_Exchange {public static void main(String[] args) {
    //1, 创立变量 a 和 b
    int a = new Scanner(System.in).nextInt() ;
    int b = new Scanner(System.in).nextInt() ;
    System.out.println("替换前:a=1,b=2");
//2, 替换值
    int c = a ;// 把 a 的值交给 c 保留
    a = b ;// 把 b 的值交给 a 保留
    b = c ; // 把 c 的值交给 b 保留
    TODO 3, 打印
            }
        }
--6, 援用类型 -- 数组 /OOP ...

二, 根本类型的字面值(5 条)

package cn.tedu.basic;

这个类用来测试 字面值
public class Test5 {

public static void main(String[] args) {
1,java 里整数有 4 种类型, 那么, 咱们写的整数到底字面值是什么类型呢?--int
int a = 1000 ;
2, 在取值范畴内, 能够间接赋值
byte m = 123 ;
byte n = 128 ;// 报错, 右侧是 int 类型, 左侧的 byte 类型基本就存不下
//char o = 65536 ;// 报错, 右侧是 int 类型, 左侧的 char 类型基本就存不下
3,java 里小数有 2 种类型, 那么, 咱们写的小数到底字面值是什么类型呢?--double
double x = 9.9 ;
4, 字面值的后缀 lfd ,  l-long  f-float  d-double  
报错, 因为有右侧字面值是 int 类型, 然而, 超出了 int 范畴!!-- 加后缀 L 变成 long 类型
long b = 10000000000L;
报错, 右侧是 double 类型 8 字节, 左侧是 float 类型 4 字节, 存不下!!-- 加后缀 f 变成 float 类型
float y = 9.9f ;
double z = 3d;
// 右侧就从字面值 int 类型转成了 double 类型
    }
}

三, 根本类型的类型转换

--1, 从小到大: 拿着小类型给大类型赋值 -- 隐式转换
--2, 从大到小: 拿着大类型给小类型赋值 -- 显式转换
--3, 测试
    package cn.tedu.basic;

这个类用来测试 转换
public class Test6 {

  public static void              main(String[] args) {从小到大 ( 隐式转换) byte 小类型 -- long 大类型
byte a = 10 ;
拿着右侧的小类型 a, 给左侧的大类型 b 去赋值 -- 能够间接赋值!!
long b = a ;
            
从大到小 (显式转换) double-int
double m = 10;
拿着右侧的大类型 m, 给左侧的小类型 n 去赋值 -- 不能够!! 须要强转
int n = (int) m ;
            
练习: 小转大 long-float
long x = 10 ;
float y = x ;// 隐式转换
            
大转小:double-float
double o = 9 ;
float p = (float)o ;// 显示转换
        }
    }

四, 运算规定(5 条)

package cn.tedu.basic;
// 这个类用来测试 运算规定
public class Test7 {public static void main(String[] args) {
1, 计算结果的数据类型,与最大类型统一
        System.out.println(3/2); //1 , int/int->int
        System.out.println(3d/2); //1.5 , double/int -> double
        System.out.println(3.14*10);//31.4 , double*int -> double
        
2,byte,short,char 三种比 int 小的整数,运算时会先主动转换成 int
        byte a = 1;
        byte b = 2;
右侧拿着两个 byte 类型的值, 做运算时, 会变成大类型 int 类型 -- 须要强转
        byte c = (byte) (a*b);
        
3, 整数运算溢出  -- 因为在运算时曾经超出了 int 的范畴!!-- 须要加后缀 L 扩大范围
光速运行一年的运行是多少米?-- 3 亿 m /s
System.out.println(300000000L * 60 * 60 * 24 * 365);
        
4, 浮点数的非凡值 -- 因为小数运算中, 呈现了不应该呈现的景象: 分子或者分母为 0 了!!
        System.out.println(3.14/0);//Infinity 
        System.out.println(0/0.0);//NaN
        
    }
    
}



















正文完
 0