Java基础(二)
Java基础语法
注释
在我们写代码时:在代码量较少的时候,我们能够看懂自己所写的代码,如果当项目结构十分复杂,代码量十分庞大的时候,我们就需要用注释来解释代码了。
注释并不会被执行,注释仅仅是用于给写代码的人看的。
书写注释是一个非常好的习惯
平时写代码一定要注意规范
在Java中的注释有三种:
- 单行注释
- 多行注释
- 文档注释
单行注释
在需要注释的一行文本前面加两个斜杠
其语法结构为://注释内容
public class Hello {
public static void main(String[] args) {
//单行注释
//输出一个HelloWorld
System.out.println("HelloWorld");
}
}
多行注释
在需要注释的一段文本两端分别加上/* 和 */
其语法结构为:/* 注释内容 */
public class Hello {
public static void main(String[] args) {
/*多行注释
输出一个HelloWorld*/
System.out.println("HelloWorld");
}
}
文档注释
JavaDoc文档注释
其语法结构为:
/**
*@Description HelloWorld
*@Author David椰子
*/
/**
*@Description HelloWorld
*@Author David椰子
*/
public class Hello {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
Java标识符命名规则
Java所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符。
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z),美元符($),下划线(_)或者数字的任何字符组合
- 不能使用关键字作为变量名或者方法名
- 标识符是区分大小写的
- 合法的标识符(举例):name、$age、_teacher、__1_student
- 不合法的标识符(举例):123abc、*age、#name
- 可以使用中文命名,但是一般不建议使用中文,也不建议使用拼音
Java的数据类型
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
- 安全性高,速度慢
弱类型语言
- 变量的使用不用那么严格(例如:VB和JavaScript)
Java的数据类型分为两大类
- 基本类型(primitive type)
- 引用类型(reference type)
基本数据类型(primitive type)
-
数值类型
-
整数类型
-
byte占1个字节范围:-128~127
-
short占2个字节范围:-32768~12767
-
int占4个字节范围:-2147483648~2147483647
-
long占8个字节范围:-9223372036854775808~9223372036854775807
(定义long类型需要在数字后加个L)
-
-
浮点类型
-
float占4个字节
(定义float类型需要在数字后加个F)
-
double占8个字节
-
-
字符类型char占2个字节(只能是一个字)
-
-
Boolean类型:占1位其值只有true和false两个
引用数据类型(reference type)
- 类
- 接口
- 数组
什么是字节
- 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数;
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写的B表示;
- 1B(byte,字节)=8bit(位);
- 字符:是指计算机中使用的字母、数字、字和符号。
- 1bit表示一位;
- 1Byte表示一个字节 1B=8b;
- 1024B=1KB
- 1024KB=1M
- 1024M=1G.
**整数拓展:**二进制(0b);十进制;八进制(0);十六进制(0x);
括号内容代表进制的前缀
public class Hello {
public static void main(String[] args) {
int i1 = 10;
int i2 = 0b10;
int i3 = 010;
int i4 = 0x10;
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
}
}
输出结果为
10
2
8
16
浮点数拓展:
float(能表现的字长是有限的,离散的,往往存在舍入误差,只能是接近但不等于)
double
最好完全避免浮点数进行比较
(所以银行业务不能用float表示,用BigDecimal(数学工具类))
float f = 0.1f; //0.1
double d = 1.0/10; //0.1
System.out.println(f==d); //false
float d1 = 123123132132132f;
float d2 = d1 + 1;
System.out.println(di==d2); //true
字符拓展:
char c1 = 'a';
char c2 = '中';
char c3 = '\u0061';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
System.out.println(c3);
输出结果为:
a
97
中
20013
a
所有的字符本质还是数字
ASCII编码:(97=a 65=A)
”\u“表示转义
布尔值扩展
boolean flag = true;
if(flag==true){}//新手
if(flag){}//老手
类型转换
由于Java是强类型语言,所以在进行有些运算的时候,需要用到类型转换
低----------------------------------------------------------------->高
byte,short,char —> int —> long —> float —> double(小数优先级大于整数)
运算中,不同类型的数据线转化为同一类型,然后进行运算。
强制类型转换(高->低)
自动类型转换(低->高)
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转化为不相干的类型
- 在把高容量转换到低容量的时候,强制类型转换
- 转换的时候可能存在内存溢出,或者精度问题!
JDK7新特性:数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money); //1000000000
变量
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值;可以用逗号隔开来声明多个同类型变量
//不建议在一行声明多个变量。
变量作用域
- 类变量
- 实例变量
- 局部变量
public class Variable{
static int allClicks=0; //类变量
String str="HelloWorld"; //实例变量
/*实例变量:从属于对象:如果不自行初始化,基本类型的默认值为0
布尔类型的默认值为false;
除了基本类型,其余的默认值都是null
*/
public void method(){
int i = 0; //局部变量
}
}
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则(除了第一个单词之外,后面的单词首字母大写)
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
运算符
Java语言支持如下运算符:
- 算术运算符: +、-、*、/、%(取余)、++(自增)、–(自减);
int a = 3;
int b = a++; //先赋值再自加
System.out.println(b); //输出结果为3
int c = ++a; //先自加再赋值
System.out.println(c); //输出结果为5
System.out.println(a); //输出结果为5
//--同理
-
赋值运算符:=;
-
关系运算符:>、<、>=、<=、==、!=、instanceof;
-
逻辑运算符:&&(与and)、||(或or)、!(非);
boolean a = true;
boolean b = false;
//逻辑与运算:两个变量都为真,结果才为true;
System.out.println("a && b:" + (a && b)); //a && b:false
//逻辑或运算:两个变量其中有一个为真,则结果才为true;
System.out.println("a || b:" + (a || b)); //a || b:true
//如果是真,则变为假,如果是假,则变为真。
System.out.println("!(a && b):" + !(a && b)); //!(a && b):true
-
位运算符:&、|、^、~、>>、<<、>>>(了解);
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
<< 可以看做*2;>> 可以看做/2
-
条件运算符:?:;
// x ? y : z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格"; //必须掌握
System.out.println(type); //及格
- 扩展赋值运算符:+=、-=、*=、/=.
int a = 10;
int b = 20;
a+=b; // a = a+b
a-=b; // a = a-b
//字符串连接符:+
System.out.println(""+a+b); //1020
System.out.println(a+b+""); //30
- 很多运算我们会使用工具类操作。
包机制
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作为包名:
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。
使用import语句可以完成此功能:
import package1[.package2...].(classname|*);
JavaDoc
javadoc命令是用来生成自己的API文档的
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
使用命令行生成API:在java文件夹的cmd中执行该代码:
javadoc -encoding UTF-8 -charset UTF-8 Doc.java