写点什么

Java 基础 | 常量、数据类型、变量、类型转换、运算符

作者:几分醉意.
  • 2022-10-26
    安徽
  • 本文字数:3448 字

    阅读完需:约 11 分钟

Java基础 | 常量、数据类型、变量、类型转换、运算符

注释

注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。注释只是为了提高可读性,不会被计算机编译。


  1. 单行注释 //

  2. 注意://后面跟的不会被计算机编译

  3. 多行注释 /* */

  4. 注意: / *中间写的不会被计算机编译 */

常量及其分类

常量:在程序运行期间,固定不变的量。


常量的分类:


  1. 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:"abc","Hello","123"

  2. 整数常量:直接写上的数字,没有小数点。例如: 100 、200、0、-100

  3. 浮点数常量:直接写上的数字,有小数点。 例如: 2.5、-3.14、0.0

  4. 字符常量:凡是用单引号引起来的单个字符,叫字符常量。两个单引号中间必须有且只能有一个字符。例如:'a'、'3'、'你'

  5. 布尔常量:只有两种取值。true,false。

  6. 空常量:null。代表没有任何数据。

数据类型

基本数据类型有八种分为 4 类:整数型、浮点型、布尔型、字符型。整数型:byte、short、int、long 浮点型:float.、double 布尔型:boolean 字符型:char


引用数据类型字符串、数组、类、接口、Lambd


注意事项:


  1. 字符串不是基本类型,而是引用类型

  2. 浮点型可能是一个近似值,并非精确的值

  3. 数据范围与字节数不一定相关

  4. 浮点数当中默认类型是 double。如果一定要使用 float 类型,需要加上一个后缀 F 如果是整数,默认为 int 类型,如果一定要使用 long 类型,需要加上一个后缀 L。推荐使用大写字母后缀。


拓展:


  1. 对于 byte\short\char 三种类型来说,如果右侧赋值的数值没有超过范围,那么 javac 编译器会自动隐含的为我们补上一个(byte)(short)(char)。如果右侧没有超过左侧的范围,编译器补上强转。如果右侧超过左侧的范围,那么编译器报错。例如:byte num1 = 30; 30 是 int 类型,但是 30 没有超过 byte 的范围,编译器直接补上一个(byte)强转 byte num2 = 120; 120 是 int 类型,但是 120 超过了左侧 byte 类型的范围,编译器直接报错。

  2. 在给变量进行赋值的时候,如果右侧的表达式当中全是常量,没有任何变量,那么编译器 javac 将会直接将若干个常量表达式计算得到结果。short num1 = 5+8; //等号右边全都是常量,没有任何变量参与运算编译之后,得到的.class 字节码文件当中相当于【直接就是】short num1 = 13;右侧的常量结果数值,没有超过左侧范围,所以正确。但是注意:一旦表达式当中有变量参与,那么就不能进行这种优化了。例:short num1 = 5+a+8;

变量

变量: 程序运行期间,内容可以发生改变的量。


格式:1.数据类型 变量名称; / / 创建一个变量 2.变量名称 = 数据值; / / 赋值,将右边的数据值,赋值交给左边的变量

3.一步到位的格式: 数据类型 变量名称 = 数据值; //在创建一个变量的同时,立刻放入指定的数据值


使用变量注意事项:


  1. 变量名不能重复

  2. 对于 float 和 long 类型来说,字母后缀 F 和 L 不要丢掉

  3. 如果使用 byte 或者 short 类型的变量,那么右侧的数据值不能超过左侧类型的范围

  4. 没有赋值的变量不能直接使用,一定要赋值之后使用

  5. 变量使用不能超过作用域的范围。【作用域】:从定义变量的一行开始,一直到直接所属的大括号为止。(相当于局部变量,只能在所在的括号使用)

类型转换

自动类型转换:


  1. 特点:代码不需要进行特殊处理,自动完成

  2. 规则: 数据范围从小到大(右边的要比左边的小)例如:long a=100;左边是 long 类型,右边是默认的 int 类型,左右不一样一个等号代表赋值,将右侧的 int 常量,交给左侧的 long 变量进行存储 int——>long 符合了数据范围从小到大的要求,这一行代码发生了自动类型转换


强制类型转换:


  1. 特点:代码需要进行特殊的格式处理,不能自动完成

  2. 格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的数据;例如: int num = (int)100L // 就是要转成什么类型 在前面加个括号,里面写上要转的类型


强制类型转换注意事项:


  1. 一般不推荐使用,因为有可能发生精度损失(小数转整数,所有小数位都会被舍弃掉),数据溢出(long 转 int,如果 long 超过 int 最大范围就会溢出)

  2. byte/short/char 这三种类型都可以发生数学运算,例如‘+’。(一旦 char 发生数学运算,那么字符就会按照一定的规则翻译成为一个数字,ASCLL 码表,Unicode 码表)48-'0' 0 到 9 以此类推; 65-'A' A-Z 以此类推; 97-'a' a-z 以此类推

  3. byte/short/char 这三种类型在运算的时候,都会被首先提升成为 int 类型,然后在计算。

  4. boolean 类型不能发生数据类型转换

运算符

算术运算符

+, -, * ,/, % 。% 两个数字相除取余数,例如:6%4,结果就等于 6/4 取余数,结果等于 2


注意事项:


  1. 对与一个整数的表达式来说,除法用的是整数,整数除以整数,结果仍是整数不看余数。。只看商,

  2. 一旦运算当中有不同类型的数据,那麽结果将会是数据类型范围大的那种。


四则运算‘+’常见的三种用法:


  1. 对于数值来说,那就是加法。

  2. 对于字符 char 类型来说,在计算机之前,char 会被提升为 int,然后再计算。char 类型字符,和 int 类型数字,之间的关系对照表:ASCII、Unicde

  3. 对于字符串 String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。任何数据类型和字符串进行连接的时候,结果都会变成字符串。

自增自减运算符

自增运算符:++自减运算符:--


基本含义:让一个变量涨一个数字 1,或者让一个变量将一个数字 1


使用格式:写在变量名之前,或者写在变量名之后。例如:++num,也可以 num--


使用方式:1. 单独使用: 不和其他任何操作混合,自己独立成为一个步骤。 例如: num++2.混合使用:和其它操作混合,例如与赋值混合,或者与打印操作混合,等。


使用区别:1. 在单独使用的时候,前++和后++没有任何区别。也就是:++num;和 num++;是完全一样的。2. 在混合使用的时候,有重大区别 A. 如果是【前++】,那么变量【立刻马上+1】,然后拿着结果进行使用。【先加后用】


例:a=10; print(++a); 那么变量先加 1 再打印 输出 11 a 为 11


B. 如果是【后++】,那么首先使用变量本来的数据,【然后再让变量加一】。【先用后加】


例:a=10; print(a++);那么先打印变量在加 1,这时输出 10,a 为 11


注意事项:只有变量才能使用自增、自减运算符。常量不可发生改变,所以不能用。

赋值运算符

基本运算符:就是一个等号“=”,代表将右侧的数据交给左侧的变量。 例:int a=30;


复合赋值运算符:


+=    -=    *=    /=       %=     
复制代码


例如: a+=3 相当于 a=a+3 例如:b-=4 相当于 b=b-4 例如:c**=5 相当于 c=c*5 例如:d/=6 相当于 d=d/6 例如:e%=7 相当于 e=e%7


注意事项:


  1. 只有变量才能使用赋值运算,常量不能进行赋值。

  2. 复合赋值运算符其中隐含了一个强制类型转换。

比较运算符

大于: >小于: <大于等于: >=小于等于: <=相等: == 【两个等号连写才是相等】 符号两边数据结果相等结果是 true 不相等: != 如果符号两边的数据不相等,结果是 true。


注意事项:


  1. 比较运算符的结果一定是一个 boolean 值,成立就是 true,不成立就是 false。

  2. 如果进行多次判断,不能连着写。数学当中的写法,例如:1<x<3 程序当中不允许这种写法,不能连着写。

逻辑运算符


&&,||,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定性能


例 1:int a=10; System.out.println(3>4 && ++a<100)可以看出第一个条件就不成立,结果一定是 false,所以右边的条件不会执行,a 不会自增加一例 2: int b=20; System.out.println(3<4 || ++b<100); 可以看出第一个条件就成立,结果一定是 true,所以后面的条件将不再执行,b 不会自增加一


注意事项


  1. 逻辑运算符只能用于 boolean 值。

  2. 与、或,需要左右各有一个 booklean 值,但是取反只要唯一的一个 booklean 值即可。

  3. 与、或两种运算符,如果多个条件可以连续写两个条件:条件 A && 条件 B 多个条件:条件 A && 条件 B 对于 1<x<3 的情况,应该拆成两个部分,int x=2;1<x && x<3;

三元运算符

一元运算符: 只需一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--。二元运算符: 需要两个数据才可以进行的操作的运算符。例如:加法+、赋值=三元运算符: 需要三个数据才可以进行的操作的运算符。


三元运算符格式:数据类型 变量名称 = 条件判断 ? 表达式 a : 表达式 b;


流程:首先判断条件是否成立:如果成立为 true,那么将表达式 a 的值赋值给左侧的变量;如果不成立为 false,那么将表达式 b 的值赋值给左侧的变量;二者选其一。


注意事项:


  1. 必须同时保证表达式 a 和表达式 b 都符合左侧数据类型的要求。

  2. 三元运算符的结果必须被使用。不能直接写 3>4 ? 5:6;要么按格式写 int num= 3>4 ? 5:6;将它结果赋值给 num,要么直接打印 System.out.println(3>4 ? 5:6),这样它的结果也算使用了。

发布于: 刚刚阅读数: 5
用户头像

几分醉意.

关注

还未添加个人签名 2022-10-22 加入

还未添加个人简介

评论

发布
暂无评论
Java基础 | 常量、数据类型、变量、类型转换、运算符_Java、_几分醉意._InfoQ写作社区