Java学习第二天

一:标识符

注释:

(1)//     单行注释

(2)/*     */    多行注释   (该注释不能嵌套)

(3)/**      */    文档注释  可以自动生成文档

标识符:

规则:

(1)组成:数字,字母,下划线_,$.

(2)不能以数字开头。

(3)不能是java当中的关键字和保留字

(4)严格区分大小写。

规范:

(1)类名:单词的首字母大写。

(2)方法,或者是变量 从第二个单词开始首字母大写。

(3)包:包名,小写,单词和单词之间使用"."连接。

(4)常量: 单词都是大写。 单词和单词之间使用下划线连接。

二:基本的数据类型:(面试问题)

在Java中,一共有8种基本类型,其中有4种整型、2种浮点类型、一种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型。

注释:Java有一个能够表示任意精读的算术包,通常称为“大数值”(big number),它是一个对象不是类型。

整型(参考文章:JAVA整形和浮点型的知识点整理

整型用于表示没有小数部分的数值,它允许是负数。

int最常用,byte和short类型主要用于特定的应用场合,例如,底层的文件处理或者需要控制占用存储空间量的大数组。

比较特殊的是long类型的数据定义方式及八进制,十六进制的数据定义方式。下面用代码演示。

longNum1即使声明为long类型,但是由于没有在数字末尾加上L字符,所以编译器还是以默认的int类型进行存储,longNum2是正确的long类型的声明方式,longNum3由于长度已经超出int类型能够支持的长度,但是又没有在数字末尾加L字符编译器就报错了。

下面介绍非十进制的整形的声明方式。

需要注意的是八进制的数字表示方式比较容易引起混淆,所以不推荐,建议由需要的话,使用十六进制的数字表示方式,另外对于八进制和十六进制的数字表示方式来说是没有-这个符号的,要表示负数需要自己进行换算。


浮点型

浮点类型用于表示有小数部分的数值。

浮点型的数据定义方式如下

一样是需要在数字的最后加上符号F或者D加以区分,如果不加任何符号,使用默认的话,则为double类型。

然后介绍下科学计数法。

十进制数字用E或者e表示科学计数法,比较有意思的是如果是十六进制的数字,用p来表示科学计数法。注意,尾数采用十六进制,指数采用十进制。指数的基数是2,而不是10。

最后是表示溢出和出错情况的三个特殊的浮点数值。

正无穷:Double.POSITIVE_INFINITY;

负无穷:Double.NEGATIVE_INFINITY;

NaN(不是一个数字):Double.NaN;

并且判断一个特定值是否为NaN也应该采用下面的方式

if(Double.isNaN(Double.NaN)){ }

不能采用 if(x==Double.NaN) 因为所有“非数值”的值都认为是不相同的。

警告⚠️

浮点数值不适用于禁止出现舍入误差的金融计算中。例如,System.out.println(2.0-1.1);结果输出0.8999999999999999,而不是0.9。因为浮点数值采用二进制系统表示,所有没法精确到表示分数1/10。

借用《Effactive Java》这本书中的话,float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。

参考资料:

Java BigDecimal详解   

为什么浮点计算不准确


字符型: 占2个字节。

就是单个字符: //字符的值必须要使用单引号引起来。

语法: char ch='c';

说明:一个汉字占两个字节。

         一个英文符号占一个字节。

要弄清char类型,就必须了解Unicode编码机制。彻底弄懂 Unicode 编码


布尔类型: 表示真假。

正确用:true

错误:false。

boolean类型的值:只有两个,true和false。整型值和布尔值之间不能进行相互转换。

注释:在C++中,数值甚至指针可以代替布尔值。

if(x=0){  }

在C++中,这段测试是可以编译运行的。在Java中,这个测试是不能通过编译的,因为整数表达式x=0不能转换为布尔值。


java当中的字符串是不是基本数据类型?

  不是:java当中的字符串是复合类型,在java当中 提供了一个专门用来表示字符串的类。

  该类是String类。

String str="Hello!";


  三:复合类型:

  (1)数组

  (2)类:

      API:类库,这写类可以直接使用。

  如何定义一个字符串:

  String s=""

  (3)接口


  四:变量:

  变量:可以被改变的量就称之为变量。

        在计算机的内存存储当中当中存储的值可以被改变的量,这样的量称之为变量。

  定义一个变量

方式一: 声明变量时,同时赋值;

  语法: 数据类型 变量名称=value;

    案例:int a=99;

方式二:先声明,后赋值:

  语法: 数据类型 变量名称;   变量名称=value;

方式三: 同时声明多个变量,并且给多个变量赋值,对个变量之间使用逗号间隔。

 语法:数据类型 变量名称1=value1,变量名称2=value2....; 多个变量之间使用逗号间隔。

  案例:short s1=21,s2=22,s3=33;

方式四:同时声明多个变量,后再给多个变量赋值:

语法:数据类型 变量名称1,变量名称2,变量名称3.。。。


局部变量:变量的有效范围是从变量所在的块开始,到变量所在的块结束。

全局变量:在类当中声明,有效范围是从类所在的块开始,到类所在的块结束。 该变量在类的任意位置都能被访问到。这样的变量称之为全局变量。

总结:(1)变量不管是局部变量还是全局变量,都可以先声明后赋值,也可以先声明。

      (2)变量在使用的时候,必须要赋值。


五:常量:

常量:值不允许被改变。只能被赋值一次。

      他是一个特殊的变量,用final修饰的变量就称之为常量。

  定义: 方式一:声明时候同时赋值;

        final 数据类型 变量名称=value;

  方式二:先声明常量,后给常量赋值

  方式三:同时声明多个常量,并给多个常量赋值:

  方式四:先声明多个常量,后给多个常量赋值:

 全局常量: 在类当中定义的常量,称之为全局常量。全局常量在类的任意位置都能被访问到。

 定义全局常量时,只能声明时同时赋值,不能先声明,后赋值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容