【java基础】——java基本语法(1)


一、java语言基础构成

java语言的基础由关键字、标识符、注释、常量和变量、运算符、语句、函数、数组构成。

二、java关键字和保留字

1、关键字

定义:被java语言赋予了特殊涵义的单词。
特点:关键字中所有字母均为小写。
关键字共有50个,分为以下类型,都有其特殊含义。
  • 用于定义数据类型的关键字(下表)
classinterfacebyteshortint
longfloatdoublecharboolean
void    




  • 用于定义数据类型值的关键字:true,false,null
  • 用于定义流程控制的关键字(下表)

ifelseswitchcasedefault
whiledoforbreakcontinue
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,精确浮点),
                                transient(变量修饰符,用它声明一个实例变量,在对象序列化时不会被序列化),
                                         volatile(类型修饰符,用来修饰被不同线程访问和修改的变量),
                                         assert(断言,可以看作是异常处理的一种高级形式,用于捕捉我们在代码中做出的假设)。

2、保留字:以后可能用的。const、goto

三、java中的常量与变量

1、常量

常量:表示不能改变的数值。
java中常量的分类:
  • 整数常量:所有整数
  • 小数常量:所有小数
  • 布尔型常量:较为特有,只有两个数值,true和false
  • 字符常量:将一个数字字母或符号用单引号(‘’)标识
  • 字符串常量:将一个或者多个字符用双引号标识
  • null常量:只有一个数值,null
对于整数,java有三种表现形式:
  • 二进制: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。
  • 变量名:可大小写混写,首字母小写,字间 分隔符用字的首字母大写。不用下划线,少用美元符号。给变量名命名尽量见名知意。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值