1.1Java的基本语法
1.1.Java代码的基本格式
Java中的程序代码都必须放在一个类中。格式如下:
修饰符 class 类名{
程序代码
}
在编写Java代码时,需要特别注意几个关键:
1.Java中的程序代码可分为结构定义语句和功能执行语句,其中结构语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条功能执行必须用分号(;)结束
其中要注意 英文(;)和 中文(;)的区别,写成中文会出现 "illegal character"(非法字符) 这样的错误信息。
2.Java语言是严格区分大小写的。
3.为了程序代码的整齐美观,层次清晰,可读性考虑,要注意格式排版
1.2Java中的注释
在编写程序时,为了使代码容易阅读,通常会在实现功能的同时为代码加一些注释。
注释是对程序某个功能或某行代码的解释说明,它只在Java源文件中有效,在编译程序时编译器会忽略这些注释信息,不会编译到class字节码文件中去。其中有三种注释:
1.2.1单行注释
通常用于对程序中某一行代码进行结束 用符号 ' // ' 表示, ' // '后面为被注释的内容
int a =1; //定义一个整型变量
1.2.2多行注释
通常用于注释多行代码 符号 " /* */ ",在其中间进行注释
/* int b=2;
int c=3; */
1.2.3.文档注释
文档注释是对一段代码概括的解释说明,可以用javadoc 命令将文档注释提出来生成帮助文档。
文档注释以 ” /** “为开头,并在注释内容末尾以”*/“结束。
PS:文档注释中可以嵌套 单行注释,但不能潜逃多行注释。
版权信息
版权信息必须在java文件的开头。如
/**
* Copyright © 2002 Co.Ltd.
* All right reserved.
*/
其他不需要出现在 javadoc 的信息也可以包含在这里
1.3Java中的标识符
编译过程中,java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标示符。
1.3.1标示符的命名规则:
- 由字母、数字、下划线(_)和美元符号($)组成;
- 不能以数字开头;
- 区分大小写;
- 不能是java中的保留字和关键字;
- 包名所有的字母一律小写;例如cn、itcase、test
- 类名首字母大写,变量名和方法名首字母小写;例:ArratList、Iterator
- 常量名所有的字母都大写,单词之间用下划线连接,例如 DAY_OF_MONTH
- 变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写,例:lineNumber. getLineNumber;
- 驼峰式命名:studentName;见名之意(使用有意义的英文单词)
1.4 常量
常量就是在程序中固定不变的值,是不能改变的数据。
1.整型常量:整数类型的数据,有二进制八进制、八进制、十进制和十六进制4种表示形式。
二进制:由数字1和0组成的数字序列。在JDK7.0中允许使用字面值来表示二进制数,前面要由0b或0B开头,目的是为了和十进制进行 区分,如0b01101100
八进制:必须以0开头并且其后由0~7范围内(包括0~7)的整数组成的数字序列。如:0372
十进制:由数字0~9范围内(包括0~9)的整数组成的数字序列。第一位不能是0
十六进制:必须以0x或者0X开头并且其后由0!9,A~F(包括在内)组成的数字序列。如:0x25AF
2.浮点数常量:就是在数学中用到的小数。分为float单精度浮点数和double双精度浮点数类型。浮点数常量还可以通过指数形式 来表示。
3.字符常量:用于表示一个字符,一个字符常量要用一对英文半角格式的单引号 '' 引起来,它可以是英文字母数字,标点符号以 及由转义序列来表示的特殊字符。
4.字符串常量:字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号""引起来。
5.布尔常量:即布尔型的两个值true和false,该常量用于区分一个事物的真与假。
6.null常量:常量只有一个值null,表示对象的引用为空。关于null常量将会在后面详细介绍。
整型常量进制之间的转换
1.十进制和二进制之间的转换
2.二进制和八进制、十六进制之间的转换
3.请自己去看书学。
1.5变量
1.5.1变量:jvm在内存中开辟的一个很小的存储空间,作用是用来存储数据,变量必须定义一种类型
1.5.2.命名规则:
- 可以使用字母,数字,_和$组成自由组合,但是数字不能开头
- 大小写敏感
- 可以使用汉字,但是不建议使用
- 不能使用关键字(java保留字)
- 要符合驼峰命名法 尽可能的做到见名知意(名称由多个单词组成时,从第二个单词开始,每个单词的首字母大写)
1.5.3.使用规则:
作用域:即从定义开始,到所在的大括的结束符号。出了作用域,想使用需要重新定义和初始化
- 必须先定义(声明,创建)和初始化
- 变量可以重复使用 即可以进行多次存取操作。不需要强调类型但是存储数据时一定要与第一次声明时的类型匹配
- 变量的作用域:变量有自己的使用范围。出了范围,变量失效。
1.5.4.变量的初始化及使用
1.5.5变量的数据类型
在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则会程序会报错
Java中变量的数据类型分为两种,及基本数据类型和引用数据类型。
应用数据类型中还可以多两项:枚举(enum)和注释(annotion)
- 除特殊情况,所有变量(尤其局部变量)在定义时都应赋予相应类型的初始值。主数据类型中Boolean类型为false;数值类型为0;Char类型为null。对象类型为null(数组也是对象)。
- 返回的对象类型在使用前应检查是否为null
- 对内存使用有要求的程序,在使用对象后应赋予null值。
分类 | 数据类型 | 关键字 | 占用字节 | 默认值 | 取值范围 |
整型类 | 字节 | byte | 1 | 0 | -2^7~2^7-1 |
短整形 | short | 2 | 0 | -2^15~2^15-1 | |
整形 | int | 4 | 0 | -2^31~2^31-1 | |
长整型 | long | 8 | 0L | -2^63~2^63-1 | |
字符型 | 字符型 | char | 2 | ′\u 0000′ | ′\u 0000′ ~ ′\u FFFF′ |
浮点类 | 单精度型 | float | 4 | 0.0F | -3.4E38~3.4E38 |
双精度型 | double | 8 | 0.0D | -1.7E308~1.7E308 | |
逻辑类 | 逻辑型 | bolean | 1 | False | True、False |
- Java中默认的整数类型是int,如果要定义为long ,则要在数值后加上L或者l
- 默认的浮点型是双精度浮点,如果要定义float,则要在数值后面加上f或者F
- 一个字节等于8位,1个字节等于256个数。
- 一个英文字母或者阿拉伯数字占一个字节
- 一个汉字占2个字节
- 范围大小从大到小排序:double>float>long>int>short>byte
- 精度大小从大到小排序:(int,long,float,double) long>int>double>float
1.5.6符合两原一封要求:
原则1: byte,short,char在计算时,先转换成int类型,再计算
原则2:两个不同类型的数据做运算,会转成较大类型的数据,再计算
1.5.7变量的类型转换:
类型转换:
1.自动转换(隐式转换)
必须满足两个条件:第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。
byte b = 5;
short b1 = b;//8位的5赋值给16位5,在前面自动添8个0
int c1 = -1;
long c2 = c1;//32位的-1赋值给了64位的c2里,自动填了32个11
2、强制转换(显示转换)
当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,就需要强制类型转换。也就是占内存大的类型 变量赋值给占内存小的类型变量,需要强制转换。
PS:但有可能出现精度损失。
int a = 1;
byte a1 = (byte)a;
long b = -10;
int b1 = (int)b;
3.表达式类型自动提升
所谓表达式是指由变量和运算符组成的一个算式。变量在表达式中进行运算时,也有可能发生自动类型转换,这就是表达式u类型的一个自动提升,如:一个byte型的变量在运算期间类型会自动提升为int型。
public class Example{
public static void main(String[] args){
byte b1=3; //定义一个byte类型的变量
byte b2=4;
byte b3=(byte)(b1+b2); //两个byte类型变量相加,赋值给一个byte类型变量
System.out.println("b3="+b3);
}
}