【JavaSE】基础语法
前言
本文为【JavaSE】基础语法相关介绍,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~
一、注释
//单行注释
/*
多行
注释
*/
/**
* @Description 文档注释
* @author 某某
*/
二、标识符和关键字
1.标识符定义
标识符定义:
- 包名、类名、方法名、参数名、变量名等,这些符号被称为标识符
- 标识符可以由字母、数字、下划线(_)和美元符号($)组成
- 标识符不能以数字开头,不能是java中的关键字
- 首字符之后可以是字母(AZ 或者 az),美元符($)、下划线(_)或数字的任何字符
- 标识符对大小写敏感
正确的标识符: - Username、username123、user_name、_userName、$username
不正确的标识符:
- 123username、class、87.2、Hello World、num*123
2.Java标识符规则
- 包名所有字母必须小写。例如:cn.itcast.test 类名和接口名每个单词的首字母都要大写。例如:ArrayList
- 常量名所有的字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH
- 变量名和方法名的第一个单词首字母小写,从第二个单词开始,每个单词首字母大写。例如:lineName、getLingNumber
- 在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如:使用userName表示用户名,password表示密码。
3.Java关键字
- 下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称
- 所有的关键字都是小写
- 程序中的标识符不能以关键字命名
- const和goto是保留字关键字,虽然在java中还没有任何意义,但在程序中不能用来作为自定义的标识符
- true、false和null不属于关键字,它们是一个单独标识类型,不能直接使用
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | private | 私有的 |
访问控制 | protected | 受保护的 |
访问控制 | public | 公共的 |
类、方法和变量修饰符 | abstract | 声明抽象 |
类、方法和变量修饰符 | class | 类 |
类、方法和变量修饰符 | extends | 扩充,继承 |
类、方法和变量修饰符 | final | 最终值,不可改变的 |
类、方法和变量修饰符 | implements | 实现(接口) |
类、方法和变量修饰符 | interface | 接口 |
类、方法和变量修饰符 | native | 本地,原生方法(非 Java 实现) |
类、方法和变量修饰符 | new | 新,创建 |
类、方法和变量修饰符 | static | 静态 |
类、方法和变量修饰符 | strictfp | 严格,精准 |
类、方法和变量修饰符 | synchronized | 线程,同步 |
类、方法和变量修饰符 | transient | 短暂 |
类、方法和变量修饰符 | volatile | 易失 |
程序控制语句 | break | 跳出循环 |
程序控制语句 | case | 定义一个值以供 switch 选择 |
程序控制语句 | continue | 继续 |
程序控制语句 | default | 默认 |
程序控制语句 | do | 运行 |
程序控制语句 | else | 否则 |
程序控制语句 | for | 循环 |
程序控制语句 | if | 如果 |
程序控制语句 | instanceof | 实例 |
程序控制语句 | return | 返回 |
程序控制语句 | switch | 根据值选择执行 |
程序控制语句 | while | 循环 |
错误处理 | assert | 断言表达式是否为真 |
错误处理 | catch | 捕捉异常 |
错误处理 | finally | 有没有异常都执行 |
错误处理 | throw | 抛出一个异常对象 |
错误处理 | throws | 声明一个异常可能被抛出 |
错误处理 | try | 捕获异常 |
包相关 | import | 引入 |
包相关 | package | 包 |
基本类型 | boolean | 布尔型 |
基本类型 | byte | 字节型 |
基本类型 | char | 字符型 |
基本类型 | double | 双精度浮点 |
基本类型 | float | 单精度浮点 |
基本类型 | int | 整型 |
基本类型 | long | 长整型 |
基本类型 | short | 短整型 |
变量引用 | super | 父类,超类 |
变量引用 | this | 本类 |
变量引用 | void | 无返回值 |
保留关键字 | goto | 是关键字,但不能使用 |
保留关键字 | const | 是关键字,但不能使用 |
保留关键字 | null | 空 |
三、数据类型
1.Java基本数据类型
- 位(bit):计算机内部数据储存的最小单位,1100 0111是一个八位二进制数
- 字节(byte):是计算机中处理数据的基本单位,习惯上用大写B来表示
- 1B(byte,字节) = 8bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
1bit表示1位, 1Byte = 8bit, 1024B = 1KB, 1024KB = 1MB,1024MB = 1GB
基本类型 | 占据空间大小 | 取值范围 | 默认值 |
---|---|---|---|
boolean | 不确定 | true/false | 0 |
byte | 一个字节 | -128——127 | 0 |
short | 2个字节 | -215-215-1 | 0 |
int | 4个字节 | -231-231-1 | 0 |
long | 8个字节 | -263-263-1 | 0L |
float | 4个字节 | -2128-2128 | 0.0F |
double | 8个字节 | -21024-21024 | 0.0D |
char | 2个字节 | \u0000 |
2.Java引用数据类型
类、接口、数组 String Byte Integer ……
四、类型转换
//---------强制转换
//强制转换 高-->低
int i = 128;
byte b = (byte)i; // -128 内存溢出
//---------自动转换
//自动转换 低-->高
int i2 = 128;
double d = i2;
//精度丢失
System.out.println((int)23.7); //输出23
System.out.println((int)-45.89f); //输出-45
char c = 'a';
int d = c+1;
System.out.println(d); // 输出 98
System.out.println((char)d); // 输出b
转换中需要注意的问题:
- 不能对布尔类型进行转换
- 不能把对象类型转换为不相干的类型
- 再把高容量转换到低容量时后,强制转换
- 转换的时候可能存在内存溢出,或精度问题!
JDK7新特性,数字之间可以用下划线间隔:
int money = 10_0000_0000; // int范围 -2^31 ~ 2^31-1
System.out.println(money); // 输出1000000000
五、变量、常量、作用域
1.变量
Java语言支持的变量类型有:
- 类变量:独立于方法之外的变量,用 static 修饰。
- 实例变量:独立于方法之外的变量,不过没有 static 修饰。
- 局部变量:类的方法中的变量。
public class Variable{
//类变量 static
static int allClicks=0; // 类变量
//实例变量:从属于对象,如果不自行初始化 数值默认值为0 0.0,
//boolean 默认为 false
//除了基本类型,其他默认都为null
String str="hello world"; // 实例变量
public void method(){
//必须声明和初始化值
int i =0; // 局部变量
}
}
2.变量的命名规范
- 所有变量、方法名、类名:见名知意!
- 类成员变量:首字母小写和驼峰原则:userName,除了第一个单词以外,后面的单词首字母都大写。lastName
- 局部变量:首字母小写和驼峰命名
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则,GoodMan
- 方法名:首字母小写和驼峰原则:run() getUser()
3.常量
- 常量:初始化后不能在改变的值!不会变动的值。
- 所谓常量可以理解为一种特殊的变量,它的值设定以后,在程序运行期间不允许被改变。
final 常量名 = 值
final double PI = 3.14;
常量常用大写字母来表示。
六、基本运算符
1.java语言支持的运算符总览
- 算数运算符:+,-,*,/,%,++,—
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 条件运算符: ?
- 扩展赋值运算符:+=,-=,/=,*=
long a = 1153132165465155L;
int b = 1234;
short c = 10;
byte d = 1;
//相加会自动到大类型
System.out.println(a+b+c+d); //类型 long
System.out.println(b+c+d); //类型 int
System.out.println(c+d); //类型 short
2.自增,自减运算符
//++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //执行代码后,先给b赋值,再自增
//a++ a = a+1;
int c = ++a; //执行完这行代码前,先自增,再给c赋值
System.out.println(a); //输出5
System.out.println(b); //输出3
System.out.println(c); //输出5
3.逻辑运算符
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
//逻辑与运算:两个变量都为真,结果才为真
System.out.println("a&&b :" + (a && b));
//逻辑或运算:两个变量有一个为真,结果为真
System.out.println("a||b :" + (a || b));
//如果是真:则为假。如果是假,则为真
System.out.println("!(a&&b) :" + !(a && b));
4.位运算符
/*
A = 0011 1100
B = 0000 1101
------------------
A&B = 0000 1100 与运算
A|B = 0011 1101 或运算
A^B = 0011 0001 异或,相同为0,不同为1
~B = 1111 0010 取反
2*8 = 16 ---> 2*2*2*2
<< 左移运算 *2
>> 右移运算 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3); //输出16
5.运算的特殊情况
int a =10;
int b =20;
a+=b; // a = a+b;
System.out.println(a); //输出 30
a-=b; // a = a-b;
System.out.println(a); //输出 10
System.out.println("===============");
//对于String字符串类型的,当进行+时,会自动把所有类型转换成String类型
//字符串在前面,后面的都转换成了String类型所以输出1020
System.out.println(""+a+b); //输出1020
//这时先进行 a+b的操作算成30 然后 30再转换成String类型,所以输出30
System.out.println(a+b+""); //输出30
6.三元运算符
// x ? y :z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score>60?"及格":"不及格";
System.out.println(type); // 及格
七、包机制
- 为了更好的组织,JAVA提供了包机制,用于区别类名的命名空间。
- 包语句的语法格式为: package com..
- package必须发放在最上面(第一行)
- 一般利用公司域名倒置作为包名
- 为了能够使用某一个包的成员,我们需要再java程序中明确导入改包。
使用import语句可完成此功能;如:
import java.util.Date;
八、JAVADoc生成文档
javadoc命令是用来生成java文档的
- 首先编辑java代码
package basic;
/**
1. @author Console__
2. @version 1.0.0
3. @ClassName Doc.java
4. @Description 测试JavaDoc
5. @createTime 2021年02月24日 16:32:00
*/
public class Doc {
String name;
/**
* @author Console__
* @param name
* @return 返回某某
*/
public String test(String name){
name = "某某";
return name;
}
}
- 点击index.html进入文档页面
后记
Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154210.html