02-Java编程基础

标识符和关键字

标识符

  标识符 就是用于给程序中变量、类、方法命名的符号。Java 语言是 区分大小写的 ,使用标识符的时候,需要注意如下规则:

  • 标识符可以由字母、数字、下划线和美元符组成,其中数字不能打头(此处的字母并不局限于 26 个英文字母,而且可以包含中文字符、日文字符等)
  • 标识符不能是 Java 关键字和保留字
  • 标识符不能包含空格
  • 标识符只能包含美元符,不能包含 @ 、 # 等其它特殊字符

  关于标识符,还有一些规范(可以不遵守):

  • 包名:多单词组成时所有字母都小写(xxxyyyzzz)
  • 类名、接口名:多单词组成时,所有单词的首字母大写(XxxYyyZzz)
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写(xxxYyyZzz)
  • 常量名:所有字母都大写,多单词时候每个单词用下划线连接(XXX_YYY_ZZZ)
  • 为了提高阅读性,起名字时应该尽量 “见名知意”

Java 关键字

  Java 语言中有一些具有特殊用途的单词被称为 关键字,当定义标识符的时候,不要让标识符和关键字相同,否则引起错误。

01

  Java 的所有关键字都是小写的,也就是说 TRUE 并不是 Java的关键字。

Java 数据类型

  Java 语言是 强类型语言(所有的变量必须先声明、后使用;指定类型的变量只能接受类型与之匹配的值),这意味着每个变量和每个表达式都有一个在编译时就确定的类型,类型限制了一个变量能被赋的值,限制了一个表达式可以产生的值,限制了在这些值上可以进行的操作,并确定这些操作的含义。声明变量的语法如下:

type varName [= 初始值];

  定义变量的时候既可以指定初始值,也可以不指定初始值,但至少需要指定变量类型和变量名两个部分。定义变量时的变量类型可以是 Java 语言支持的所有类型,Java 语言支持的类型分为:基本类型和引用类型

02

  空类型就是 null 值的类型,因为 null 类型没有名称,所以不能声明一个 null 类型的变量或者转换到 null 类型。空引用(null)是 null 类型变量唯一的值,空引用可以转换为任何引用类型(不能转换为基本类型)。

基本数据类型

(一)整型

  整型通常有如下 4 种类型:

类型名称 内存大小 表数范围
byte 8位 -128(-2^7) ~ 127(2^7 - 1)
short 16位 -32768(-2^15) ~ 32767(2^15 - 1)
int 32位 -2147483648(-2^31) ~ 2147483647(2^31 - 1)
long 64位 -2^63 ~ 2^ 63 - 1

  int 是最常见的整数类型,通常情况下直接给出一个整数值默认就是 int 类型,需要注意下面两种情形:

  • 如果直接将一个较小的整数值(在 byte 或 short 类型的表数范围内)赋给一个 byte 或 short 变量,系统会自动把这个整数值当成 byte 或 short 类型来处理
  • 如果使用一个巨大的整数值(超出了 int 类型的范围),Java 不会自动把这个整数值当成 long 类型来处理。如果希望系统把一个整数值当成 long 类型来处理,应在这个整数值后面增加 l 或者 L 作为后缀

  Java 中整数值有 4 种表示方式:

  • 十进制:0 ~ 9,满 10 进 1
  • 二进制:0 和 1,以 0b 或者 0B 开头
  • 八进制: 0 ~ 7,满 8 进 1,以数字 0 开头表示
  • 十六进制:0 ~ 9 以及 A ~ F,满 16 进 1,以 0x 或者 0X开头

  所有数字在计算机底层都以二进制形式存在,并且不管正负,都是以补码的方式存储:

  • 正数:三码合一
  • 负数
    • 原码:直接将一个数值转换成二进制,最高位是符号位
    • 负数的反码:是对原码按位取反,只是最高位(符号位)确定为 1
    • 十进制:反码加 1

(二)字符型

  字符型通常用于表示单个字符,字符型值必须使用单引号括起来。Java 语言使用 16 位的 Unicode 字符集作为编码方式。字符型值有如下三种表示方法:

  • 直接通过单个字符来指定字符型值,如 ‘A’、‘9’ 和 ‘0’ 等
  • 通过转义字符表示特殊字符型值,如 ‘\n’、‘\t’ 等
  • 字节使用 Unicode 值来表示字符型值,格式是 ‘\uXXXX’,其中 XXXX 代表一个十六进制的整数

  由于计算机底层保存字符时,实际是保存该字符对应的编号,因此 char 类型的值也可以作为整数值来使用,完全可以参与加、减、乘、除以及比较大小的运算。

(三)浮点型

  Java 的浮点型有两种:float 和 double ,浮点型也有固定的表数范围和字段长度(与机器无关):

  • float 类型:单精度浮点数,占有 4 个字节 32 位,其中第 1 位是符号位,接下来 8 位表示指数,再接下来的 23 位表示尾数
  • double 类型:双精度浮点数,占有 8 个字节 64 位,其中第 1 位是符号位,接下来 11 位表示指数,再接下来的 52 位表示尾数

  Java 中的浮点数有两种表示形式:

  • 十进制数形式:例如 5.12
  • 科学计数法形式:例如5.12e2

  Java 中的浮点数默认是 double 类型,如果希望 Java 把一个浮点类型当成 float 类型处理,应该在这个浮点类型值后紧跟 fF

  Java 还提供了三个特殊的浮点数值:正无穷大、负无穷大和非数,用于表示溢出和出错。正无穷大通过 Double 或 Float 类的 POSITIVE_INFINITY 表示;负无穷大通过 Double 或 Float 类的 NEGATIVE_INFINITY 表示;非数通过 NaN 表示。所有正无穷大的数都是相等的,所有负无穷大的数也是相等的,而非数不与任何数值相等,甚至和非数本身都不相等。

  当程序中用到的数值位数特别多地时候,可以在数值中使用下画线,不管是整型数值,还是浮点型数值,都可以自由地使用下画线:

double pi = 3.14_15_92_65_36;

(四)布尔型

  布尔型只有一个 boolean 类型,用于表示逻辑上的 “真” 或 “假”,数值只能是 true 或 false,不能用 0 或者 非 0 来代表。boolean 类型的值或者变量主要用于流程控制。

基本类型转换

(一)自动类型转换

  系统支持把某种基本类型的值直接赋给另一种基本类型的变量,这种方式被称为自动类型转换。当把一个 表数范围小的数值或变量直接赋给另一个表数范围大的变量时 ,系统将可以进行自动类型转换:

03

  上图中左边的数值类型可以自动转换为右边的数值类型。不仅如此,当把任何基本类型的值和字符串值进行连接运算的时候,基本类型的值将自动转换为字符串类型:

public class Test {
   
    public static void main(String[] args) {
   
        int a = 10;
        int b = 20;
        String str = "Hello";
        System.out.println( a + b + str); // 30Hello
        System.out.println(str + a + b); // Hello1020
    }
}

(二)强制类型转换

  强制类型转换的语法格式是:(targetType)value,当进行强制类型转换的时候,可能造成精度降低或溢出:

public class Test {
   
    public static void main(String[] args) {
   
        int iValue = 233;
        byte bValue = (byte)iValue;
        System.out.println(bValue); // -23
    }
}

  通常字符串不能直接转换为基本类型,但可以通过基本类型对应的包装类把字符串转换为基本类型:

public class Test {
   
    public static void main(String[] args) {
   
        String a = "45";
        int aValue = Integer.parseInt(a);
        System.out.println(aValue);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值