码迷,mamicode.com
首页 > 其他好文 > 详细

基础知识

时间:2019-04-12 09:12:23      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:强制类型转换   string   if判断   ict   习惯   参数   alt   限制   类型   

Java是强类型语言,必须为每一个变量声明一种类型。

基础的数据类型

 技术图片

变量

Java每一个变量属于一种类型。声明变量时,变量所属的类型位于变量名之前。

每一个声明以一个分号结束,声明是一个完整的语句,所以必须以分号结束。

变量名必须是一个以字母开头或数字构成的序列。变量名中所有的字符都是有意义的,并且大小写敏感。变量名的长度没有限制。

在一行可以声明多个变量

//定义变量
    int i;

//定义多个变量
    int i, j;

必须用赋值语句对变量进行显式初始化,不可使用未初始化的变量。

常量

使用final指示常量,习惯上,常量名使用大写。

某个常量可以在一个类的多个方法中使用,通常将这些常量成为类常量,使用static final定义。

运算符
数学函数与常量

Math类包含了各种各样的数学函数。

Math类为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程。如果得到一个完全可预测的结果比运行速度更重要的话,name就应该使用StrictMath类。

数值类型之间的转换

如果两个操作数中有一个是double类型,另一个操作数就会转换成double类型;

否则,如果其中一个float类型,另一个将会转换成double类型;

否则,如果其中有一个是long类型,另一个操作数将会转换成long类型

否则,两个操作数都转换成int类型。

byte转short转int转long不会 丢失信息。

char可以转换成int,并且不会丢失精度,int转换成double也不会丢失精度,float转换成double不会丢失精度。

强制类型转换可能会丢失一些信息。

关于数值比较的问题:

public class TestMath{
    public static void main(String[] args){
        Integer intA = 1000;
        Integer intB = 1000;
        //true
        System.out.println(intA.equals(intB));
        //false
        System.out.println(intA == intB);
    }
}

 

public class TestMath{
    public static void main(String[] args){
        Integer intA = 110;
        Integer intB = 110;
        //true
        System.out.println(intA.equals(intB));
        //true
        System.out.println(intA == intB);
    }
}

Integer 的源码中,对传入参数i做了一个if判断。在-128<=i<=127的时候是直接用的int原始数据类型,而超出了这个范围则是new了一个对象。我们知道 == 符号在比较对象的时候是比较的内存地址,而对于原始数据类型是直接比对的数据值。

 

 

 

基础知识

标签:强制类型转换   string   if判断   ict   习惯   参数   alt   限制   类型   

原文地址:https://www.cnblogs.com/zaijie/p/10693597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!