第二章 Java 基本语法1
2.1关键字
1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。
2.特点:关键字中所有字母都是小写字母。
3.分类:
用于定义数据类型的关键字:byte、short、int、long、float、double、char、boolean、class、interface、enum、void
用于定义数据类型值的关键字:true、false、null
用于定义流程控制的关键字:if else switch case default while do for break continue return
用于定义访问权限修饰符的关键字: private protected public
用于定义类,函数,变量修饰符的关键字:abstract final static synchronized
用于定义类与类之间的关键字:extends implements
用于定义建立实例及引用实例,判断实例的关键字:new this super instanceof
用于异常处理的关键字:try catch finally throw throws
用于包的关键字:package import
其他修饰符关键字:native strictfp transient volatile assert
2.2标识符
1.定义:Java对各种变量,方法和类等要素命名时使用的字符序列成为标识符;凡是自己可以起名字的地方都叫标识符。
2.定义合法标识符规则:
由26个英文字母大小写,数字,0-9,_或$组成。
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
3.注意:在起名字时,要尽量“见名知意”
4.Java中的名称命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz
类名接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
2.3变量
1.概念:
内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
Java中每个变量必须先声明,后使用
该区域的数据可以在同一类型范围内不断变化
2.定义变量的格式:数据类型 变量名=初始化值
3.使用变量注意:变量的作用域:一对{}之间有效
4.变量的分类
按被声明的位置划分:
成员变量:方法外部、类的内部定义的变量
局部变量:方法或语句块内部定义的变量
注意:类外面(类对应的大括号外面)不能有变量的声明
按所属的数据类型划分:
基本数据类型变量、引用数据类型变量
//变量: //1.java中的变量定义的格式:数据类型 变量名=初始化值 class TestVeriable { public static void main(String[] args) { //2.变量得先定义后使用 int myInt1=10; double d1=12.3 System.out.println("myInt1"); System.out.println("myInt1+d1"); //i1超出了其作用的范围,不可使用 //System.out.println(i1); } public void method1(){ int i1=10; System.out.println(i1); } }
注:基本数据类型的值直接放到内存中,引用类的值在堆内存中,栈内存中放的是堆内存的首地址
字符串不是基本数据类型,而是引用类型
数值数据类型及转义字符
//变量:基本数据类型(8个) vs 引用数据类型(类、接口、数组) //1.java中的变量定义的格式:数据类型 变量名=初始化值 class TestVeriable { public static void main(String[] args) { //2.变量得先定义后使用 int myInt1=10; double d1=12.3 System.out.println("myInt1"); System.out.println("myInt1+d1"); //i1超出了其作用的范围,不可使用 //System.out.println(i1); //3.整型:byte(-128~+127) short int(默认类型) long byte b1=12; //byte b2=128; short s1=128; int i1=12; //定义long型变量,值的末尾加“L”或“l” long l1=2134123351345325L; System.out.println(l1); //4.浮点型(带小数点的数值):float double(默认类型) double d1=12.3; //声明float类型的浮点型数据,末尾要加“F”或“f” float f1=12.3F; System.out.println(f1); //5.字符型(=两个字节):char只能表示一个字符(英文、中文、标点符号、日文....) char c1='a'; //char c2='ab'; String str="ab"; char c3='中'; String str1="中国"; //可以表示转义字符 char c4='\t'; char c5='\n'; System.out.println("abc"+c5+"def"); //了解 char c6='\u1234'; System.out.println(c6); //6.布尔类型:boolean 只能够取值为ture或false,不能取值null boolean bool1=true; if(bool1){ System.out.println(“我是个\”美\“女”); }else{ System.out.println(“你在说谎!”); } public void method1(){ int i1=10; System.out.println(i1); } }
数据类型按容量大小排序为:
/* 变量之间的运算:(不考虑boolean.剩下:char byte short int long float double) 1.自动类型转换 2.强制类型转换 */ class TestVeriable1 { public static void main(String[] args){ //1.自动类型转换:当容量小的数据类型与容量大的数据类型做运算时,容量小的会自动转换为 //容量大的数据类型:char,byte,short===>long===>float===double int i1=12; short s1=2; int i2=i1+s1; float f1=12.3F; float f2=f1+i2; //float d1=f2+12.3; long l=12L; float f3=l; System.out.println(i2); System.out.println(f2); char c1='a';//97 c1='A';//65 int i3=c1+l; System.out.println(i3); //需要注意的:当char\byte\short之间做运算时,默认的结果为int类型 short ss1=12; byte bb1=1; char cc1='a'; //short ss2=ss1+bb1; int ii1=ss1+bb1; //char cc2=cc1+bb1; int ii2=cc1+bb1; short ss2=l1; //short ss3=ss1+ss2; int ii3=ss1+ss2; //2.强制类型转换:容量大转换为容量小的.要使用强制类型转换符:() //强制类型转换的问题:导致精度的损失 long l1=12345l; int m1=(int)l1; System.out.println(m1); byte by1=(byte)m1; System.out.println(by1); //平时常用的字符串,也是一种数据类型:String String nation="我是一个中国人"; System.out.println(nation); //字符串与基本数据类型之间的运算:只能是连接运算:+。得到的结果仍为一个字符串 String str="abc"; String str1=str+m1;//abc12345 System.out.println(str1); //题目: String str1="hello"; int myInt1=12; char ch1='a'; System.out.println(str1+myInt1+ch1);//hello2a System.out.println(myInt1+ch1+str1);//109hello System.out.println(ch1+str1+myInt1);//ahello12 } }
2.4进制
1.对于整数,有四种表示方式:
二进制:0,1,满2进1.以0b或0B开头。
十进制:0-9.满10进1
八进制:0-7,满8进1,以数字0开头表示。
十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写。
2.5 运算符
2.5.1 赋值运算符
赋值运算符即“=”,是一个二元运算符(即对两个操作数进行处理),其功能是将右方操作数所含的值赋值给左方的操作数。
语法格式: 变量类型 变量名=所赋的值
tips:左方必须是一个变量,右边所赋的值可以是任何数值或表达式,包括变量,常量或有效的表达式。
运算规则:先计算右方的值,将结果赋值给左边。
note:在Java中可把赋值运算符连在一起使用,eg: x=y=z;
2.5.2 算术运算符
tips:1."+"、"-"运算符可以作为数据的政府符号,eg:+5,-7
2.除法运算时,0不可以作除数。eg:int a=5/0,系统会报出ArithmeticException的异常。
//测试算术运算符:+ - + - * / % class TestAri { public static void main(String[] args){ //除:/ int i=12; int j=i/5; double d=i/5; double d1=i/5.0; System.out.println(j);//2 System.out.println(d);//2.0 System.out.println(d);//2.4 //取模:%:取余数。结果的符号取决于被模数 int i1=12%5; int i2=-12%5; int i3=12%(-5); int i4=-12%(-5); System.out.println(i1); System.out.println(i2); System.out.println(i3); System.out.println(i4); } }
2.5.3自增自减运算符
自增、自减运算符是单目运算符,可放在操作元之前,也可放在操作元之后。操作元必须是一个整型或是浮点型变量。放在操作元前面的自增、自减运算符,会先将变量的值加1(减1),然后再使该变量参与表达式的运算;放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量加1(减1)。代码如下:
//测试自增自减运算符: ++ -- class TestAri { public static void main(String[] args){ //前++:先自增1,后做运算 //后++:先做运算,后自增1 int myInt1=10; int myInt2=myInt1++;//后++ System.out.println(myInt1);//11 System.out.println(myInt2);//10 int myInt3=10; int myInt4=++myInt3;//前++ System.out.println(myInt3);//11 System.out.println(myInt4);//11 //前--:先自减1,后做运算 //后--:先做运算,后自减1 int myInt5=10; int myInt6=myInt5--;//后-- System.out.println(myInt5);//9 System.out.println(myInt6);//10 int myInt7=10; int myInt8=--myInt7;//前-- System.out.println(myInt7);//9 System.out.println(myInt8);//9 } }
3.5.4 比较运算符
比较运算符属于二元运算符,用于程序中的变量和变量之间、变量和常量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是ture,否则结果时false。比较运算符通常用在条件语句中来作为判断的依据。比较运算符的种类和用法如表所示: