一、

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.
数值转换图:
8大基本类型转换图
练习:圆形面积

    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
        
    }
    
}




















东霓&西决&南音
13 声望0 粉丝

新人驾到,多多关照