Java的基本语法
注释
用于对代码的说明,程序运行时不会执行注释
// 单行注释,快捷键是ctrl+/
//单行注释
/* */ 多行注释,快捷键是ctrl+shift+/,取消注释的快捷键是ctrl+shift+\
/*
多行注释
*/
/** */ 文档注释,用于为类,方法,属性,功能进行说明,可以在调用时进行提示,以及javadoc命令生成说明文档
/**
定义一个人类
*/
public class person{
/**
人的年龄
*/
int age;
/**
人可以吃饭
*/
public void eat(){
}
}
关键字
被Java语言赋予特殊含义的单词,主要用来修饰包,类,变量,方法
特点:关键字都小写
java的关键字有50个,其中const和goto是保留字(在java中没有定义功能,但是不能被用来定义变量名称)
标识符
Java语言中对类,方法,变量,包等要素进行命名使用的字符序列(自己可以起名字的)
命名规则:
①语法强制要求
由26个英文字母大小写,0-9,_或$组成
数字不能开头
不可以使用关键字和保留字,但能包含关键字和保留字
Java中严格区分大小写
长度无限制
标识符不能包含空格
②约定俗成
为提高可读性尽量将表示符写的一看到名字就知道是什么意思
包名:全部字母小写
类名接口名:由多单词组成时所有单词首字母大写
方法名变量名:由多单词组成时除第一个单词首字母小写以外所有单词首字母大写
常量名:所有字母都大写,多单词组成时每个单词用下划线连接
基本数据类型
基本类型:8种关键字修饰定义 结构简单
整数:
byte 一个字节
short 两个字节
int 四个字节
long 八个字节(整数默认是int,定义long类型时需要在数的末尾加L或l)
long d = 2147483648L;
//0b开头 表示是二进制
int e = 0b11;
//0x开头 表示是十六进制
int f = 0x11;
//0开头 表示是八进制
浮点:
float 四字节,单精度,尾数可以精确到7位有效数字
double 八字节,双精度,精度是float的两倍(Java的浮点型常量默认为double型,使用float时需要在数的末尾加F或f)
字符:
char 两字节 只能表示一个字符(因为在计算机不认识字符,所有在存储时,在编码表中为每个字符定义一个编号,用Unicode编码兼容了ASCII)
char类型可以参与运算的本质是用Unicode编码中十进制编号
布尔:
boolean 结果只能是true或false
引用类型:String,Integer等
运算符
java语言支持的运算符:
算数运算符
比较运算符
比较运算符的结果只能是true和false
逻辑运算符
&和&&是有去别的,如果&&的前一个结果为false他就不会再向后去执行了,&则不然(||和|也相似)
int x = 1;
int y = 1;
if(x++ == 2 && ++y == 2){
x = 7;
}
System.out.println("x=" + x + ",y=" + y);
//输出结果为: x=2,y=1
int x = 1;
int y = 1;
if(x++ == 2 & ++y == 2){
x = 7;
}
System.out.println("x=" + x + ",y=" + y);
//输出结果为: x=2,y=2
赋值运算符
当等号两边数据类型不一样时会强制转换
= 两边数据类型不一样会直接报错
+= 符号可以进行隐式的数据类型转换
条件运算符
位运算
位指的是二进制的比特位,位运算多用于优化算法
控制台输入
-
导包:import java.util.Scanner;(使用系统其它类时,先需要导入,java.lang包除外)
-
创建Scanner类型的对象:Scanner scan = new Scanner(System.in);
-
调用Scanner类的相关方法(
next() / nextXxx()
),来获取指定类型的变量
next()方法用以 取得用户输入的字符串;
nextInt()将取得的输入字符串转换为整数类型;
nextFloat()转换成浮点型;
nextBoolean()转 换成布尔型。
System.out.print("请输入姓名");
Scanner scan = new Scanner(System.in);
String name= scan.next ();
System.out.println("姓名:"+name);
控制语句
条件语句
if
switch语句
case的穿透性
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是一旦匹配成功,不会在判断下一个case的值,直接向后运行,直到遇到break或者整个switch语句结束,执行终止。
if-else语句与switch-case语句比较
结论:凡是使用switch-case的结构都可以转换为if-else结构。反之,不成立。
开发经验:如果既可以使用switch-case,又可以使用if-else,建议使用switch-case因为效率稍高。
if-else语句优势
if语句的条件是一个布尔类型值,if条件表达式为true则进入分支,可以用于范围的判断,也可以用于等值的判断,使用范围更广。switch语句的条件是一个常量值(byte,short,int,char,枚举,String),只能判断某个变量或表达式的结果是否等于某个常量值,使用场景较狭窄。
switch语句优势
当条件是判断某个变量或表达式是否等于某个固定的常量值时,使用if和switch都可以,习惯上使用switch更多。因为效率稍高
。当条件是区间范围的判断时,只能使用if语句。