Java学习日志Day2_常量与变量、两种类型转换、运算符、进制、键盘录入。

本文详细介绍了Java编程中的基础概念,包括常量的分类(如字符串、字符、整数等)、变量的定义与类型、数据类型的隐式与强制转换,以及算术和赋值运算符的使用。此外,还探讨了进制转换和键盘录入数据的操作步骤,是初学者理解Java语法的重要参考资料。
摘要由CSDN通过智能技术生成

一、常量

  1. 定义:程序在执行过程中,其值不发生改变的量。

  2. 分类:

    1).字面值常量
    a.字符串常量,使用双引号包起来的内容:称为"字符串常量"。举例:“10”,“helloworld”;
    b.字符常量,使用单引号包起来的单个内容:称为"字符"。举例:‘a’、‘A’、‘中’;
    (注意事项:键盘上的每一个按键都是"字符"。当前这些字符单独使用的时候,不会计算,只是一个固定的字符;但是,一旦这些参与运算,会计算,每一个字符都对应ASCII码表的值!(ASCII码表:字符A-----65、字符a-----97、字符0-----48);
    c.整数常量(默认十进制);
    d.小数常量;
    e.boolean常量,true/false;
    f.空常量null。

    2).(面向对象)自定义常量

    example:
    常量列表

二、变量

  1. 定义:在程序的执行过程中,其值发生改变的量!

  2. 变量的三要素:

    1). 数据类型 ----- “一种限定”;

    2). 变量名称 ----- “符合 标识符的规则”;

    3). 初始化值 ----- 根据数据类型,给变量名称赋值!

  3. 格式:
    1). 格式1:定义并且初始化
    数据类型 变量名称 = 初始化值;
    int num = 10 ; (分号在Java语言中,表示当前行语句结束!)

    2). 格式2:先定义,在使用之前必须初始化
    数据类型 变量名称;
    /example:
    int num2 ;
    num2 = 10 ;
    /
    变量名称 = 初始化值; (使用这个变量之前,必须赋值; )

  4. Java中的数据类型的划分:

    1). 基本数据类型。(四类八种
    一些变量,没有提示使用什么类型,默认int(根据具体需求)
    ①. 整数类型
    a. byte:字节类型,使用范围:-128~127,占用1个字节;
    b. short:短整型,占2个字节;
    c. int:整数默认类型,(-2^31 - 2^31-1),占4个字节;
    d. long:长整型,(定义系统时间—换算毫秒值) ,占8个字节;
    注意事项:定义long类型,需要在初始化值的后面加上一个标记(L/l)
    ②. 浮点类型:默认double
    a. float:单精度,占4个字节。
    注意事项:需要定义的float需要在值的后面加标记:F/f
    b. double:双精度(默认类型) 。场景:商品价格,占8个字节。
    ③. 字符类型
    char :字符,占2个字节。
    ④. 布尔类型boolean(不会进行类型转换:仅仅只是表示逻辑判断!结果不是true/false)。
    四类八种

    2). 引用数据类型。数组(基本类型,引用类型)、类(具体类,抽象类)、接口。举例:int[ ] arr 、String[ ] args。

  5. 码表:
    gbk (中国中文编码表) 前期:notepad++:ASCII
    gb2312(gbk升级版)
    big-5:大五码 (繁写字体)
    utf-8:一个中文对应三个字节;后期:idea工具utf-8
    iso-8859-1:拉丁文名码表 (考虑都是英文)
    JS :日本系统编码

  6. 定义变量的注意事项:

    1).目前来说:我们定义 “局部变量”,在方法定义中或者方法声明上的变量;

    2).a).先定义,在使用前去赋值,如果没有报错,系统 “可能尚未初始化变量”;b).直接给变量初始化;

    3).Java是强类型语言:不能够将一个变量定义多次;javascript(js),若类型语言:一个变量重复定义的;

    4).定义变量::推荐格式:一行定义一个变量,也可以一行定义多个变量;

    5). 基本数据类型 除了 boolean,不参与运算!

    变量在进行运算的时候,需要保证数据类型一致!

三、两种类型转换——Java中的隐式类型转换和强制类型转换

  1. Java中的隐式类型转换默认类型提升byte,short,char三者之间不转换,一旦参与运算,先转换为int类型!

  2. Java中的强制类型转换
    目标数据类型(目前使用基本类型) 变量名称 = (目标数据类型)(初始化值);
    example:
    int a = 3 ;
    byte b = 4 ;
    byte result = a + b ;
    // 结果为int值,但是接收byte类型;
    报错:不兼容的类型: 从int转换到byte可能会有损失;
    更正:
    byte c = (byte)(a + b) ; //强制类型转换

  3. example:
    定义三个变量
    byte b , b1 = 3 , b2 = 4 ;
    1)b = b1 + b2 ;
    2)b = 3 + 4;
    1)和2)哪句会编译失败!

     1)属于变量相加,需要考虑数据类型问题, 默认类型提升
     
     byte,char,short,三者不转换,一旦参与运算,优先提升int
     
     解决方案:
     		
     		强制类型转换(显示转换)
     		
     		目标类型 变量名 = (目标类型)(初始化值);
     	
     2)正常编译通过:
     	
     	b = 3 + 4 ; 常量相加,---先相加,然后看其结果是否在byte类型的范围内
     	
     	byte :-128 ~127      b = 7
    
  4. example:

byte b = 130 ; 编译会不会有问题;如果有,如何解决,结果是多少?
(byte取值范围:-128~127)

当前结果数据值已经超过了当前类型的范围:所以整数默认int
使用int类型接收:130

 过程:  
默认int类型-----原码  十进制-----二进制 

原码,反码,补码相同
 00000000 00000000 00000000 10000010				130
 
 
byte b = (byte)130 ;


(00000000 00000000 00000000) 10000010	  使用这个补码进行"截取" byte 1个字节
最高符号位		数值位
1				0000010		  补码
-					  1
--------------------------------------
1               0000001		  反码

1				1111110       原码
--------------------------------------
-        64+32+16+8+4+2+0  = -126

(快速十进制与二进制转换——8421码)
1	1	1	1	1	1	1	1
128 64  32   16  8  4   2   1

四、运算符:变量在程序的运行中使用的一些符号!

  1. 算术运算符:

    1).基本的算术运算符:+,-,*,/(默认取整),%(取余数)

    2).扩展的算术运算符:++,-- 场景:统计 / 循环语句中使用

    结论:
    a. 单独使用++/–:无论数据前还是后,都是自增1或者自减1
    b. 参与运算:
    参与运算使用:++/–数据的后面:先进行运算,然后自增或者自减1!
    参与运算使用:++/–数据的前面:先进自增1或者自减1,然后参与运算!

  2. 赋值运算符
    1). 最基本的赋值运算符:=,将=右边的数据赋值左边的变量。
    example:int x = 10 ;
    将10这个数据赋值给int类型的变量x
    注意:=不能写成==(比较运算符)
    2). 扩展的赋值运算符:+=,-=,=,/=,%=
    example:
    int y = 20 ;
    y += 30 ; //类似于 :y = y + 30 ;
    将+=右边的数据和左边的数据相加,在将结果赋值给左边的变量y
    example:
    short s = 1 ;
    1)s = s + 1 ;
    2)s +=1 ;
    哪一句代码编译失败,如何解决;哪一行代码编译成功,说明原因!
    考点: 扩展的赋值运算的特点
    +=,-=,
    =,/=,%= :存在特点 :隐藏了强制类型转换
    s += 1 ; <==>等价于 s = (short)(s+1) ;

  3. 关系(比较)运算符:<,<=,>,>=,==,!=
    这些符号连接的表达式无论是简单还是复杂的,最终都是true或者false。

  4. 逻辑运算符

    1). 基本的逻辑运算符
    a. 逻辑单与&: 并列关系
    特点:有false,则false!
    b. 逻辑单或|: :满足一个即可
    特点: 有true,则true
    c. 逻辑异或^:
    特点:相同则为false,不同则为true
    简单记:男女关系
    男女,女男 : true
    女女,男男 : false
    d. 逻辑非!:
    非true,则false;非false,则true;偶数给非是它本身!

    2). 扩展的逻辑运算符
    逻辑双与&&:短路效应,左边为false,右边不执行;
    逻辑双或||:短路效应,左边为true,右边不执行。

  5. 注意 + 作用:
    1)算术运算符 :加法运算
    2)表示一个数据:正数 +7
    3)字符串的拼接符号
    字符串+任何数据=“新的字符串”
    任何数据+字符串 ="新的字符串"

五、(扩展内容)进制:数据进位一种方式。

  1. 进制的由来
    进制的由来

  2. 不同的进制

    1). 二进制,逢二进1,由0,1组成 ,以"0b"开头;

    2). 八进制,逢八进1,由,0,1,2,3,4,5,6,7组成 ,以"0"开头;

    3).十六进制,逢十六进1,由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,以"0x"开头;

    4).十进制:逢十进1, 整数默认。

    单位换算:
    1byte = 8bit (8个比特位:8个电信号 ) :最基本二进制数据
    1kb = 1024 byte
    1m = 1024 kb
    1g = 1024m
    1t = 1024g

  3. 任何进制转换十进制:
    任何进制转化为十进制

  4. 8421码——十进制与二进制间快速转换
    8421码

  5. 有符号位的数据表示法:
    在计算机内,有符号数有3种表示法:原码、反码和补码。所有数据的运算都是采用补码进行的。

    a. 原码:就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

    b. 反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外

    c. 补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1
    上
    中
    下
    负数

六、(扩展内容)键盘录入

键盘录入数据的操作步骤:
1). 导包:java.util.Scanner; (文本扫描器),以后在Java语言中:
只要不是java.lang.*包下的类,都需要导包
书写位置:在class上面
import java.util.Scanner;
2). 创建文本扫描器对象:
Scanner 对象名 = new Scanner(System.in) ;
3). 提示用户,并接收数据 (回车—告诉jvm “录入完毕”)
System.out.println(“请您输入一个数据:”) ;
int 变量名 = 对象名.nextInt() ;

4). 使用这个变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

igfff

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值