day2 java中的变量与数据类型及类型转换

2018-06-18 02:31:49来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

  标识符:凡是可以自己命名的地方都叫标识符,如:类名、方法名、接口名。。。

  1.标识符命名的规则:
  由26个英文字母大小写,0-9,_或$组成,不遵守会报错。
  不可以用数字开头。
  不能使用关键字和保留字。
  java中严格区分大小写,长度无限制。
  标识符不能包含空格。

  2.java中命名规范
  包名:多单词组成所有的字母都小写:xxxyyyzz
  类名、接口名:多单词组成时首单词小写,后面每个单词首字母大写:xxxYyyZzz
  常量名:所有字母都大写,多单词每个单词用下划线连接:XXX_YYY_ZZ
  最好是见名知意,不要总是用a,b,c。

  3.变量
  java的变量名开辟的内存空间,此空间必须有自己的名字和类型,例int a=1.开辟一个空间,名称为a,类型为整型。变量的作用域在一对{}之间有效。而且肯定有一个初始化值。

public class variable{
    public static void main(String[] args){
        int myInt = 233;
        double myDouble = 3.14;

        System.out.println(myInt);
        System.out.println(myInt + myDouble);
    }

}

  我们在这里定义的两个变量仅在此花括号中有效,即作用域在此花括号中。

  java中8种基础数据类型

  整型:byte,short,int,long。默认为int类型。

  浮点型:float,double(默认为双精度)。

  字符型:char只能表示一个字符(英文,中文,标点符号,'\t',‘\u1234’等):char a = 'ab'这样会报错,包含了两个字符。需要包含多个字符需要定义字符串str = "ab"。

  布尔类型:boolean,只能取true或false,不能取null,也不能取0,1。

class java_type{
    public static void main(String[] args){
        //byte类型,整型默认值都为0
        byte myByte = 100;
        System.out.println(myByte);
        //short类型
        short myShort = 233;
        System.out.println(myShort);
        //int类型
        int myInt = 23333;
        System.out.println(myInt);
        //long类型,默认值0L
        long myLong = 12345678910111213L;
        System.out.println(myLong);
        //float类型,默认值是 0.0f
        float myFloat = 234.5f;
        System.out.println(myFloat);
        //double类型,默认值是 0.0d
        double myDouble = 3.14;
        System.out.println(myDouble);
        //boolean类型,默认值是 false
        boolean myBoolean = true;
        System.out.println(myBoolean);
        //char类型
        char myChar= 'J';
        System.out.println(myChar);
    }

}

   自动类型转换

低  ------------------------------------>byte,short,char—> int —> long—> float —> double 

  不能对boolean类型进行类型转换;转换过程中可能导致溢出或损失精度。

  容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为容量大的数据类型。例如int与short相加,结果提升为int类型,两个short类型数据相加结果也会提升到int类型。char类型与整型相加时默认将char转为整形(例如'a'转化为对应ascii码的值97)。

  强制类型转换

  容量大转换为容量小的,要使用强制类型转换符(),会导致精度损失。

  比如将int类型12345转换为byte类型:

  int 12345转换为二进制为110000 00111001,byte类型为8位二进制数,会截断110000 00111001取00111001的值,00111001转化为10进制结果为57。

class exchange{
    public static void main(String[] args){
        int myInt = 12345;
        byte myByte = (byte)myInt;
        System.out.println(myByte);
        char c1='a';//定义一个char类型
        int i1 = c1;//char自动类型转换为int
        System.out.println("char自动类型转换为int后的值等于"+i1);
        char c2 = 'A';//定义一个char类型
        int i2 = c2+1;//char 类型和 int 类型计算
        System.out.println("char类型和int计算后的值等于"+i2);
    }
}

  运行结果为:

root@debian:/home/jeff/java_coding/day002# java exchange 
57
char自动类型转换为int后的值等于97
char类型和int计算后的值等于66

   对于String与基本数据类型之间的运算

  首先只可以使用连接运算:+。得到结果仍为一个字符串。

String str = "abc";
String str1 = str + myInt;
System.out.println(str1);

  结果为:abc12345。

   算数

class suanshu{
    public static void main(String[] args){
        int i1 = 12 % 5;
        int i2 = -12 % 5;
        int i3 = 12 % (-5);
        int i4 = -12 % (-5);
        System.out.println(i1);2
        System.out.println(i2);-2
        System.out.println(i3);2
        System.out.println(i4);-2
    }
}

  可以的出结论,取模的结果与被取模数的符号有关。

class suanshu{
    public static void main(String[] args){
        //++
                //a++,先计算再+1
        int int1 = 10;
        int int2 = int1++;
        System.out.println(int1);11
        System.out.println(int2);10

                //++a,先+1。再赋值
        int int3 = 10;
        int int4 = ++int3;
        System.out.println(int3);11
        System.out.println(int4);11

    }
}

  其他算数后面用到再解释,与我们一般使用并没有什么分别。

  java中的字符类型与字符串类型的差别(单双引号问题)。

  在java中单引号中的是字符类型,即char,而双引号中则为字符串类型,即string。

class charString{
        public static void main(String[] args){
                System.out.println('*' + '\t' + '*');
                System.out.println("*" + "\t" + "*");
        }
}

  单引号相加时为char类型相加,结果会提升为int类型,即将对应的ascii码转化为对应的数值再相加,结果是一个int类型的数值。而双引号相加的结果是字符串的相加,所以结果是一个字符串类型。

  输出结果:

root@debian:/home/jeff/java_coding/day002# java charString 
93
*       *

  本节代码托管到我的github:day002。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或

下一篇:Spring Boot快速开发REST服务最佳实践