【Java】 入门 — —(一)

  本博主是 JavaScript 出身的,使用的是弱类型语言;因此对于强类型语言,或者面向对象开发类型的语言,不少细节都不太习惯。本入门系列文章,都是为了加固 强类型语言/面向对象 的一下概念、关键字 和 方法等知识。java

 

  一、Java 的基本知识:  数组

1 /// Java 的源代码的文件名 必须与公共类 的名字相同,并用 .java 做为扩展名 (大小写也要保持一致) 2 3 /// 命令行 编译 和 运行java 程序: 4 /// 编译:javac 源代码文件名(带扩展名 .java) -> 编译后的的文件为 源代码文件名.class 5 /// 运行:java 源代码的文件名(不带扩展名 .class) 6 /// javac 程序是一个 Java 编译器 7 /// java 程序启动 Java 虚拟机,虚拟机执行编译器放在 .class 文件中的字节码 8 9 /// main 入口,必须声明为 public (Ps: 虽然有些 Java 解析器 当 main 不是 public 也能够运行 但这点只须要知道就好了,咱们一般都是必需要为 public 的)

 


 

  

  二、基本类型:工具

 

1 /// Java 有 8 种基本类型(primitive type),其中有 4种整型、2种浮点型、1种用于表示 Unicode 的编码的字符单元的字符类型 char 和 一种表示真值的boolean 类型。 2 /// int、short、long、byte、float、double、char 和 boolean

 

 (A)、整型(Java 中没有任何无符号(unsigned) 形式的 int、long、short 或者 byte 类型): 编码

Java 整型
类型 存储需求 取值范围 使用场景
int 4 字节  -2 147 483 648 ~ 2 147 483 647(正好超过20亿) 最经常使用
short 2 字节 -32 768 ~ 32 767 底层的文件处理或者须要控制占用存储空间量的大数组
long 8 字节 -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 星球上的竟然人数
byte 1 字节 -128 ~ 127 底层的文件处理或者须要控制占用存储空间量的大数组

 (B)、浮点型:spa

Java 浮点型
类型 存储需求 取值范围 特色
float 4 字节 大约 ± 3.402 823 47E + 38F (有效位数为 6 ~ 7) float 类型的数值后缀 F 或 f,没有后缀的默认是 double 类型
double 8 字节 大约 ± 1.797 693 134 862 315 70E + 308(有效位数为 15位) double 类型的后缀是 D 或者 d,没有后缀的默认是 double 类型

    Ps: 命令行

      一、全部的浮点数值计算都遵循 IEEE 754 规范。
      二、常量 Double.POSITIVE_INFINITY(double 类型的正无穷大)、Double.NEGATIVE_INFINITY(double 类型的负无穷大)和 Double.NaN(Double 类型的 NaN)code

      三、检测一个特定值是否是 等于 Double.NaN 只能用 Double.isNaN(特定值) 这个方法。由于全部 “非数值” 的值都认为是不相同的。
      四、Float 类型也有它本身的 正无穷大、负无穷大或者是 NaN, 把 Double 改为 Float 就好了对象

      五、浮点类型的计算仍是有偏差的,在金融计算中,不能用 由于涉及金钱方面的,要求精确。后面会说的 金融计算中,使用的 BigDecimal 类blog

 

 (C)、char 类型:ip

    一、本来是表示单个字符的,可是如今有些 Unicdoe 字符能够用一个 char 值 描述,另外一些 Unicode 字符则须要两个 char 值。
    二、char 类型的字面量值要用 单引号括起来。

    三、在 Java 的核心技术中,有大体说到 Unicode 和 char 类型,可是这部分须要理解完整的 编码 知识,博主知识库不充足,须要的请本身去详情了解一下。


 (D)、boolean 类型:

    一、boolean 类型的值,就只有 true Or false 两个值,用来断定逻辑条件。

    二、与 JavaScript 中的不一样,Java 中的 整型值 和 布尔值 之间 不能进行相互转换

 


 

  

  三、变量:      

1 /// 在 Java 中,每个变量都有一个类型 (type)。在声明变量时,变量的类型位于变量名以前。 2 /// Java 中的变量名,必须是一个以字母开头 并 由 字母或 数字构成的序列 3 /// 与其余语言相比,Java 中的 “字母” 和 “数字” 的范围更加大,字母包括 'A' ~ 'Z'、'a' ~ 'z'、'_'、'$' 外,还可使某种语言中表示字母的任何 Unicode 字符。好比希腊人能够用 π,德国人能够用 'ä' 

    Ps: 

      一、不能使用 Java 保留字 做为变量名

      二、要知道哪些 Unicode 字符属于 Java 中的字母,可使用 Character 类的 isJavaIdentifierStart 和 isJavaIdentifierPart 去检查

      三、尽管 $ 是 一个合法的 Java 字符,但不要在本身的代码中使用这个字符,它只用在 Java 的编译器 或其余工具生成的名字中。

      四、虽然能够一行声明多个变量,但不提倡使用这种风格,由于逐一声明每个变量能够提升程序的可读性。

      五、变量声明后,要初始化才能使用,不然会报 // ERROR--variable not initialized 错误

      六、Java 中,提倡变量的声明,尽量靠近变量第一次使用的地方,这是一种良好的编写风格。

 


 

  

  四、常量:

    A、在 Java 中,利用关键 final 指示常量,例如: final double CM_PER_INCH = 2.54;

    B、关键字 final 表示这个变量只能被赋值一次,一旦赋值后,就不可以再更改了。

    C、习惯上,常量名使用全大写。

    D、在 Java 中,但愿某个常量能够在一个类中的多个方法使用,一般将这些常量成为 类常量;使用关键字 static final 设置。

    E、类常量 定义位于 方法的外部。

    F、在 JavaScript 中 定义常量使用的是 const, 在 Java 中 const 是做为保留关键字,目前未被使用。

    G、在运算时候,好比 cos ,sin, tan 等数学方法,都在 Math 类中。

      H、Java 中提供了两个接近 π 和 e 的常量的近似值:Math.PI 和 Math.E

    


 

   

   五、数值类型之间的转换: 

    A、实心箭头表示唔信息丢失的转换,虚箭头表示可能有精度损失的转换。

      

    B、若是两个操做数有一个是 double 类型,另外一个操做数会转换为 double 类型;

     不然,若是其中一个操做数使 float 类型,另外一个操做数将会转成 float 类型;

     不然,若是其中一个操做数为 long 类型,另外一个操做数将会转成 long 类型;

       不然,两个数都会被转成为 int 类型

    C、强制类型转换, 强制类型转换的语法格式是圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名,例如:        

1 double x = 9.997; 2 int nx = (int) x;

    D、若是强制转换的值,超过目标类型的范围,就会被截取成一个彻底不一样的值。好比 int 300 转换成 byte 类型 的实际值 为44。

  


  

  六、枚举类型:

    A、有时候变量的值只在一个有限的集合内,就要用到自定义枚举类型,例如:销售的服装尺寸只有 小、中、大和超大 这四种尺寸。

1 /// 这里定义枚举类型 2 enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE };  3 /// 上面定义完后,可使用这种枚举类型 4 /// Size 类型的变量只能存储在这个类型声明中给定的某个枚举值 5 /// 或者 null 值,null 表示这个变量没有设置任何值 6 Size s = Size.MEDIUM;

 

  

 

       


  

  七、字符串:

    A、从概念上来讲,Java 字符串 就是 Unicode 字符串序列。

      B、Java 中没有内置的字符串类型,而是在 标准的Java 类库中提供了一个 预约义类,叫作 String.

      C、每一个用双引号括起来的字符串都是 String 类的一个实例。

      D、Java 中的 String 是不可变字符串,没有提供修改的字符串的方法(说的应该就是没有 replace 方法了)

      E、第四点的缘由,是由于编译器可让字符串共享。

      F、检测字符串是否相等,表达式:

/// s 和 t 可使字符串变量,也可使字符串字面量。 /// equals 是区分大小写的  s.equals(t) /// 不区分大小写可使用 equalsIgnoreCase 方法 s.equalsIgnoreCase(t)

      G、不能使用 == 运算符,判断连个字符串是否相等,这个运算符只能肯定两个字符是否放在同一个位置上。例如:

String greeting = "Hello"; if (greeting == "Hello")... // probably true if (greeting.substring(0, 3) == "Hel")... // probably false 

       H、由于实际上,只有字符串常量是共享的,而 + 或 substring 等操做产生的结果并不共享。

       I、空串 和 Null 串:

  

 1 /// 空串是长度为 0 的字符串,可使用下面的方法检查是否为空串:  2 if (str.length() == 0) ..  3 // 或者  4 if (str.equals(""))...   5 /// Null 串是一个特殊值,表示目前没有任何对象与该变量关联。  6 /// 检查字符串是否为 null 使用 ==  7 if (str == null)...   8 /// 检查字符串不是既不是空串,也不是 null 串时,要先判断 null 串,由于 null 上面是没有 length() 方法,会致使报错的
相关文章
相关标签/搜索