前言
本文为【JavaSE】基础语法相关介绍,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~
一、注释
//单行注释 /* 多行 注释 */ /** * @Description 文档注释 * @author 某某 */
二、标识符和关键字
1.标识符定义
标识符定义:
包名、类名、方法名、参数名、变量名等,这些符号被称为标识符
标识符可以由字母、数字、下划线(_)和美元符号($)组成
标识符不能以数字开头,不能是java中的关键字
首字符之后可以是字母(AZ 或者 az),美元符($)、下划线(_)或数字的任何字符
标识符对大小写敏感
正确的标识符:
Username、username123、user_name、_userName、$username
不正确的标识符:
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; } }
进入到程序的文件夹,在路径栏中直接输出cmd
在命令行中输入 以下内容,注意Doc.java换成你的java文件名,然后回车
到源代码目录中会发现自动生成了很多html页面
点击index.html进入文档页面
九、
后记
本文下接:XXXX
Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~