Java学习-02-Java基础
注释
-
当我们编写的代码到达一定数量时,就需要使用注释。
-
注释可以帮助我们快速熟悉代码的意思,即使是很久以前写的,通过观看注释,我们可以很快回忆起代码的意思。
-
注释不会被执行,是给我们写代码的人看的。
-
书写注释是一个非常好的习惯。
-
平时写代码一定要注意规范。
Java中的注释有三种:
-
单行注释 // 单行注释
-
多行注释 /* 多行注释 */
-
文档注释 /** 文档注释 */
标识符
关键字:关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。
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 则不是关键字。但是为了程序的清晰及可读性,要尽量避免使用关键字的其他形式来命名。
String不是关键字!!!
String
是Java基础库中的一个常用类的类名,属于标识符(identifier),显然不是关键字。
标识符:Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。在 Java 语言中,标识符的构成规则如下。
-
标识符由数字(0~9)和字母(A~Z 和 a~z)、美元符号($)、下划线(_)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。
-
标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
-
区分大小写。
-
只能以字母、下划线、$符号开头,不能以数字开头。
-
不能是关键字。
标识符分为两类,分别为关键字和用户自定义标识符。
-
关键字是有特殊含义的标识符,如 true、false 表示逻辑的真假。
-
用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。
提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。
例如以下合法与不合法标识符。
-
合法标识符:date、$2011、date、D$date 等。
-
不合法的标识符:123.com、2com、for、if 等。
标识符用来命名常量、变量、类和类的对象等。因此,一个良好的编程习惯要求命名标识符时,应赋予它一个有意义或有用途的名字。
注意:Java中变量声明时可以不初始化,但是用的时候必须要初始化。
数据类型
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
弱类型语言:不需要设定变量类型。
Java的数据类型分为两大类:
-
基本类型:八种基本数据类型分别为:byte、short、int、long、float、double、char、boolean。
-
引用类型:Java 的引用数据类型有五种;其分别为:类、接口、枚举、注解、数组。
1 // 八大基本数据类型 2 // 整型 3 int num1 = 0; // 最常用 4 byte num2 = 0; 5 short num3 = 0; 6 long num4 = 0L; // long类型要在数字后面加个L,整数默认是int型的 7 // 浮点型 8 float num5 = 0.0F; // float类型要在数字后面加F,小数默认是double型的 9 double num6 = 0.0; 10 // 字符型 11 char name = 'a'; 12 // 布尔型 13 boolean flag = false;
String不是基本类型,String是类,属于引用类型!!!String不是关键字!!!
因为对象的默认值是 null,所以String的默认值也是 null。
但是怎么 String 也可不用 new 的形式来创建对象呢?
那是因为 Java 有字符串常量池机制
所以不用 new 关键字创建对象时,会在常量池中创建对象。
String 类也是一个比较特殊的类。
整数扩展:
Java中各种进制的表达方式
-
二进制:由0,1组成。以0b开头。
-
八进制:由0,1,...7组成。以0开头。
-
十进制:由0,1,...9组成。默认整数是十进制。
-
十六进制:由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
1 int i1 = 0b10; 2 int i2 = 010; 3 int i3 = 10; 4 int i4 = 0x10; 5 System.out.println(i1); // 2 6 System.out.println(i2); // 8 7 System.out.println(i3); // 10 8 System.out.println(i4); // 16
浮点数扩展:
银行的业务怎么表示?钱
float 有限 离散 舍入误差 大约 接近但是不等于
double
1 float f = 0.1f; // 0.1 2 flaot d = 1.0/10; // 0.1 3 System.out.println(f==d); // false 4 5 float d1 = 23123121321321212f; 6 float d2 = d1 +1; 7 System.out.println(d1==d2); // true
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
最好完全避免使用浮点数进行比较!!!
银行的业务怎么表示?钱
BigDecimal 数学工具类
字符扩展:
所有的字符本质还是数字!!! Unicode编码 2字节 65536个字符
1 char c1 = 'a'; 2 char c2 = '中'; 3 System.out.println(c1); 4 System.out.println((int)c1); // 强制转换 97 5 System.out.println(c2); 6 System.out.println((int)c2); // 强制转换 20013 7 8 // U0000 UFFFF 9 char c3 = '\u0061'; 10 System.out.println(c3); // 输出a
转义字符: \t 制表符 \n 换行 ......
类型转换
由于Java是强类型语言,所以要进行一些运算时,要进行类型转换。
运算中,不同类型的数据要先转为同一个类型,然后才能进行运算。
强制转换 (类型)变量名 高 -> 低
自动转换 低-> 高
注意点:
-
不能对布尔值进行转换。
-
不能把对象类型转换为不相干的类型。
-
在把高容量转换到低容量的时候,强制转换。
-
转换的时候可能存在内存溢出,或者精度丢失问题。
JDK7新特性:数字之间可以用下划线分割,方便观看。
变量
Java是强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
-
变量必须是合法的标识符。
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域:
-
类变量
-
实例变量
-
局部变量
1 public class Variable{ 2 static int allClicks = 0; // 类变量 3 String str = "hello world"; // 实例变量 4 public void method() { 5 int i = 0; // 局部变量 6 } 7 }
运算符
java语言支持如下运算符:
-
算数运算符:+,-,*,/,%。++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=,instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>> ,<<,>>>(了解!!!)
-
条件运算符:?:
-
扩展赋值运算符:+=,-=,*=,/=
左移<< *2 (运算效率高)
右移>> /2
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、-- | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | <<、>>、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、=、^=、~=、«=、»=、>>>= | 从右向左 |
包机制
包的本质就是文件夹!!!
JavaDoc生成文档
javadoc命令是用来生成自己API文档的
参数信息:
-
-
@version 版本号
-
@since 指明需要最少使用的jdk版本
-
@param 参数名
-
@return 返回值情况
-
@throws 异常抛出情况
命令行生成文档:javadoc -encoding UTF-8 -charset UTF-8 xxx.java
参考课程:狂神说Java