Java学习

缠丝猫  论坛元老 | 2025-2-13 04:28:06 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1005|帖子 1005|积分 3015

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、赋值

  赋值表达式,左边肯定是变量,右边是变量大概数值变量与数值都有类型,(数值里整数默认int,小数默认double)


  • 类型由小转大,存储空间变大,数据不会丢失,是安全的,在需要时编译器会自动完成转化(隐式类型转化)
  • 类型由大转小,存储空间变小,数据大概会丢失(丢字节),不安全编译器不会自动完成转化,需要用户手动完成转化(逼迫类型转化)
赋值时,左右两边类型肯定要雷同,最开始不雷同的通过隐式类型转化或逼迫类型转化转化成雷同类型后才能完成赋值,假如没有完成同类型转化,编译器会报错
右边数值来赋时:
编译器会对数值大小举行查抄,数值大小假如在左变量存储大小之内够大,说明数值类型转化为此类型后数值是不会丢失数据是安全的,编译器会自动完成隐式类型转化,假如数值大小超过了左变量存储大小,此变量装不下此数据,转此变量类型肯定会丢失数据,编译器不会自动完成转化,需要手动逼迫类型转化才可赋值
右边变量来赋时:
假如右变量存储大小小于左变量存储大小,编译器会自动完成隐式类型转换赋值;假如右变量存储大小大于左变量存储大小,需要逼迫类型转换后才可赋值

右边数值来赋值时,数值由默认的int类型隐式转换为byte类型时,类型由大转小,不会丢失数据?

  • 数值的大小是确定的,最后有没有丢失数据直接由数值大小来看的,不由它所属的类型来看
  • 数值转换的判断是基于确定的数值大小的,int隐式转换为byte时就说明此int类型的数值此时的值小于byte类型的存储范围,(不肯定说数值所属的范围大数值就大,比如long类型的数值可以是1),隐式转换时是安全的,它是由数值的大小直接确定安全转换的
  • 所以大类型转小类型不肯定会丢失数据,具体要看里面的数值是否大,赋到的空间是否够大,所以数值来赋时,编译器是可以直接判断的,不拘于只能小类型赋到大类型,而假如变量来赋的话,编译器无法判断变量里面具体放多大的值,值无法确定,所以拘于只能小类型赋大类确保安全

   二、运算

  不同类型的数据一起运算时,数据类型小的会转换成数据类型大的成同类型运算
最后举行的同类型运算至少是要在4字节类型下的运算,比如byte与short或byte与byte之间的运算,小的类型转成和大的同类型后还是小于4字节,会都被提升为4字节运算
   三、字符串

  在C语言中,字符串用指针变量或字符数组变量来存放,没有专门的字符串变量,而Java中用String类型专门存放字符串变量,属于引用数据类型

String.valveOf(a):恣意类型数据转化为字符串
数据+"字符串"+数据:数据与字符串拼接,拼接成新字符串

+号是将两边的结果毗连成字符串





字符串转化为整型数据

Integer.valveOf:将int或字符串转换为Integer对象

Integer.parseInt:将字符串解析为int根本数据类型




     四、运算符

  1.算术运算符(% += ++)

左右两边是数值,构成算术表达式,表达式整体结果是数值
%
当余数绝对值小于除数绝对值时便停下,此时的余数便是取模的结果
11.5%2 == 1.5,-10%-3 == -1:


+=
+=时假如左右两边类型不一样运算符会帮我们直接强转


2.关系运算符 (==)

左右两边是数值,构成关系表达式,表达式整体结果是boolean类型值
条件判断表达式的总结果肯定是true或false
if(布尔)、while(布尔)、for(i = 0;布尔;i++)

3.逻辑运算符(&& &)

左右两边是boolean类型值(关系表达式),构成逻辑表达式,表达式整体结果是boolean类型值


  • &&逻辑与有短路结果:当第一个表达式为假时直接判断此逻辑表达式为false,第二个表达式就不去判断执行了
  • ||逻辑或有短路结果:当第一个表达式为真时,第二个表达式就不去执行判断了,逻辑表达式总结果为true
  • &、|无短路结果,两边两个表达式肯定都会去执行

4.位运算符(& | ~ ^)

左右两边是数值,构成位运算表达式,表达式整体结构是数值
位运算符都是对数值二进制补码操纵

按位异或^:雷同为0,不同为1,n^n=0,0^n=n
按位与&:n&1得到该数二进制序列的最后一位(0或1)  
按位与&:n&(n-1),每与一次,表达式结果相比n的二进制序列都会少个1 


5.移位运算符(<< >>>)

一边是移位对象数值,一边是整型移动位数,构成移位运算表达式,表达式整体结果是数值

移位操纵对象是数值二进制补码一端掉,一端补
<<,左移n位,左端不要了右端补n个0,结果是*2^n
>>,右移n位,右端不用了左端补n个符号位,结果是/2^n
>>>,视为无符号数右移,左端全补0,结果肯定是正数(大概变成一个很大的正数)
(无<<<)

6.条件运算符(表达式1?表达式2:表达式3)

按第一个表达式1结果true或false选择执行后面的表达式2或表达式3,最后整个三目表达式的结果是执行其中一个表达式结果的数值
(Java中唯一的条件运算符、唯一的三目运算符)
第一个表达式的结果必须是boolean类型的值
是值就必须得来吸取:








免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表