Java第2课_①变量 ②基本数据类型 ③数据类型转换 ④进制的转换

快捷键

psvm  :快速声明main方法(程序入口)
    public static void main(String[] args){}
sout  :快速声明系统输出语句 System.out.println()
    soutv :打印一个值
    soutm :打印类中某个方法名
    soutp :打印方法的参数名和参数值
    

1、变量

概念

计算机中能够存储计算结果或能够表达值得一个抽象概念
变量:是会变化的量,本质上是一个在内存中一个存储单元(存储的就是数据)

声明创建

数据类型 变量名 = 变量值

例如:int a = 10;

使用注意事项

1、变量的值是可以变换的
2、变量名在同一个作用域内是唯一的,不能多次创建同名的变量
3、变量要先创建,再使用
4、变量需要进行初始化赋值才能使用

变量应用的总结

总结:
    对于变量的赋值操作,需要看变量名前面的数据类型
    	若数据类型的地方写的是int,则表示这个变量名只能存储整数类型的值
    	若数据类型的地方写的是double,则表示这个变量名能存储小数类型的值
    	若数据类型的地方写的是String,则表示这个变量名能存储字符串类型的值
    
            注意:字符串类型的值可以是整数、小数、字母、中文内容
                凡是使用双引号引起来的内容,我们都叫字符串

2、基本数据类型

在Java中数据类型分为两大类:①基本数据类型 ②引用数据类型
基本数据类型:里面有8个类型,分别为:整数类型、小数类型、布尔类型、字符类型

类型具体类型
整数类型byte、short、int、long
小数类型float、double
布尔类型boolean
字符类型char

上面的类型中没有String,因为String类型不是基本数据类型,属于引用数据类型

注意:对于Java中任何类型而言,只要它不属于基本数据类型范围内,那么它就是引用数据类型

整数类型

数据类型类型含义字节个数取值范围
byte字节类型1个字节(8位bit)-27~27-1(-128~127)
short短整型2个字节(16位bit)-215~215-1
int整型4个字节(32位bit)-231~231-1
long长整型8个字节(64位bit)-263~263-1
System.out.println("byte类型的最大值" + Byte.MAX_VALUE);
System.out.println("byte类型的最小值" + Byte.MIN_VALUE);

System.out.println("short类型的最大值" + Short.MAX_VALUE);
System.out.println("short类型的最小值" + Short.MIN_VALUE);

System.out.println("int类型的最大值" + Integer.MAX_VALUE);
System.out.println("int类型的最小值" + Integer.MIN_VALUE);

System.out.println("long类型的最大值" + Long.MAX_VALUE);
System.out.println("long类型的最小值" + Long.MIN_VALUE);

在这里插入图片描述

注意:

1、赋值的时候需要注意,不要超过类型的范围,否则就会报错

2、声明创建long类型数据的时候,若值超过int类型的范围,则需要在值的后面添加L或l

3、在Java中使用的任何整数数字,都会被默认识别为int类型

小数类型(浮点类型)

数据类型类型含义字节个数取值范围精度问题
float单精度浮点类型4个字节(32bit)1.4E-45~3.4028235E38小数点后保留7位
double双精度浮点类型8个字节(64bit)4.9E-324~1.7976931348623157E308小数点后保留15位
System.out.println("float类型的最大值 = " + Float.MAX_VALUE);
System.out.println("float类型的最小值 = " + Float.MIN_VALUE);

System.out.println("double类型的最大值 = " + Double.MAX_VALUE);
System.out.println("double类型的最小值 = " + Double.MIN_VALUE);

在这里插入图片描述

注意:

1、声明创建float类型数据的时候,需要在值的后面添加F或f

2、在Java中所写的所有小数,默认都是double类型

3、float和double类型进行运算时会出现精度丢失的问题,可以通过BIGDecimal解决精度丢失的问题

布尔类型

数据类型类型含义字节个数取值范围
boolean判断1个字节true false

注意:

1.boolean类型一般用于判断,判断某个条件是否成立(①成立,②不成立) if条件判断

2.boolean类型的数据只能取true或者false,不能为其他的内容

字符类型

数据类型类型含义字节个数取值范围
char单个字符2个字节\u0000 ~ \uffff

注意:

1.char类型的数据需要使用单引号引起来,只能存放单个数据(一个字母、一个数字、一个中文)

2.char类型的值是可以进行运算的

在这里插入图片描述

        //创建一个char类型的变量
// char 单个字符
//第一种创建方式
        char c1 = '1';
        char c2 = 'a';
        char c3 = '我';
        System.out.println("c1 = " + c1);
        System.out.println("c2 = " + c2);
        System.out.println("c3 = " + c3);

//第二种创建方式
//ASCII码表 ---> 是把数字、符号、字母分别映射为一个数字
        char c4 = 126;
        System.out.println("c4 = " + c4);


//第三种创建方式
        char c5 = '\u0000';//空格
        char c6 = '\u1635';
        char c7 = '\uffff';
        System.out.println("c5 = " + c5);
        System.out.println("c6 = " + c6);
        System.out.println("c7 = " + c7);
转义字符
转义字符含义
\n换行
\t制表符tab 4个空格
\b退格 backspace
\r将鼠标移动到下一行开头的位置
System.out.println("静夜思\n\t作者:李白\n床前明月光\n疑是地上霜\n举头望明月\n低头思故乡\n  ");

在这里插入图片描述

3、数据类型转换

在基本数据类型中除了boolean类型之外,其他的数据类型可以自动转换成其他的类型,需要遵守其如下的规则:
    	      char
    byte ---> short ---> int ---> long ---> float ---> double
      1         2          4       8          4          8
    
上面的规则中,从左往右,其数据类型是可以自动转换的;例如:byte类型可以自动转换为int类型
    		从右往左,其数据类型是不可以自动转换的,需要我们手动进行转换;例如:double类型需要手动转换为int类型

数据类型转换可以分为两类:

1.自动类型转换:把小的类型转换为大的类型

//创建一个byte类型的变量,存储的值为100
byte b = 100;
//创建一个int类型的变量,存储的值为变量b的值
//byte ----> int
int i = b;
System.out.println("i = " + i);

//创建一个double类型的变量,存储的值为变量b的值
//对于double类型的变量而言,之前我们设置的值都是带有小数点的,
// 其实也可以设置一个整数值,只不过会在整数值的后面添加一个.0  来表示这是一个小数
//byte ----> double
double d = b;
System.out.println("d = " + d);


int number1 = 15;
short number2 = 3;
//当有两个不同类型的数据进行运算时,所得到的结果的类型就是两个类型中较大的那个类型
int result = number1 + number2;
System.out.println(number1 + number2);//18

2.强制类型转换:把大的类型转换为小的类型

//创建一个int类型变量,存储的数据为15
int i = 15;
//创建一个byte类型的变量,存储的数据为变量i的值
// int ----> byte
//报错的原因:int类型的数据赋值给了byte类型的变量,类型不一致
//解决办法:需要使用() 强制转换符号(造型符号)
byte b = (byte)i;
System.out.println("b = " + b);

//原因:int类型数据赋值给了short类型的变量,大的类型赋值给小的类型
//需要把int类型转换为short类型的,所有需要在()里面填写short类型
short s = (short) i;

//把变量i的值赋值给变量d
//int ----> double
double d = i;

double d2 = 3.9999;
int number = (int)d2;
//把变量d2的值强制转换为int类型的数据,就是从小数变成整数
//只会保留整数部分,小数部分直接丢掉不要,不是四舍五入
System.out.println("number = " + number);//3


//重新给变量d2赋值
d2 = 128;
//double  ---> byte
byte b2 = (byte) d2;
System.out.println("b2 = " + b2);//-128

//整数会被默认为int类型
int result1 = 3555 / 1000 * 1000;
System.out.println("result1 = " + result1);//3000

double result2 = 3555 / 1000 * 1000;
System.out.println("result2 = " + result2);//3000.0

double number3 = 3555;
int number4 = 1000;
System.out.println(number3 / number4 * number4);//3555.0

总结:使用强制类型转换时,会出现数据丢失的情况,一般尽量避免使用

4、进制的转换

生活中:十进制

电脑中:二进制、八进制、十六进制

十进制转二进制

129 ----->100000012取余数

二进制转十进制

10110110 ----->182
    0*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4 + 1*2^5 + 0*2^6 + 1*2^7 =2+4+16+32+128=182

二进制转换为八进制

从最低位(最右边)开始  ,每三个数为一位   使用421进行求和
    110010101 ---------> 625
    	
    	110 010 101
    	421 421 421
    --------------------
    	 6   2   5
    
    1011010110 ---------> 1326
    	
    	001 011 010 110
    	421 421 421 421
    --------------------
    	 1   3   2   6

八进制转二进制

把八进制中的每一个数使用421进行运算,分解看是由哪几个求和得到的
    625 ---------->110010101
    	
    	6     2      5
       421   421    421
       110   010    101	
    
    516  ----> 101001110
        5     1     6
       421   421   421
    -----------------------
       101   001   110 

二进制转换为十六进制

记住:从最低位(最右边)开始  ,每四个数为一位   使用8421进行求和
    
001011010111  ---->  2d7
    
  0010    1101   0111
  8421    8421   8421
----------------------------
   2       d      7 
    
11100110011 ---->  733
    
    0111  0011  0011
    8421  8421  8421
---------------------------
     7     3     3

十六进制转换为二进制

把十六进制中的每一个数使用8421进行运算,分解看是由哪几个数求和得到的
    
F27 ----> 1111 0010 0111
    
    F       2     7
   8421   8421  8421
---------------------------
   1111   0010  0111 
    

2b ----> 0010 1011
    
    2       b 
  8421    8421
---------------------
  0010    1011  

剩下的十进制转换为八进制或转换为十六进制

以及反过来八进制或十六进制转换为十进制的这两种情况

都需要先转换为二进制之后,再去进行转换

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值