常变量/进制转换/数据类型/运算符(算术运算符 /赋值运算符/比较(关系)运算符 /逻辑运算符 (使用居多) /位运算符(了解) /三元(三目)运算符(使用居多))

    科技2023-10-17  104

    一 常量/变量 定义 二 进制的组成 二 JAVA中数据类型 四 JAVA 中的运算符 一 常量: 在程序的执行过程中,其值不发生改变的量! 分为两大类: 1)字面值常量

    字符串常量 使用双引号括起来的内容 举例:"我爱高圆圆","helloworld","aa" 字符常量 使用单引号括起来的单个内容 举例: '0','a','A' 整数常量: 整数:默认十进制数据 100,65,1000 进制---整数常量范畴! 小数常量 3.1415926 12.34 布尔常量 true/false 空常量:null 自定义常量(后面:面向对象部分讲解) 关键字:final有关

    变量: 在程序运行过程中,其值不断发生改变的量

    变量的三要素: 1)数据类型 2)变量名(遵循标识符的规则) 3)初始化值

    定义变量的注意事项:

    1)给变量命名的时候:见名知意 2)变量尽量给一个初始化值,或者在使用之前给定一个初始化值 如果使用之前都没有初始化,报错(在方法定义中变量:局部变量) 3)Java是一种强类型语言,规定了同一个变量名不能定义多次(提示:已经定义了!) 强:语法规则 书写格式 前端:javascript:(js):弱类型语言 var a = 10 var a = 20 4)定义变量的时候,书写格式 数据类型 变量名 = 初始值 ; (分号一定要带,表示语句结束!) 在同一行上,一般定义一个变量(有的面试题:一行定义多个变量)

    二 进制的组成规则

    二 进制:组成:0,1, 以0b开头 0b100 八进制:组成:0,...7组成,以0开头 0100 十六进制:组成:0...9,a..f,组成,以0x开头 0x100 十进制:整数默认十进制 任意进制---十进制

    进制的转换

    位权展开法 系数:每个位上的数据值本身(1:表示万位,2:表示千位....) 基数:X进制---十进制:基数X 权值: 从右边开始,并且从0开始编号,给基数上进行编号(0,1,2,3,4) 八进制:从右边开始每三个位一组 ,左边不够补0,计算出每个三位上十进制 eg:十进制 10110 十六进制:从右边开始每四个位一组,左边不够的补0,计算出每个位上的十进制 eg: 十六进制 1100001

    8421码

    1 1 1 1 1 1 1 1 二进制数据都是1 128 64 32 16 8 4 2 1

    十进制的转换:

    用当前十进制数据除以基数(十进制--X进制:基数X),一直除到商为0,余数反转

    有符号位的数据表示法

    正整数: 原码,反码,补码都相同 负整数: 反码是在原码的基础上,最高符号位不变,数值位按位取反(0变1,1变0) 一个负整数:知道原码----求补码 规律: 1) 当前二进制原码 2) 最高符号位不变,数值位按位取反-----反码 3)最高符号位不变,数值位末尾+1------补码

    三 Java中数据类型:

    基本类型.... int,boolean,double,float,long,byte,short... 运算符号: 面向对象部分:extends(继承) interface(接口) abstract(抽象) main:不是关键字:main(): 程序的入口 (能够被Java虚拟机 jvm识别) 计算机语言的这些标点符号:全部都是英文符号(不能出现中文):设置输入法:中文时使用英文标点! Java中数据类型划分:(重点) A)基本数据类型:四类8种 以后开发中:int(最多),double,long,char,boolean(判断时用) 整数类型:(默认int), byte:字节类型 占1个字节 取值范围;-128~127(考点) short:短整型 占2个字节 int:整数 占4个字节 long:长整型 占8个字节 浮点类型:默认是double 单精度:float :占4个字节 双精度:double :占8个字节 字符类型 char: 占2个字节() char c = '中' ; //中文存储:默认的编码格式:dos控制台: //编码格式: //gbk:中国中文编码表 :一个中文对两个字节 //gb2312:gbk升级版本(包含特殊的中文字符) //utf-8:一个中文对应三个字节 //iso-8859-1:拉丁文码表 布尔类型 boolean 占1个字节 boolean 类型不进行数据转换(判断去使用) B)引用数据类型:数组,接口,类(具体类,抽象类) 面向对象讲 JavaWEB/JavaEE:研究引用类型!

    定义long类型的注意事项:

    需要在当前变量值的加上标记:L或者l(建议大写L):描述当前变量是长整型 long类型---------------->系统时间(精确到毫秒),时间..... 定义float类型的注意事项: 在变量值的后面标记当前是一个单精度变量:F/f

    基本类型:四类八种

    //引用类型: (重点) //数组:... //类 //代表:String :字符串类... //接口 :有自己的写法规则

    变量在进行运算的时候,需要保证变量的类型一致:最终使用的该数据类型接收即可! 在运算的时候,变量的数据类型不一致的情况 方式: 1.隐式类型提升:

    byte,short,char,三者之间互相不转换,一旦他们参与运算, 数据类型优先提升int类型(考点)

    2.强制类型转换

    书写格式: 目标数据类型 变量名 = (目标数据类型)初始化值; 强制类型转换: 不要随意使用,除非一些业务需求必须使用的时候才能用! 强制类型:会损失数据的精度

    3.如果byte的值超出了范围,如何解决这个问题

    解决:强制类型转换 原,反,补-----补码进行截取---->反码---->原码

    关于+

    1)表示数据是一个正整数 2)表示算术运算符中的加法运算 3)字符串拼接符号

    看程序,写结果

    字符串+(拼接符号)任何数据= 新的字符串 字符一旦参与运算,就需要寻找ASCII码表中的数据值来进行运算

    四 Java中运算符:

    算术运算符 赋值运算符 比较(关系)运算符 逻辑运算符 (使用居多) 位运算符(了解) 三元(三目)运算符(使用居多) java提供一种精确运算的机制:类:BigDecimal(常用类中讲)

    1.算术运算符:

    基本的算术运算符 +,-,*,/(默认:取值),%(取模:求余数) 扩展的算术运算符: ++ -- 分两种情况: 1)单独使用 结论: 无论++还是--在变量前面还是后面:都是对当前该变量值进行自增1或者自减1 应用场景:结合流程控制语句之循环语句去使用! 2)参与运算使用 如果++或者--在变量前面,先自增1或者自减1,然后运算! 如果++或者--在变量后面,先运算(赋值),然后在自增1或者自减1 A)单独使用 //1)如果++或者--在变量前面 //++a ; //--b ; //2)如果++或者--在变量的后面 //a ++; //b -- ; B)参与运算使用 //1)如果++或者--在变量前面 //int m = ++ a ; //10+1 = 11 //int n = -- b ;//20 -1 = 19

    2.赋值运算符:

    基本的赋值运算符 = int a = 10 ; 将10这个值赋值给int类型的变量a 注意事项: =不能写成==:表示比较运算符 ==连接表达式最终true/false 扩展的赋值运算符(细节) +=,*=,-=,/=,%= 举例: int x = 10 ; x += 20 ; 类似于 将等号左边的数据和右边的数据相加,将结果赋值左边数据 结论:扩展的赋值运算符: += ,*=,-= ,/= ,%= 隐藏了强制类型转换!

    3.比较运算符(关系运算符) >,<,>=,<=,==,!=

    变量x范围: 数学表达式: 3<=x<=5 Java表表达式: x>=3 &&(逻辑运算符) x<=5 || (逻辑运算符) 比较运算符:连接的表达式无论是简单还是复杂的,最终结果要么true/false 注意事项: ==不能写成=

    4.逻辑运算符

    基本的逻辑运算符: 逻辑单与 & (并列关系) 结论:有false,则false 逻辑单或 | (或关系:有一个满足条件就成立了) 结论:有true,则true 逻辑异或 ^ 结论:相同则为false,不同则为true 简单记: 男女关系 逻辑非 ! 非true,则false 非false,则true 偶数个非,是当前结果本身! // 应用场景:在登录/校验验证码等等 System.out.println(!(a>b)) ;//! false : true System.out.println(!!(a>b)) ; System.out.println(!!!(a>b)) ; 扩展的逻辑运算符 (开发中使用逻辑双与/逻辑双或多一些!) 逻辑双与: && 并列关系 逻辑双或: || 面试题 逻辑双与&& 和逻辑单与&有什么区别? 共同点: 结论:有false,则false(有一个不满足条件,就false) 最大的区别: 逻辑双与&& 连接的表达式:如果左表的表达式为false,右边就不执行了, 有false,则false(短路效果) 逻辑双|| :如果连接的表达式左边为true,右边不执行(短路效果!) 开发中:使用逻辑双与&& 或者逻辑双或||

    5.位运算符

    基本的运算符号 位与:& 有0,则0 位或:| 有1,则1 位异或:^ 相同则为0,不同则为1 ~(反码:按位取反:全部1变0,0变1): 位运算符号:连接的是两个具体的数据值----->具体的结果数据! 逻辑运算符号:连接的要么数值/要么表达式--->结果:true/false

    位运算符 (操作的一个具体的数值!) 移动符号

    左移:<< 左移动,将最高符合位丢弃掉,在右边补齐0 特点:将<<符号左边的数据乘以2的移动次幂 右移:>> : 右移动,如果最高符号位为0,左边补0,如果最高符号位为1,左边补齐1 特点:将>>符号左边的数据除以2的移动次幂 无符号右移: >>> 向右移动,无论最高符合位为0还是1,左边补0! 面试题: 请用有效的方式表示 2乘以8的结果! 2 << 3   2*2^3=16

    位异或^ 符合特点:

    一个数据被另一个数据位异或两次,结果是它本身!*/

    6.三元运算符—三目运算符

    格式 (表达式) ? 执行true的结果:执行false的结果 eg:(a>b)a?b 表达式:可以是简单的或者复杂的表达式------>true/false 执行流程: 1)先判断表达式是否成立,如果成立,执行true的结果 2)如果不成立,执行false的结果 一般没有要求是什么数据类型,默认int类型
    Processed: 0.013, SQL: 8