一、注释
java代码中的注释,分为三种:
- 单行注释-------------最常用的注释方式,其注释内容从 "//"开始到本行末尾。
- 多行注释-------------注释从 “/" 开始,到 "/” 结束。它可以注释一行,也可以注释多行。
多行注释不能嵌套,否则会报错。 - 文档注释-------------可以注释单行,也可以注释多行,以 “/**” 开始,以 "*/"结束的。同时在Java中,文档注释也被用于生成API文档。
常用的javadoc标记有:
@author:作者
@version:版本
@deprecated:不推荐使用的方法、过时的方法。
@param:方法的参数类型。
@return:方法的返回类型。
@see:用于指定参考的内容。
@exception:抛出的异常。
@throws:抛出的异常,和exception同义
二、符号
1. 分号
java中,一句代码都是以分号(;) 来结束的。
需要使用分号的代码语句有:
包的声明语句
类的引入语句
属性的声明语句
方法中要执行的代码
不需要加分号的代码:
- 类的声明,最后【不需要】加分号
- 方法的声明,最后【不需要】加分号
- 代码块的声明,最后【不需要】加分号
2. 空白
在代码中,可以使用空格、tab、换行(\n)、回车(\r),并且对代码是没有影响的
不能使用这些空白来分割单词或关键字
三、标示符
(1)命名规则:
- 标示符可以由字母、数字、下划线_ 、美元符号$组成
- 标示符开头不能是数字
- 标识符中的字符大小写敏感
- 标识符的长度没有限制
- 标示符不能使用java中的关键字或保留字
(2)推荐规则:
- 类和接口,首字母大写,如果是俩个单词,第二个单词的首字母大写
例如,public class Account{} ,public interface AccountBase{} - 方法和变量,首字母小写,如果是俩个单词,第二个单词的首字母大写
例如,public void getStudentName(){} , int personNum = 1; - 常量,全部字母大写,如果是俩个单词,使用下划线分隔
例如,public static final int MAX_NUM = 10; - 尽量使用有意义的名字,尽量做到见名知义。
例如,int numOfStudnet = 10; String userName = “tom”;
四、关键字
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
注意,const 和 goto 是java中的保留字
true 和 false不是关键字,是boolean类型的字面值,但是也不能直接使用true和false来做标示符
五、基本类型
这八种基本数据类型是:
- byte
计算机中,数据传输大多是以“位”(bit,比特)为单位,一位就代表一个0或1(二进制),每8个位(bit)组成一个字节(Byte),所以,1个字节=8位0101代码 - short
- int
- long
- float
- double
- char
char类型占2个字节(16位),用来表示字符,是基本数据类型,String表示字符串,是类类型。一个String是由0~n个char组成
字符使用单引号表示,字符串使用双引号表示。 - boolean
布尔类型占1个字节(8位),它的的值,必须是true或者false,在JVM中会转换为1(true)或者0(false)
常见编码:
- ASCII
美国信息交换标准代码,主用于表达现代英语和其他西欧语言中的字符。它是现今最通用的单字节编码系统,它只用一个字节的7位,一 共表示128个字符。- ISO-8859-1
又称为Latin-1, 是国际标准化组织(ISO)为西欧语言中的字符制定的编码,用一个字节(8位)来为字符编码,与ASCII字符编码兼容。所谓兼容,是指对于相同的字符,它的ASCII字符编码和ISO-8859-1字 符编码相同。- GBK
对GB2312字符编码的扩展,收录了21886个字符(21003个字符+其它字符), 它与GB2312字符编码兼 容。- UTF
有些操作系统不完全支持16位或32位的Unicode编码,UTF(UCS Transformation Format)字符编码能够把Unicode编码转换为操作系统支持的编码,常见的UTF字符编码包括UTF-8、UTF-16、UTF-32。
- UTF-8,使用一至四个字节为每个字符编码,其中大部分汉字采用三个字节编码,少量不常用 汉字采用四个字节编码。因为 UTF-8是可变长度的编码方式,相对于 Unicode 编码可以减少存储占用的空间,所以被广泛使用。
- UTF-16,使用二或四个字节为每个字符编码,其中大部分汉字采用两个字节编码,少量不常用汉字采用四个字节编码。
- UTF-32,使用四个字节为每个字符编码,使得 UTF-32 占用空间通常会是其它编码的二到四倍。
常用转义字符 | 效果 |
---|---|
\n | 换行符,将光标定位到下一行的开头 |
\r | 回车,把光标移动到行首(和环境有关) |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
\\ | 反斜杠字符 |
\’ | 单引号字符 |
\" | 双引号字符 |
1.整型
byte, short, int和long都是整数类型,并且都是有符号整数(正负)
整型的范围:
- byte 8位、 1字节 范围:-27~ 27-1
- short 16位、2字节 范围:-215~ 215-1
- int 32位、4字节 范围:-231~ 231-1
- long 64位、8字节 范围:-263~ 263-1
(1)有符号整数把二进制数的首位作为符号数,当首位是0时,对应十进制的正整数,当首位是1时,对应十进制的负整数。
(2)八进制数以“0”开头,十六制以“0x”开头,二进制以“0b”开头
(3)整数类型的默认类型是int
(4)使用long类型数据的时候,后面要加大写L或者小写l,建议加上大写的L,因为小写的l和数字1很像似。
java中,等号(=)为赋值操作,表示把等号右边的值或计算结果,赋值给等号左边的变量
java中,正数取反在加1,就是对应的负数,负数取反再加1,就是对应的正数
2.浮点型
float和double(浮点型的默认类型是double)都是java中的浮点型,浮点型可以用来表示小数,它们的二进制表示方式和整型不同
float是32位, 1符号位+8指数位+23尾数位
double是64位 1符号位+11指数位+52尾数位
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的.
- float的精度为7位左右有效数字
- double的精度为16位左右有效数字
(1)俩种浮点型数据的声明:
//后面加f或者F
float f = 10.5f;
//后面加d或者D
double d = 10.5d;
(2)浮点型的二进制形式:可以使用API提供的方法获取浮点数的二进制形式
float f = 10.5f;
int b = Float.floatToIntBits(f);
System.out.println(Integer.toBinaryString(b));
(3)可以使用BigDecimal类,保证运行结果的精度
BigDecimal是java.math包中的类,使用时需要import导入
//add方法 +
//subtract方法 -
//multiply方法 *
//divide方法 /
BigDecimal d1 = BigDecimal.valueOf(1.0);
BigDecimal d2 = BigDecimal.valueOf(0.66);
double result = d1.subtract(d2).doubleValue();
System.out.println(result);
//输出结果:0.34
六、变量
三种引用类型:类类型、接口类型、数组类型
每一种类型都可以用来声明变量,而变量的作用就是用来接收、保存、传递、操作对应的数据的。
变量一定是要求先声明、再赋值、再使用
(1)java是强类型编程语言,要求数据的类型和变量的类型保持一致,才能使用 = 号进行赋值,就是把=号右边的数据,赋值给=号左边的变量。
(2)如果=号右边的数据,和=号左边的变量类型不一致,那么只能做类型转换,把数据的类型转为变量的类型,然后才能完成=号赋值操作。
类型转换的过程:
- 手动转换
int a = 1;
byte b = (byte)a;
- 自动转换
int a = 1;
long b = a;
七、理解对象
java是面向对象的编程语言,在面向对象的思想中,万事万物皆为对象。
对象一般都会具有一些属性和方法:
- 属性表示对象本身的一些特点
- 方法表示对象本身的一些行为
代码获得对象的方式:
第一步:抽象一种事物,来定义出需要的类
第二步:使用类中的构造方法,创建出这个类的对象
第三步:使用对象访问它的属性并赋值,使用对象调用类中定义的方法
Student类中的构造,和new关键字一起使用,就可以创建出一个Student类的对象
/**
* 学生类,描述学生应该具有的属性和方法
*/
//第一步
public class Student {
//学生编码
public long id;
//学生姓名
public String name;
//学生年龄
public int age;
//学生要说的话
public String msg;
//构造方法,用来创建一个具体的学生对象
public Student(long id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
/**
* 来吧,展示
* 先介绍自己的名字、学号和年龄
* 再说出自己想说的话
*/
public void show(){
System.out.println("I am "+name);
System.out.println("My studentNum is "+id);
System.out.println("I am "+age);
System.out.println(msg);
}
//第二步
public static void main(String[] args) {
//什么一个Student类型的变量
Student stu;
//new+构造器的方式,创建一个Student类具体对象
//并且把这个新创建出来的对象,赋值给了stu变量
stu = new Student(1L,"tom",20);
//第三步
stu.msg = "可爱的朋友们,你们好么~";
stu.show();
}
}
这时候就完成了:
分析事物–》定义类–》声明属性/方法/构造器–》编写main方法–》创建对象–》使用对象访问属性、调用方法 --》完成功能(来吧,展示)
八、引用类型变量
使用八种基本类型中的任意一种类型,声明出的变量,就是基本类型变量,例如 int a;
使用三种引用类型中的任意一种类型,声明出的变量,就是引用类型变量,例如 Student stu;
基本类型变量和引用类型的变量核心区别:是否可以指向对象
基本类型变量和引用类型变量的区别:
基本类型变量【只能接收】基本类型数据,它是一种比较简单的数据,没有属性,也没有方法
引用类型变量【只能接收】引用类型数据(也就是对象),但对象是一种比较复杂的数据,它里面可以 有很多属性,也可以有很多方法