JavaSE数据类型与运算符

JavaSE基本数据类型

Java是一种强类型语言,因此对于Java中的每一个变量都要声明一种类型。
在这里插入图片描述
编写程序时,应在满足 要求的情况下,尽量选择合适的类型。
注:凡是写出来的整型常量都会被看做int类型 凡是写出来的小数默认看做double类型。

数据类型转换

大的数据类型和小的数据类型在进行运算时,会被自动提升为大的数据类型。而大的数据类型变为小的数据类型时必须强制类型转换。

public class Test 
{
    public static void main(String[] args)
    {
       byte num1 = 100;
       int  num2 = 100;
       int result = num1 + num2 ;
       System.out.println("result="+result);
    }
}

在进行运算时num1先被提升为整型,然后再参与运算。

public class Test 
{
    public static void main(String[] args)
    {
       int num1 = 100 ;
       short num2 = num1 ;
    }
}

编不过去,错误信息int类型到short类型可能会有数据损失。因此必须进行强制类型转换。

public class Test 
{
    public static void main(String[] args)
    {
       int num1 = 100 ;
       short num2 = (short) num1 ;
    }
}

这样就没有问题了。

int 与 byte 之间的相互转换:若常量的值在-128~127之间无需转换直接可以赋给byte,但将整型变量赋给byte时,必须进行强制类型转换与数值无关。(该结论也适用于short)。

数据的溢出问题:

public class Test 
{
    public static void main(String[] args)
    {
       int maxValue = Integer.MAX_VALUE;//整型的最大值
       int minValue = Integer.MIN_VALUE;//整型的最小值
       System.out.println(maxValue+1);
       System.out.println(minValue-1);
    }
}

输出结果:
在这里插入图片描述
这该如何处理呢?首先它是因为计算溢出导致的结果,因此我们理所应当的想到换一个大点的数据类型来存储它,比int大的整型自然就是long了。

public class Test 
{
    public static void main(String[] args)
    {
       int maxValue = Integer.MAX_VALUE;//整型的最大值
       int minValue = Integer.MIN_VALUE;//整型的最小值
       long num1 = maxValue+1;
       long num2 = minValue-1;
       System.out.println(num1);
       System.out.println(num2);
    }
}

输出结果:
在这里插入图片描述
和之前的竟然是一模一样的。其实细细一想也不难发现,赋值语句是从右向左依次执行的,首先计算加法或者减法,而计算的结果的值已经溢出,即使赋给一个long类型的数,它总的结果还是溢出的那个数。因此在计算前我们就必须让它变为long类型然后再进行运算。这必然少不了使用强制类型转换。

public class Test 
{
    public static void main(String[] args)
    {
       int maxValue = Integer.MAX_VALUE;//整型的最大值
       int minValue = Integer.MIN_VALUE;//整型的最小值
       long num1 = maxValue+1L;
       long num2 = minValue-1L;
       System.out.println(num1);
       System.out.println(num2);
    }
}

输出结果:
在这里插入图片描述
注:在整型数据后面加上小写l或者大写L则这个整型默认为long类型的。同理float转换为double时可以在float数据之后直接加一个f/F.
java中的字符型占两个字节,和C语言中的不一样,可能是为了方便处理其他字符如汉字,因为一个汉字占两个字节。Java中使用Unicode编码,其他语言大都使用ASCll码,但Unicode中的前128个字符和ASCll码兼容,几乎可以处理世界上所有国家的语言和符号,这也是Java语言的一个特点。

常用的转移字符:

\n 表示换行。
\t 横向跳个,作用同Tab键。
\r表示回车。
\ 表示反斜杠字符。
’ 表示单引号。
" 表示双引号。
\?表示问号字符。
\ddd 表示一个八进制数
\xdd 表示一个十六进制数、
(好像和C语言一样。。。。)
布尔型
布尔型是用来表示逻辑值得数据类型,常用在条件判断中,只有true(真)和false(假)两个值。用boolean 声明。

运算符

Java中的运算符可以说是和C语言是一模一样的。
只不过在关系运算符和逻辑运算符这块,Java中表达式的结果是true 或false.而在C语言中是0或者1.其他都一样。这块以前总结过,https://blog.csdn.net/weixin_43213517/article/details/83217863

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值