java语言基础

  第一部分 数据类型概述

第一节 基本数据类型

Java语言的数据类型非常丰富,除了基本的数据类型以外,还有一些引用数据类型。基本数据类型包含单一的值,包括我们在学习C语言中所用到的整型、浮点型、布尔型和字符型等。在引用数据类型中,变量的值是引用另一个变量所代表的真实的值,比如数组,类和接口等。在创建一个类的同时也创建了一个新的数据类型。

1.整数类型

Java定义了4种整数类型,分别是字节型(byte)、整型(int)、短整型(short)和长整型(long)。Java不支持仅仅是正的无符号整数。所有的数值类型都有正负号,所以不要去寻找无符号的数值类型,这点一定要注意,我们在学习C语言的时候,有一个无符号型,但是在java语言中不同,请大家注意区别。

在java中,整数类型的长度实际上并不是表示它占用的存储空间,而表示的是该类变量所能表示的最大数的二进制位数。


这一点大家要注意,和C语言中的数据类型不同。但是相似的是,java中八进制的数开头都是以数字0作为开头,十六进制的数都是以0X作为开头的,这里所说的数在java中属于字节型(byte)。

Short型的整数值也有八进制,十进制,十六进制,表示方法和byte型数表示相同,例如:

Short x=068;                        //表示short类型的八进制数

Short y=68;                         //表示short类型的十进制数

Short z=0x68;                       //表示short类型的十六进制数

[例2.1]short类型数值的不同表示方法

Public class ShortNum

{

  Public static void main(String args[])

  {

    Short x=0134;

    Short y=134;

    Short z=0x134;

    System.out.println(转换成十进制数的x=+x);

    System.out.println(转换为十进制数的y=+y);

    System.out.println(转换为十进制数的z=+z);

  }

}

从这个例题中我们可以看出来,short类型中也拥有十进制,八进制和十六进制数,他们的表示方法也不相同,如果我们将程序代码中的short z=0x134;换成byte z=0x134; 这是不行的,编译的时候会出现错误,因为0x134这个数值不在byte类型的范围内,在这里大家一定要注意数据的取值范围,避免编译出错。

整数类型(int)无论是在C语言中还是在java语言中都比较常用,因为int类型的数据表示的范围比较大,可以满足一般情况下的使用,如果处理较为大的数据的时候,我们可以考虑使用long类型进行处理,long类型中也有十进制,八进制和十六进制的区别,表示方法和上文所讲到的short的表示方法类似,但是需要注意一点,在数据的最后加上大写字母L,例如:

Long x=0234L;

Long y=234L;

Long z=0x234L;

同样的,我们使用一个例子加以说明。

[例2.2]long类型数的使用和表示。

Public class LongNum

{

  Public static void main(String args[])

  {

    Long x,y,z;

    X=056635L;

    Y=012443L;

    Z=x*y;

    System.out.println(x+*+y+=+z);

  }

}

   在这个例子中,我们看到,我们先声明了x,y,z三个变量是整型变量,这一点和C语言比较相似,变量都是先声明,然后使用,标为蓝色加粗的那一行表示x,y在这时自动变为十进制数显示。

2.浮点型

对于浮点型,和C语言中较为相似的是,java语言中的浮点型也分为单精度和双精度型,在对变量赋初始值的时候,对单精度数值后面要加上字母F作为标记,例如float x=1.2e+7F,对于双精度浮点型而言,在变量赋初始值的时候,应在数值后加上字母D作为标记,例如,double y=2.7e+14D。

3.字符型

字符类型(char)可以转换为整数,其整数值的范围介于0至65535之间。Char字符类型以2个字节表示每一个字符(C语言中是一个字节)。定义char字符的时候,必须使用一对单引号(’’)将字符围起来,例如:char tat=‘A’。除此之外,java语言中和C语言一样,还有一种以“\”来头的字符,也称为转义字符。

     \b                            表示空格

     \n                            表示回车     

     \r                            表示光标换行

     \t                            表示一个制表符(TAB)

     \\                            表示反斜杠

     \‘                           表示单引号

     \                           表示双引号

这里面提示一点,和C语言不同的是,java可以用a+1表示字符b,但是字符数据不可以作为整数,整数也不可以代替字符使用。

4.布尔型

这个数据类型,java和C语言不同,在java中,布尔型数据不和任何整数数值对应。布尔型数据只有两个值,true 和 false。例如:

Boolean x=true;

  

第二部分 常量和变量

Java中的常量和变量一样,也有不同的数据类型。常量通常指的是,在运算过程中不做任何改变的量。java中有整型常量,浮点型常量,字符型常量,布尔型常量,字符串常量等。

1.数值常量

     显而易见,在数值类型中,常量可以是整型,字符型和浮点型等,他们都采用十进制,八进制和十六进制进行标示。

2.字符常量

字符常量代表一个字符,java中使用Unicode作为字符集来表示字符。

3.布尔常量

布尔常量只有两个数值,true 和 false。

常量在整个程序的运算过程中不能被改变,任何尝试改变常量的行为都会被报错,在定义常量的时候我们通常用final定义。

[例2.3]java中常量的定义

Public class TestFinal

{

    Public class void main(String args[])

 {

    Final double PI = 3.1415926;

    Double r = 4.0;

    Double s = PI*r*r;

    System.out.println(the square of the circle is:+s);

}

}

在这个例子中我们可以看到,这里面的PI是常量,如果我们在定义PI的语句后面为PI这个常量再次赋值,那么程序就会出现编译错误,系统就会报错。在定义常量的时候我们有以下的约定:单词之间使用下划线进行连接,并且所有标识符都用大写字母表示。例如TAT_SDF,YAF_SSF 等等。

第二节  变量

     Java语言中,用变量(Variable)来存放在程序执行过程中变化的数据,变量在程序的执行过程中是可以修改的。Java中每个变量都有一种类型,变量的类型也决定了变量可以进行的合法操作、变量的数据性质和范围,以及变量在内存中所占的大小(一般是以字节进行计算)等等。一个变量具有三个要素:名字、类型和值,我们可以对比一下C语言中的变量,也是有名字,类型和值这三个要素组成。

     1.变量的声明

      和C语言一样,我们在使用java中的变量之前必须进行声明。声明变量有两个,一是给变量分配内存空间,二是为了防止错误的输入对未声明的变量进行操作。一个变量包含数据类型和标记符两个部分:

      type identifier [ , identifier ];

      在这个语句中,我们以identifier为名字,建立了一个type类型的变量。方括号表示可以选择,即在一条语句中可以定义多个同类型的变量,中间用逗号隔开,分号表示语句结束。

      数据类型决定了我们可以对变量进行哪些操作,如何定义这个变量。另外,数据类型也决定了变量所包含的值的取值范围。在一个声明语句中我们可以声明多个变量,这多个变量中的每一个变量都具有相同的类型,各个变量之间用逗号隔开。例如:

       int lenth,abc,sre;

      我们在使用变量,为变量命名的时候,要注意几点问题:

     ①变量名必须不是一个布尔型字符(true false),关键字或者保留字null

     ②必须在整个作用域中是唯一的。

     ③必须为合法标识符。一个标识符中间不能包含空格,必须以字母,下划线或者$字符开头的一串Unicode字符。

     ④java语言中的变量名区分大小写。这一点要特别注意,例如:Name和NAME是两个不同的变量。   

      提示一点,我们在命名变量的时候最好要做到见名知意,这样方便我们以后的程序修改,编辑。

补充一点,java语言中的关键字

abstract

assert

boolean

break

byte

case

catch

char

class

continue

default

do

double

else

enum

extends

final

finally

float

for

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

strictfp

short

static

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

我们来看一个例子:

[例2.3]变量的声明

public class VariableDeclare

{

   public static void main(String [] args)

   {

      int i=-99, j=0xabcd;

      char c = ‘c’;

      long m=1L,n=123456789L;

      System.out.println(“i=”+i);

      System.out.println(j=+j);

      System.out.println(c=+c);

      System.out.println(m=+m);

      System.out.println(n=+n);

   }

}

  请各位读者自行尝试编写程序进行运行。

2.变量的作用域

变量的作用域取决于变量什么时候创建或者取消,可以在声明特定变量的时候建立相应的作用域。变量的作用域是一段特殊的代码,只有在这段代码中才能访问该变量。变量作用域的主要类型有:成员变量作用域,本地变量作用域,方法参数作用域,异常处理参数作用域。

作用域可以嵌套。内部作用域的变量对外部是不可见的,但外部作用域的变量对内部是可见的。

本地变量时在一个方法或一个方法的某个代码块内部声明的变量。一般来说,一个本地变量从它声明部分开始到代码块结束都可以被访问。他们是在主方法中声明的,所以只能在主方法中应用他们。

成员变量不能在某一个类的方法里声明成员变量,它是在类中声明的类或对象的成员。在一个类的某个方法里声明一个变量的时候,只能在该方法中访问这个变量。也就是说,该变量被看成是这个方法的本地变量。类中的静态方法只能访问静态变量,不能够访问非静态的。

下面我们通过一个例子来看这个问题。

 [例2.4]变量作用域。

public class VariableArea

{

   String a = I am outside;          //类属性变量a

   public void print()

   {

      System.out.println(s);

   }

public static void main(String args[])

{

   VariableArea var=new VariableArea();

   String a =I am inside;                     //局部变量a

   System.out.println(s);

 var.print();

}

}

第三节 各种数据类型之间的转换

     和C语言一样,java中也有数据类型的转换,并且同样包括自动类型转换和强制类型转换。

1.自动数据类型转换

这种数据类型的转换是很常见的,在C语言中我们讲过,一般一个数据都会最后转换为double类型进行运算,java语言也相同,我们只要了解这个过程就行。

一般的转换顺序为:

   byte,short,char→int→long→float→double

2.强制数据类型转换

在C语言中,我们知道,有的时候自动类型转换不是太符合我们的想法的时候,就需要使用强制数据类型转换来完成我们的要求 。

强制数据类型转换实际上是一种显式的类型转换。其通用的格式是:

(目标类型)值

例如:

int a=10;

byte b;

b=(byte)a;

提示一点在进行强制数据类型转换的时候,将范围大的整数强制转换为范围小的整数类型时,会进行取模操作。将双精度浮点型强制转换为整数类型时,会将小数位全部截断。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值