【java基础】——java基本语法(1),
分享于 点击 49761 次 点评:90
【java基础】——java基本语法(1),
一、java语言基础构成
java语言的基础由关键字、标识符、注释、常量和变量、运算符、语句、函数、数组构成。二、java关键字和保留字
1、关键字
定义:被java语言赋予了特殊涵义的单词。 特点:关键字中所有字母均为小写。 关键字共有50个,分为以下类型,都有其特殊含义。- 用于定义数据类型的关键字(下表)
class | interface | byte | short | int |
long | float | double | char | boolean |
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(strict float point,精确浮点),
volatile(类型修饰符,用来修饰被不同线程访问和修改的变量),
assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)。
2、保留字:以后可能用的。const、goto
三、java中的常量与变量
1、常量
常量:表示不能改变的数值。 java中常量的分类:- 整数常量:所有整数
- 小数常量:所有小数
- 布尔型常量:较为特有,只有两个数值,true和false
- 字符常量:将一个数字字母或符号用单引号(‘’)标识
- 字符串常量:将一个或者多个字符用双引号标识
- null常量:只有一个数值,null
- 二进制:0和1表示,满2进1
- 十进制:0~9,满10进1
- 八进制:0~7,满8进1,开头用O表示
- 十六进制:0~9,A~F,满16进1,开头用Ox表示
- 技术实现简单,计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”来表示。
- 简化运算规则,两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。
- 适合逻辑运算,逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数的“真”与“假”相吻合。
- 易于进行转换,二进制与十进制数易于互相转换。
- 用二进制表示数据具有抗干扰能力强,可靠性高等优点。因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠的分辨出它是高还是低。
2、变量
- 定义:内存中的一个存储空间,该空间有自己的名称(变量名)和类型(数据类型)。
- 作用:用于不断的存放同一类型的常量,并可以重复使用。
- 定义的格式:数据类型 变量名 = 初始化值。 如:int x = 6;
- 变量的作用范围:从变量定义开始到定义它的代码块结束。同一范围内,不允许多个局部变量命名冲突。
- 什么时候定义变量:当数据不确定的时候,需要对一个数据进行存储时,就定义一个变量来完成存储动作。
①应以字母、下划线、或美元符号开头。 ②后面接字母、下划线、美元符号或者是数字。 ③java变量名没有长度限制。 ④java变量名对大小写敏感。 驼峰命名法: ①变量名应该用有意义的单词。 ②变量名如果只有一个单词,则所有的字母小写。 ③变量名如果由多个英文单词组成,则从第二个单词开始首字母大写。 下面举一些例子来说明命名规则: 合法的变量名:Password、last_name、$abc、_ref 正确的变量名:password、last_Name
3、数据类型
- java是一种强类型语言。这就意味着java必须为没一个变量声明一种类型。在java中,一共有8中基本类型,其中有4种整型、2种浮点类型、一种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型。
- java中有两种基本数据类型:基本数据类型和引用数据类型,其结构图如下:
- 基本数据类型:所占字节数及取值范围如下图:
基本数据类型的转换: 在java中基本数据类型共有8中,其中boolean型不能转换成其它类型,其它类型也不能转换呈boolean类型。 除boolean类型外,剩下的7种类型按照他们容量的大小,从小到大,依次排序为:
- 容量小的向容量大的,可以自动转换,比如可以将一个int类型的值直接赋值给double,如:double d = 34;
- 容量大的向容量小的转换,则必须进行强制类型转换,如:int i = (double)32.42;
- 整数类型常量默认为int类型,浮点型常量默认为double类型
- 在多种数据类型进行混合运算时,容量小的自动转换成整个表达式中容量最大的,然后再进行计算。
- 在进行多种数据类型混合运算时,byte、short、char三种类型不会相互转换,他们各自转换成int再进行计算。
- 在有些时候,容量小的会自动提升为容量大的,比如方法重载传递参数的时候,但byte、short不会自动提升为char。
- 注意:强制类型转换虽然能通过编译,但运行时,有可能会造成数据溢出,损失精度。
四、java中的运算符
1、算术运算符
- 单目运算符:+(正)、-(负)、++(自增)、--(自减)
- 双目运算符:(+、-、*、/、%)(加、减、乘、除、模)
- 三目运算符:a>b?表达式1:表达式2。注:当a>b为true时,返回表达式1的值,否则返回表达式2的值。
package com.huang.test;
/**
*@author huangxiang
*@date 创建时间:2015年3月10日下午10:32:30
*@version 1.0
*/
public class TestDemo {
//演示算术运算符
public static void main(String[] args) {
//单目运算符的演示
int a = 5,b=4,c=8;
int d = a+b-c*b;
int e = a>d?a:d;//三目运算符
System.out.println(d);//d = -23
System.out.println(e);//e = 5;
}
}
2、赋值运算符:=、+=、-=、*=、/=、%=
3、比较运算符:==(比较的是左右两边的变量是否来自于同一个内存地址)
注:①==运算符比较的是值类型,(如基础数据类型,int之类的)的话,由于值类型是存储在栈里面的,当两个变量有同一个值时,其 实他们只用到了一个内存空间,所以比较的结果是true。public class Test2Demo {
public static void main(String[] args) {
int a = 1;
int b = 1;
System.out.println(a==b);//结果为true
}
}
②如果比较两个引用类型,则比较的就是它们的引用地址。这时候就要看两个变量是否引用自同一个地址的内存了。
public class Test2Demo {
public static void main(String[] args) {
String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2);//结果为true
}
}
但是如果:
public class Test2Demo {
public static void main(String[] args) {
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s1==s2);//结果为false
}
}
为什么结果会不同呢?
原因:a、java中有字符串缓冲池。在例子1中,S1和S2用的是同一个内存空间的“abc”,所以此时==的结果为true。
b、在例子2中,S2使用了new操作符重新申请了空间,没有用到缓冲池里的原有变量,因此,虽然S1和S2的值都是"abc"。 但所属不同内存空间,所以==的结果为false。
4、逻辑运算符(&&、||、!、|、&、^)
其中,&和&&的特点是:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算;如果左边为假,则右边不参与运算。而“|”和“||”的特点是:“|”表示其两边都参与运算。而“||”时,表示当左边为真,右边不参与运算。
5、位运算符(&、|、^、~、>>、<<、>>>)
- 左移(<<):被移除的高位丢弃,空位补0
- 右移(>>):被移位的二进制最高位是0,则右移后空位补0;最高位为1,空位补1。
- 无符号右移(>>>):被移位的二进制无论最高位是什么,都补0
- 与(&):与二进制位进行&运算,两个全部为1,结果为1,否则为0
- 或(|):与二进制为进行|运算,只有两个都为0是才是0,否则为1
- 异或(^):两个操作数的位中,相同结果为0,不同为1
- 非(~):取反.
6、Instanceof
该运算符是双目运算符,左边操作的是一个对象,右边操作的是一个类或接口。当左面的对象是右边的类(或右边的类的子孙类)创建的对象、或者是右边接口的实现类(或实现的子孙类)的对象时,该运算符结果为true,否则为false。五、标识符
定义:在java语言中,对于变量、常量、函数、语句块也有名字,我们通通称之为java标识符。标识符是用来给类、对象、方法、变量和自定义数据类型命名的。 标识符的组成:标识符由数字、字母、下划线、美元符号组成。java中是区分大小写的,而且还要求首字母不能是数字。最重要的是,java关键字不能当做标识符。 如: 合法标识符:myName、My_name、Points、_3_ 非法标识符:#name、25name、class、&time标识符命名约定:
- 类名和接口:每个字的首字母大写,含有大小写。如;Myclass、HelloWorld等
- 方法名:首字母小写,其余的字母大写,含有大小写,尽量少用下划线。
- 常量名:基本数据类型的常量名全部使用大写字母,字与字之间用 下划线分隔。对象常量可用大小写混写。如:SIZE_NAME。
- 变量名:可大小写混写,首字母小写,字间 分隔符用字的首字母大写。不用下划线,少用美元符号。给变量名命名尽量见名知意。
相关文章
- 暂无相关文章
用户点评