Java基础语法
1、注释、标识符、关键字
a、注释
单行注释案例
单行注释 :只能注册我们一行文字 // 注释
// Hello,Wrold!
多行注释案例
多行注释:可以注释一段文字 /* 注释 */
/*
Hello,Wrold!
Hello,Wrold!
Hello,Wrold!
*/
文档注释案例
JavaDoc:文档注释 /** */
/**
*注释
*注释
*/
b、标识符
类名 : 例如:Student 学生类、User 用户类、Product 商品类、Order 订单类等。
接口名: 例如:Runable 可运行的、Comparable 可比较的等。
变量名: 例如:name 名字、age 年龄、birth 生日、length 长度 等。
方法名: 例如:login 登录、logout 登出、eat 吃、drink 喝等。
常量名: 例如:LOGIN_SUCCESS、ACCESS_TOKEN 等。
标识符命名规范
① 标识符只能由数字、字母、下划线“_”、美元符号“$”组成,不能含有其它符号。
② 标识符不能以数字开始。
③ java 关键字和保留字不能作为标识符。
④ 标识符严格区分大小写。
⑤ 标识符理论上没有长度限制。
1、见名知意:看到这个单词就知道它表示什么,增强程序的可读性,例如:Student 则表示学生类型,User 则表示用户类型;
2、驼峰命名方式:可以很好的分隔单词,每个单词之间会划清界限,同样也是增强程序的可读性,例如:getName 则表示获取名字,UserService 则表示用户业务类;
3、类名、接口名首字母大写,后面每个单词首字母大写,这是遵守驼峰命名方式的;
4、变量名、方法名首字母小写,后面每个单词首字母大写,这也是遵守驼峰命名方式的;
5、常量名全部大写,单词和单词之间使用“_”衔接,为了表示清楚含义,不要怕单词长,例如:INT_MAX_VALUE 则表示 int 类型最大值。
c、关键字
1.访问修饰符的关键字(共3个)
关键字 | 意思 | 备注,常用 |
---|---|---|
public | 公有的 | 可跨包,(默认选择) |
protected | 受保护的 | 当前包内可用 |
private | 私有的 | 当前类可用 |
2.定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(共6个)
关键字 | 意思 | 备注,常用 |
---|---|---|
class | 类 | public class A(){} 花括号里有已实现方法体,类名需要与文件名相同 |
interface | 接口 | public interface B(){} 花括号里有方法体,但没有实现,方法体句子后面是英文分号“:”结尾 |
abstract | 声明抽象 | public abstract class C(){} 介于类与接口中间,可以有也可以没有已经实现的方法体 |
implements | 实现 | 用于类或接口实现接口public class A interface B(){} |
extends | 继承 | 用于类继承类 public class A extends D(){} |
new | 创建新对象 | A a=new A(); A表示一个类 |
3.包的关键字(共2个)
关键字 | 意思 | 备注,常用 |
---|---|---|
import | 引入包的关键字 | 当使用某个包的一些类时,仅需类名 然后使用ctrl+shift+o或者选定类名(类或属性或方法)按住ctrl+单击 即可自动插入类所在的包。如:JFrame 快捷键之后自动加入import javax.swing.JFrame; |
package | 定义包的关键字 | 将所有有关的类放在一个包类以便查找修改等。如:package javake.flycat.draw002; |
4.数据类型的关键字(共9个)
关键字 | 意思 | 备注,常用 |
---|---|---|
byte | 字节型 | 8bit |
char | 字符型 | 16bit |
boolean | 布尔型 | – |
short | 短整型 | 16bit |
int | 整型 | 32bit |
float | 浮点型 | 32bit |
long | 长整型 | 64bit |
double | 双精度 | 64bit |
void | 无返回 | public void A(){} 其他需要返回的经常与return连用 |
5.条件循环(流程控制)(共12个)
关键字 | 意思 | 备注,常用 |
---|---|---|
if | 如果 | if(){} 如果小括号里面怎么怎么样 花括号就怎么怎么样 |
else | 否则,或者 | 常与if连用,用法相同 |
while | 当什么的时候 | while 怎么样就do什么 while(){} |
for | 满足三个条件时 | for ( ; ; ){} |
switch | 开关 | switch(表达式) { case 常量表达式1:语句1; … case 常量表达式2:语句2; default:语句; } default就是如果没有符合的case就执行它,default并不是必须的. case后的语句可以不用大括号. switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型. |
case | 返回开关里的结果 | |
default | 默认 | |
do | 运行 | 长与while连用 |
break | 跳出循环 | |
continue | 继续 | 中断本次循环,并并开始下一次 |
return | 返回 | return 一个返回值类型 |
instanceof | 实例 | 一个二元操作符,和==,>,<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据 |
6.修饰方法、类、属性和变量(共9个)
关键字 | 意思 | 备注,常用 |
---|---|---|
static | 静态的 | 属性和方法都可以用static修饰,直接使用类名.属性和方法名。 只有内部类可以使用static关键字修饰,调用直接使用类名.内部类类名进行调用。 static可以独立存在。静态块 |
final | 最终的不可被改变的 | 方法和类都可以用final来修饰 final修饰的类是不能被继承的 final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量。 |
super | 调用父类的方法 | 常见public void paint(Graphics g){super.paint(g); ··· } |
this | 当前类的父类的对象 | 调用当前类中的方法(表示调用这个方法的对象)this.addActionListener(al):等等 |
native | 本地 | |
strictfp | 严格,精准 | |
synchronized | 线程,同步 | |
transient | 短暂 | |
volatile | 易失 |
7.错误处理(共5个)
关键字 | 意思 | 备注,常用 |
---|---|---|
catch | 处理异常 | 1.try+catch 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句 2.try+catch+finally 程序的流程是:运行到try块中,如果有异常抛出,则转到catch块,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。 如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后面的语句 3.try+finally 程序的流程是:运行到try块中,如果有异常抛出的话,程序转向执行finally块的代码。那末finally块后面的代码还会被执行吗?不会!因为你没有处理异常,所以遇到异常后,执行完finally后,方法就已抛出异常的方式退出了。 这种方式中要注意的是,由于你没有捕获异常,所以要在方法后面声明抛出异常 (来自网上的资料) |
try | 捕获异常 | |
finally | 有没有异常都执行 | |
throw | 抛出一个异常对象 | 常对象 一些可以导致程序出问题的因素,比如书写错误,逻辑错误或者是api的应用错误等等. 为了防止程序的崩溃就要预先检测这些因素,所以java 使用了异常这个机制. 在java中异常是靠 “抛出” 也就是英语的"throw" 来使用的,意思是如果发现到什么异常的时候就把错误信息 “抛出” |
throws | 声明一个异常可能被抛出 | 把异常交给他的上级管理,自己不进行异常处理 |
3、数据转换
Java中数据类型主要分为两大类:基本数据类型和引用数据类型。基本数据类型有四类八种
1.四类: 整型 , 浮点型 , 字符型 , 以及布尔型
2.八种:
数据类型 | 关键字 | 内存占用 | 范围 |
---|---|---|---|
字节型 | byte | 1字节 | -128 ~ 127 |
短整型 | short | 2字节 | -32768 ~ 32767 |
整型 | int | 4字节 | -2^31 ~ 2^31-1 |
长整型 | long | 8字节 | -2^64 |
单精度浮点数 | float | 4字节 | 有范围,一般不关注 |
双精度浮点数 | double | 8字节 | 有范围,一般不关注 |
字符型 | char | 2字节 | 0 ~ 65535 |
布尔型 | boolean | 没有明确规定 | true和false |
4、变量、常量
-
变量: 静态变量、实例变量、局部变量
-
常量: 常量、静态常量
变量的使用
- **静态变量:**被static 修饰,定义在所有方法体之外。
- 实例变量: 不被static修饰,定义在所有方法体之外。
- 局部变量: 定义在方法体内。
public class Test{ public static int k; //静态变量,也叫类变量 public String s; //实例变量 public static void main(String[] args){ double d; //局部变量 } }
需注意:
-
静态变量或实例变量在一个类中可以和局部变量重名,但方法体内使用时可能会出现掩盖效果。
-
嵌套的块内不能出现重名的局部变量,同一个类中静态变量和实例变量不能重名
-
实例变量和局部变量需要初始化之后才能使用,但是对象实例化时,实例变量会自动赋初值!!!
-
静态变量会默认初始化值,byte、short、int、long类型为0,double、float类型为0.0,char类型为 ‘\u0000’,boolean类型为false,引用类型为null。
常量的使用
-
**常量:**关键字final 修饰
-
**静态常量:**加上修饰符static,定义在所有方法体之外。
public class Test{ //public final int MAX; 报错 public static final String STR = "123"; //静态常量 public static void main(String[] args){ final String STR2; //不报错 STR2 = "456"; //赋值 //STR2 = "789"; 再次赋值,报错 } }
需注意:
1、常量在方法体外一经定义,必须马上赋值,否则会报错;
2、方法体内可以稍后赋值,但只能赋值一次。
-
5、运算符
a、算数运算符
运算符 | 含义 |
---|---|
+ | 求和 |
- | 相减 |
* | 乘积 |
/ | 商 |
% | 求余数(求模) |
++ | 自加一 |
– | 自减一 |
b、逻辑运算符
运算符 | 含义 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
c、关系运算符
运算符 | 含义 | 结果 |
---|---|---|
& | 逻辑与(可以翻译成并且) | 两边都是true,结果才是true |
│ | 逻辑或(可以翻译成或者) | 有一边是true,结果就是true |
! | 逻辑非(取反) | !true = false、!false = true |
&& | 短路与 | 两边都是true,结果才是true |
││ | 短路或 | 有一边是true,结果就是true |