Java基本语法
Java基本语法:
标识符
Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。
- 标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
- 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
另外,Java 区分大小写,因此 myvar 和 MyVar 是两个不同的标识符。
提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。
标识符分为两类,分别为关键字和用户自定义标识符。
- 关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。
- 用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。
提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。
例如以下合法与不合法标识符。
- 合法标识符:date、$2011、_date、D_$date 等。
- 不合法的标识符:123.com、2com、for、if、fruit 等。
标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。
关键字
关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。例如,在《使用记事本编写运行Java程序》一节的实例 HelloJava.java 中的 class 就是一个关键字,它用来声明一个类,其类名称为 HelloJava。public 也是关键字,它用来表示公共类。另外,static 和 void 也是关键字,它们的使用将在本教程后面的章节中详细介绍。
Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
Java 语言目前定义了 51 个关键字,这些关键字不能作为变量名、类名和方法名来使用。以下对这些关键字进行了分类。
- 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
- 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
- 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
- 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
- 保留字:true、false、null、goto、const。
提示:由于 Java 区分大小写,因此 public 是关键字,而 Public 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。
字符集
字符集(character set)是一个系统支持的所有抽象字符的集合。字符(character)就是各种文字和符号,包括国家文字、标点符号、图形符号、数字等。
常见的编码字符集有:
Unicode:也叫统一字符集,它包含了几乎世界上所有的已经发现且需要使用的字符(如中文、日文、英文、德文等)。
1: ASCII:早期的计算机系统只能处理英文,所以ASCII也就成为了计算机的缺省字符集,包含了英文所需要的所有字符。
2: GB2312:中文字符集,包含ASCII字符集。ASCII部分用单字节表示,剩余部分用双字节表示。
3: GBK:GB2312的扩展,完整包含了GB2312的所有内容。
4: GB18030:GBK字符集的超集,常叫大汉字字符集,也叫CJK(Chinese,Japanese,Korea)字符集,包含了中、日、韩三国语言中的所有字符。
字符编码(character encoding),是编码字符集的字符和实际的存储值之间的转换关系。常见的编码方式有:UTF-8(Unicode字符集的编码方式)、UTF-16(Unicode字符集的编码方式)、UTF-32(Unicode字符集的编码方式)、ASCII(ASCII字符集的编码方式)等。
尝使用的修改字符集的方式:
解码比较简单,只需要:new String(decryData, "UTF-8")。// 约定的字符集为UTF-8
byte[] getBytes(String charsetName) 使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
Java的8种基本数据类型
关于Java的8种基本数据类型,其名称、位数、默认值、取值范围及示例如下表所示:
序号 |
数据类型 |
字节 |
位数 |
默认值 |
取值范围 |
举例说明 |
1 | byte(位) | 1 | 8 | 0 | -2^7 - 2^7-1 | byte b = 10; |
2 | short(短整数) | 2 | 16 | 0 | -2^15 - 2^15-1 | short s = 10; |
3 | int(整数) | 4 | 32 | 0 | -2^31 - 2^31-1 | int i = 10; |
4 | long(长整数) | 8 | 64 | 0 | -2^63 - 2^63-1 | long l = 10l; |
5 | float(单精度) | 4 | 32 | 0.0 | -2^31 - 2^31-1 | float f = 10.0f; |
6 | double(双精度) | 8 | 64 | 0.0 | -2^63 - 2^63-1 | double d = 10.0d; |
7 | char(字符) | 2 | 16 | 空 | 0 - 2^16-1 | char c = 'c'; |
8 | boolean(布尔值) | 1 | 8 | false | true、false | boolean b = true; |
位:"位(bit)"是电子计算机中最小的数据单位。每一位的状态只能是0或1。
字节:8个二进制位构成1个"字节(Byte)",它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。
字:"字"由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。字是计算机进行数据处理和运算的单位。
为了验证表格里的内容,在idea里运行验证
package com.ce.test; class Test { static byte b; static short s; static int i; static long l; static float f; static double d; static char c; static boolean bo; public static void main(String[] args) { System.out.println("byte的大小:"+Byte.SIZE +";默认值:"+b +";数据范围:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE); System.out.println("short的大小:"+Short.SIZE +";默认值:"+s +";数据范围:"+Short.MIN_VALUE+" - "+Short.MAX_VALUE); System.out.println("int的大小:"+Integer.SIZE +";默认值:"+i +";数据范围:"+Integer.MIN_VALUE+" - "+Integer.MAX_VALUE); System.out.println("long的大小:"+Long.SIZE +";默认值:"+l +";数据范围:"+Long.MIN_VALUE+" - "+Long.MAX_VALUE); System.out.println("float的大小:"+Float.SIZE +";默认值:"+f +";数据范围:"+Float.MIN_VALUE+" - "+Float.MAX_VALUE); System.out.println("double的大小:"+Double.SIZE +";默认值:"+d +";数据范围:"+Double.MIN_VALUE+" - "+Double.MAX_VALUE); System.out.println("char的大小:"+Character.SIZE +";默认值:"+c +";数据范围:"+Character.MIN_VALUE+" - "+Character.MAX_VALUE); System.out.println("boolean的大小:"+Byte.SIZE +";默认值:"+bo +";数据范围:"+Byte.MIN_VALUE+" - "+Byte.MAX_VALUE); } }
在控制台输出结果如下所示:
byte的大小:8;默认值:0;数据范围:-128 - 127 short的大小:16;默认值:0;数据范围:-32768 - 32767 int的大小:32;默认值:0;数据范围:-2147483648 - 2147483647 long的大小:64;默认值:0;数据范围:-9223372036854775808 - 9223372036854775807 float的大小:32;默认值:0.0;数据范围:1.4E-45 - 3.4028235E38 double的大小:64;默认值:0.0;数据范围:4.9E-324 - 1.7976931348623157E308 char的大小:16;默认值: ;数据范围: - � boolean的大小:8;默认值:false;数据范围:-128 - 127
此处为什么输出char的数据范围不是0 - 65535呢?
Java中的char类型由两个字节即十六位来表示,因为是无符号数,所以为2的16次方,数值范围就为:0 - 2^16-1;
面试题:
java 可以使用 char 类型, 赋予其 汉字吗?
答案是: 可以的, 汉字是属于Unicode编码中的一种, char类型表示的为 Unicode编码集,所以是可以的
运算符:
Java运算符按功能可分为:算数运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和条件运算符。
转载与 https://baijiahao.baidu.com/s?id=1659125201403697638&wfr=spider&for=pc
算数运算符
算术运算符包括通常的加(+)、减(-)、乘(*)、除(/)、取模(%),完成整数型和浮点型数据的算术运算。
关系运算符
关系运算符用来比较两个值,包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)和不等于(!=)6种。关系运算符都是二元运算符,也就是每个运算符都带有两个操作数,运算的结果是一个逻辑值。Java允许“==”和“!=”两种运算符用于任何数据类型。例如,既可以判断两个数的值是否相等,也可以判断对象或数组的实例是否相等。判断实例时比较的是两个对象在内存中的引用地址是否相等。
逻辑运算符
逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。前两个是二元运算符,后一个是一元运算符。Java对逻辑与和逻辑或提供“短路”功能,也就是在进行运算时,先计算运算符左侧的表达式的值,如果使用该值能得到整个表达式的值,则跳过运算符右侧表达式的计算,否则计算运算符右侧表达式,并得到整个表达式的值。
位运算符
位运算符用来对二进制位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、异或(^)、右移(>>)、左移(<<)和无符号右移(>>>)。位运算符只能对整数型和字符型数据进行操作。
赋值运算符
赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。
条件运算符
条件运算符( ? : )也称为 “三元运算符”或“三目运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2。
运算过程:如果布尔表达式的值为 true ,则返回 表达式1的值,否则返回 表达式2 的值。
运算符的优先次序
在对一个表达式进行计算时,如果表达式中含有多种运算符,则要安运算符的优先次序一次从高向低进行。运算符的优先次序如下:
位运算是一个博大精深的一个操作,他是所有运算的根本,源, 他的执行效率最高, 所有一个好的算法,可能会运用一个巧妙的位运算,