2-Java基本语法

Java基本语法

关键字与保留字

关键字

定义:被Java 语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写

保留字

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
goto 、const

标识符

标识符

Java 对各种 变量、 方法和类等要素命名时使用的字符序列称为标识符
技巧:凡是自己可以起名字的地方都叫标识符

定义合法标识符规则:

  1. 由26 个英文字母大小写,0-9 ,_或 $ 组成
  2. 数字不可以开头。
  3. 不可以使用关键字和保留字,但能包含关键字和保留字。
  4. Java 中严格区分大小写,长度无限制。
  5. 标识符不能包含空格

Java中的名称命名规范

  1. 包名:多单词组成时所有字母都小写:xxxyyyzzz
  2. 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  3. 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
  4. 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

变量

变量

  1. 内存中的一个存储区域
  2. 该区域的数据可以在同一类型范围内不断变化
  3. 变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

作用:用于在内存中保存数据

注意

  • Java中每个变量必须先声明,后使用
  • 使用变量名来访问这块区域的数据
  • 变量的作用域:其定义所在的一对{ }内
  • 变量只有在其作用域内才有效
  • 同一个作用域内,不能定义重名的变量

声明 赋值

声明变量
语法:<数据类型> <变量名称>
例如:int var;
变量的赋值
语法:<变量名称> = <值>
例如:var = 10;
声明和赋值变量
语法: <数据类型> <变量名> = <初始化值>
例如:int var = 10;

变量的分类

按数据类型

数据类型分类

按声明的位置的不同

在方法体外,类体内声明的变量称为成员变量 。
在方法体内部声明的变量称为局部变量 。

按声明的位置的不同

● 注意:二者在初始化值方面的异同:
同:都有生命周期 异:局部变量除形参外,需显式初始化

整数类型

java的整型常量默认为 int 型,声明long型常量须后加‘l’或‘L’

整数

浮点类型

浮点型常量有两种表示形式:
①十进制数形式:如:5.12 512.0f .512 (必须有小数点)
②科学计数法形式:如:5.12e2 512E2 100E-2
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。通常采用此类型。
Java的浮点型常量默认为double型,声明float 型常量,须后加‘f’ 或‘F’ 。

float表示数值的范围比long还大

浮点类型

字符类型

  • char 型数据用来表示通常意义上“字符”(2字节)
  • Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
  • char类型是可以进行运算的。因为它都对应有Unicode码。

字符型变量的三种表现形式

  1. 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = ‘a’; char c2= ‘中’; char c3 = ‘9’;
  2. Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // '\n’表示换行符
  3. 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。

转义字符

char c = 97;//开发中非常少见,输出的话是'a'

布尔类型

Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示。

基本数据类型转换

自动类型转换

容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:

自动类型转换

  • byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
  • boolean类型不能与其它数据类型运算。
  • 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。

强制类型转换

强制转换符:()

通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。

boolean类型不可以转换为其它的数据类型。

字符串类型

使用方式与基本数据类型一致。例如:String str = “abcd”;
一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。

进制

二进制(binary) :0,1 ,满2进1.以0b或0B开头。
八进制(octal) :0-7 ,满8进1. 以数字0开头表示。
十六进制(hex) :0-9及A-F,满16进1. 以0x或0X开头表示

运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。

  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 位运算符
  • 三元运算符

算术运算符

算术运算符

%取余运算,结果的符号与被模数的符号相同

自增1不会改变本身变量的数据类型

赋值运算符

符号:= 支持连续赋值。

+=不会改变变量本身的数据类型

比较运算符

比较运算符的结果都是boolean型,也就是要么是true,要么是false。

instanceof 检查是否是类的对象 “Hello” instanceof String //true

int i = 10;
int j = 20;
System.out.println(i = j);//20

逻辑运算符

&—逻辑与 | —逻辑或 !—逻辑非 && —短路与 || —短路或 ^ —逻辑异或

逻辑运算符用于连接布尔型表达式

“&”和“&&”的区别:
①:单&时,左边无论真假,右边都进行运算;
②:双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

开发中,推荐使用&&

位运算符

位运算是直接对整数的二进制进行的运算

三元运算符

( 条件表达式)? 表达式1 :表达式2

表达式1和表达式2要求是一致的

运算符的优先级

只有单目运算符、三元运算符、赋值运算符是从右向左运算的。

程序流程控制

  • 顺序结构
  • 分支结构
  • 循环结构

Scanner

1>导包

import java.util.Scanner;

2>Scanner的实例化

Scanner scan = new Scanner(System.in);

3>调用Scanner类的相关方法,来获取指定类型的变量

int num = scan.nextInt();

对于char型的获取,Scanner没有提供相应的方法

switch-case

switch(表达式){
    case 常量1:
        语句1;
        // break;
    case 常量2:
        语句2;
        // break;
    … …
    case 常量N:
        语句N;
        // break;
    default:
        语句;
        // break;
}

1>break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有break,程序会顺序执行到switch结尾

2>switch(表达式)中表达式的值 必须是下述几种类型之一:byte ,short,char ,int, 枚举 (jdk 5.0) ,String (jdk 7.0);

3> default子句是可任选的。同时,位置也是灵活的。当没有匹配的case时,执行default

4>如果switch-case结构中的多个case执行语句相同,则可以考虑进行合并
5>在switch-case的括号里定义的变量,出了括号不能调用,在括号内只能定义一次(不同的case不能定义同名变量)。

循环结构

  1. for 循环
  2. while 循环
  3. do-while 循环

循环语句的四个组成部分
①初始化部分(init_statement)
②循环条件部分(test_exp)
③循环体部分(body_statement)
④迭代部分(alter_statement)

for循环
for (①初始化部分; ②循环条件部分; ④迭代部分){
	③循环体部分;

①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
④可以有多个变量更新,用逗号分隔

class ForTest{
	public static void main(String[] args){
		int sum;
		for(int i=1;i<=100;i++){
			if(1%2!=0){
				System.out.println(i);
				sum=i;
			}else{
				sum=1;
			}
		}
		System.out.println(sum);
	}
}
错误:可能尚未初始化变量sum
while循环

①初始化部分
while(②循环条件部分){
③循环体部分;
④迭代部分;
}

for和while区别:初始化条件部分的作用范围不同

do-while

①初始化部分;
do{
③循环体部分
④迭代部分
}while(②循环条件部分);

do-while 循环至少执行一次循环体

最简单“无限”循环

最简单“ 无限” ” 循环: 格式:

while(true)
for(;;)

无限循环存在的原因是并不知道循环多少次, 需要根据循环体内部某些条件,来控制循环的结束

currentTimeMillis()

long start=System.currentTimeMillis();

break continue

break语句用于终止某个语句块的执行,结束当前循环

{ ……
break;
……
}

continue语句用于跳过其所在循环语句块的一次执行,继续下一次循环,结束当次循环

两个关键字后面都不能声明执行语句,会报错

1>break只能用于switch 语句和循环语句中。
2>continue 只能用于循环语句中。

label
class LabelTest{
	public static void main(String[] args){
		label:for(int i=1;i<=4;i++){
			for(int j=1;j<=10;j++){
				if(j%4==0){
					continue label;
				}
				System.out.print(j);
			}
			System.out.println();
		}
	}
}

return

return:并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到一个return语句时,这个方法将被结束。

与break和continue不同的是,return直接结束整个方法,不管这个return处于多少层循环之内

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值