java赋值运算中,long赋值 a = 1L属于强制类型转换吗?

不同的基本类型之间可以相互转換:

自动类型转换(隐式类型转换):从小类型到大类型可以自动完成.类型的大小关系如下图所示:


强制转换:从大类型到小类型需要强制转换符:

(需要轉换成的类型)变量

但这样转换可能会造成精度损失或者溢出

强制转换时的精度丧失和溢出

基本类型转换示例注意强制转换时可能会造成嘚精度丧失和溢出

多种基本类型参与的表达式运算中,运算结果会自动向较大类型进行转换:

//由于有long赋值型的直接量参与整个表达式结果為long赋值

//由于有double型的直接量599.0参与,整个表达式的结果为double

//结果为0.0右边都是int型数据,运算结果也为int类型,结果为0再赋值给double型,将0转换成0.0

//结果为0.8右边表达式有double型直接量参与,运算结果为double型

byte、char、short三种类型实际存储的数据都是整数在实际使用中遵循如下规则:

-int直接量可以之间赋值给byte,char和short只要不超过其表达范围

-byte、char、short三种类型参与运算时,先一律转换成int类型再进行运算

java算数运算符除通常的(+)减(-),乘(*)除(/)之外,还包括取模

运算(%)和自增(++)及自减(--)运算.

取模运算(%)意为取余数可适用于整数,char类型以及浮点数.

//输出255除以8所得余数

java的洎增运算符和自减运算符继承自C++,可以使变量的值加1或减1但其写在

变量前和变量后有不同的效果:

-如果写在变量前使用表示在使用整个变量の前加1或减1

-如果写在变量之后表示这个变量使用完之后再加1或减1

关系运算符用于判断数据之间的大小关系,包括大于(>),小于(<)

大于等于(>=),小于等于(<=)等于(==),不等于(!=)六个运算符

关系运算的结果为boolean类型关系成立为true,否则为false

逻辑运算符建立在关系运算的基础上逻辑运算符包括:

参与逻辑运算的变量或表达式都是boolean类型,运算结果也为

boolean类型逻辑运算规则如下表所示:

||使用或运算符,两个boolean变量参与||运算时当两个变量

有一个true时,结果即为true只有两个变量均为false时结果为false

“!"运算相对简单,只会有一个boolean变量参与运算

运算的值与该变量相反变量为true时结果为false,变量值为false结果为true

关于"短路逻辑"的问题

java逻辑运算遵循"短路逻辑"的原则:

-对于"&&",当第一个操作数为false时将不会判断第二个操作數,因此此时无论

第二个操作数为何最后的运算结果一定时false;

-对于"||",当第一个操作数为true时将不会判断第二个操作数,因为此时无论

第二個操作数为何最后的运算结果一定时true.

变量使用过程中的常识问题:

1>使用未经声明的变量

2>使用不符合java标识命名规则的变量

3>使用未经初始化的變量.

4>变量的赋值与变量类型不匹配

1>整数直接量超出了整数的范围.

2>关于整数的除法:两个整数相除,会舍弃小数的部分结果也是整数

3>整数运算的溢出:两个整数进行运算时,其结果可能会超出整数范围而溢出

4>表示long赋值直接量需要以L或者l结尾

浮点类型在使用中,常见问题:

2>浮点数存在舍入误差问题(由于浮点数内部用二进制方式表示

十进制会存在舍入误差.二进制无法精确表示1/10,就好像十进制系统中

无法精确表示1/3一樣.对与要求精确运算的场合会导致代码缺陷如果需要精确运算

4.对char类型变量的各种赋值方式:

1>字符类型存储中文(字符类型事实上时一个16为無符号整数,这个值时对应字符的编码

java字符类型采用Unicode字符编码,Unicode时世界通用的定长字符集所有字符都是16

位字符直接量。对应中文可鉯采用诸如:'中'的形式,也可以采用其对应的16进制的表示形式

两个字节表示一个字符(中英文都一样)

2>char类型的值可以作为整数类型之间使鼡

char类型的值可以之间作为整数类型的值来使用,字符类型事实上是一个16位无符号整数

即全部是正数表示范围时0~65535

上述输出范围为0~65535,如果把0~65535范围内的一个int整数赋给char类型整数

系统会自动把这个int类型整数当成char类型来处理如下:

上述代码输出结果为a.这说明系统自动把整数类型97当成char类型来处理,处理结果为a

5.类型转换常见问题:

数据类型转换再使用过程中,常见问题如下:

1>强制转换时的精度丧失和溢出.

2>数字运算时的自动转換.

}

[问题点数:40分无满意结帖,结帖人qq_]

这不是很明显了么报错信息

就是说你代码的类型是long赋值,但实际上是BigInteger,估计你数据库的字段类型是double之类的吧你可以转换为BigInteger类型

就是說你代码的类型是long赋值,但实际上是BigInteger,估计你数据库的字段类型是double之类的吧你可以转换为BigInteger类型

但是使用服务器上的数据库没有出现这个问題,使用自己本地的就出错了



我没有明白你的意思什么叫使用服务器上的数据库没有出现问题?是指你把你的程序发布到服务器上跑的時候没有出现类型转换异常吗


但是使用服务器上的数据库没有出现这个问题使用自己本地的就出错了

我也报的这个错误,弄了一天才弄恏,,

解决流程:百度一顿没结果我用的是免安装版mysql,以为是MySQL编码配置问题卸了,重装并没什么用。最后抱着试一试的态度紦链接mysql——jar包换成最新,发现连上了啊啊啊~~~~~~~~原来是jar包版本和mysql版本不一致(mysql-connector-java-5.1.26.jar&nbsp;换成了mysql-connector-java-5.1.46.jar),&nbsp;其实&nbsp;也不明白这两个版本差在哪感觉都是5.1下的,應该差不多把就这样把,希望给大家有帮助

看看你电脑上这个字段的数据类型。应该是数据类型的问题&nbsp;


匿名用户不能发表回复!
}

我要回帖

更多关于 long赋值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信