Java核心技术(二):java的基本程序设计结构

1.一个简单的Java应用程序

在这里插入图片描述

  • Java对大小写敏感
  • 访问修饰符:public用于控制程序的其他部分对这段代码的访问级别,main方法必须用public修饰。
  • 类名:用驼峰命名法。

2.注释

  • 单行://
  • 多行:/* 内容 */
  • 自动生成文档:/** 内容 */

  注意:不要嵌套注释

在这里插入图片描述

3.数据类型

(1)整型

在这里插入图片描述

  • 后缀与前缀:长整型数值要加后缀L,十六进制数值有前缀0x,八进制数值有前缀0,二进制数值有前缀0b。
  • 可以为数字字面量添加下划线作为分割,不会对数值有任何影响。
  • Java的int型变量的长度是确定的。
  • Java没有任何无符号类型。

(2)浮点型

在这里插入图片描述

  • 后缀:float型数值应有后缀F,没有则默认为double型,也可为double型数值添加后缀D。
  • 所有浮点数的计算都遵循IEEE 754规范(见我的专栏:计算机组成原理 第二章)。
  • 由于浮点计算会有一些舍入误差,因此浮点数值不适用于禁止出现舍入误差的金融计算中,这种情况应当使用BIgDecimal类。
  • 有三个特殊浮点数值:正无穷大、负无穷大、NAN(非数字)。

在这里插入图片描述

(3)char类型

  • 用‘A’表示一个字符,“A”表示一个字符串,需要区分。
  • 转义字符:

在这里插入图片描述

  • 代码点:指与一个编码表中的某个字符对应的代码值。
  • 在 Java中,char类型用 UTF-16 编码描述一个代码单元。
  • 不建议使用char类型,因为某些字符无法用一个代码单元表示,会导致不必要的错误。

(4)boolean类型

  • 有两个值:true 和false 。
  • 在C++中数值或指针可以代替 boolean 值,但在java中不行,因为java变量类型之间的定义非更严格。

4.变量

(1)变量名

  • 由字母和数字组成,但不能是数字开头。
  • 对大小写敏感。
  • 不能用java保留字命名。
  • 建议小写字母开头,驼峰命名。

(2)初始化

  • 未经过初始化的变量不能引用。
  • 最好第一次使用时初始化。

(3)常量

  • 用final关键字修饰变量,则该变量为常量,只能赋值一次且不能再更改。
  • 命名建议全大写。

5.运算符

(1)运算符

  • 四则运算:+ - * /
  • 求余:%
  • 自增、自减:++a,a++,b- -,- -b。
  • 是否相等:==
  • 是否不等:!=
  • 大于小于:> >= < <=
  • 逻辑:&&与、||或、!非,短路方式求值。
  • 位运算

  &与:两位都为1,那么结果为1
  |或:有一位为1,那么结果为1
  ^异或:两位不相同,结果为1
  ~非:取反
  <<左移:各二进制位全部左移N位,高位丢弃,低位补0
  >>右移(符号位填充高位):各二进制位全部右移N位,若值为正,则在高位插入 0,若值为负,则在高位插入 1
  >>>右移(0填充高位):各二进制位全部右移N位,无论正负,都在高位插入0

  对于移位操作,需要对移位操作符的右侧参数进行n位模运算,n为该变量长度。比如1 << 35和1 << 3是一样的。

在这里插入图片描述

(2)数学函数与常量

  • 求平方根:Math.sqrt(x)
  • 平方:Math.pow(a, b)
  • 三角函数:Math.sin Math.cos Math,tan Math.atan Math.atan
  • 指数函数:Math.exp
  • 对数:Math.log Math.log10
  • π和e的近似值:Math.PI Math.E

(3)类型转换

在这里插入图片描述

  • 强制类型转换(截断):int x=(int) y;
  • 强制类型转换(四舍五入):int x=(int) Math.round(y);

  注意:不要把强制类型转换应用于boolean型。

6.字符串(属于引用类型而不是基本类型)

(1)一些常识

  • 声明:String str= “XXXX”。
  • 拼接:用+号。当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串(任何一个 Java 对象都可以转换成字符串)。
  • String类的对象的字符串值是不可变的,也就是说字面量不可变,但可以改变对象的引用。
  • String不等于字符数组。
  • 要注意String和String Builder和String Buffer的区别。

(2)检测相等

  • str1.equals(str2);
  • str1.equalsIgnoreCase(str2);
  • 不能用 ==,因为它比较的是两个对象的地址,而不是指向的字符串字面量。

(3)空串与Null串

  • 检测:str1!=null &&str1 !="",先检测是否为Null串,再检测内容是否为空。

(4) API

在这里插入图片描述

在这里插入图片描述

7.输入输出

(1)输入

在这里插入图片描述

(2)输出

  • 直接输出:System.out.print(x);
  • 格式化输出:System.out.printf(“Hello!%s.Next year,you will be %d”,name,age);

在这里插入图片描述

  更多格式化打印请参考《Java 核心技术 卷一》P57。

8.控制流程

  • 条件语句: if ; if…else
  • 循环:for ; while ; do…while; foreach循环
  • 多重选择:switch,case标签可以是char、byte、short、int及其包装类型的常量表达式,或字符串字面量。
  • 中断控制流程语句:break、continue、break 标签名(goto语句)、带标签的continue语句。

9.数组

  创建一个数字数组时,所有元素都初始化为 0。boolean 数组的元素会初始化为 false。对象数组的元素则初始化为一个特殊值 null,这表示这些元素(还)未存放任何对象。

猜你喜欢

转载自blog.csdn.net/Tracycoder/article/details/112176099