JAVA第二天

来源:互联网 发布:php选择题答题系统 编辑:程序博客网 时间:2024/06/10 04:30
JAVA语法规定,文件名必须跟文件里面被声明为public的class同名,比如我们上面的public class Main,我们那个JAVA的文件名就要叫Main
这里我们主要介绍一下标识符和数据类型


Java中的类名、变量名、函数名、常量名等都需要一个标识符作为它的名字
那么问题就来了,我如何去定义一个标识符呢。我们想到了我们C语言也有变量名,也有函数名等等。 这些都是标识符,C语言有自己的规则
JAVA也有自己的规则
JAVA里面的标识符有如下命名规则
1.JAVA里面的标识符必须以字母(abcdefg或者大写的)、美元符号或下划线开头 但是在C语言里面是不能以美元符号开头的
2.第一个字符之后可以是任意长度的包含数字、字母、美元符、下划线的字符组合
3.不能使用JAVA关键字和保留字做为标识符。 关键字比如void int
4.标识符是大小写敏感的
5.unicode字符会被视为普通字母对待
下面就是标识符的图
第一个字符 第二个字符
[a-z][A-Z]+++++++++++ [a-z][A-Z] $. _ ========标识符
$. _ [0-9]


标识符示例
int abc;
float &f; 声明了一个float类型,变量名字是以&开头,f结尾  这样在JAVA里面是合法的
double 浮点 这是个double 类型变量,变量名直接用中文了,叫浮点 这样在JAVA里面是支持的也是合法的
String _string1;这里是声明string类型的变量,是以_开头,接个string,后面接个1
void $$(); 这里是个函数,名字是两个$
来看看程序里面的示例
public class Main{
static void $$(){
System.out.println("$$()");
}
public static void main(String[] args){
int abc=0;
float $f=1.0f;
double 浮点=0.0002;
String _string1 = "I'm coming...";

System.out.println(abc);
System.out.println($f);
System.out.println(浮点);
System.out.println(_string1);
$$(); 
}



JAVA中变量就是值可以被改变的标识符,和C语言中的变量概念相同
int abc=0;
float $f = 1.0f;
double 浮点 =0.0002;
String _string1 ="I'm coming...";
Java中也可以通过final关键字定义常量,常量就是所代表的值不可改变的标识符
final int abc=0;
final float $f =1.0f;
final double 浮点=0.0002;
final String _string1 ="I'm coming...."
final是最后的意思,表示这个标识符代表的值是不能被改变的,因此我们必须给他一个初始化的值
否则你以后就没机会给他复制了,这点类似于C语言中的#define,


Java中数据类型分为基本数据类型和引用数据类型


先只讲基本数据类型,不讲引用数据类型,因为引用数据类型跟我JAVA里面的class相关
C语言中真和假就是0与非0,JAVA里面比较严格要用boolean来设置


JAVA里面的字符型和跟C语言中不同,因为JAVA支持中文,肯定会不同
JAVA中没有无符号数据类型
JAVA中的整数默认类型为int
JAVA中通过在整数后加上l或者L表示长整形


整数型




byte b=127;用127初始化一个byte的变量,在127写出来的一瞬间,java会认为他是整形,你这里是整形,但是你又要把它初始化成byte类型
为什么不会保存了,但是127是在byte型范围内,所以会隐式类型转换为byte

short s=128; 用128是一样的原理


int i=123456789; 1234567默认是int型


long i=112233445566778899L; long型数值需要加上L后缀


浮点型
类型 字节范围
float 41.4E-45 ~ 3.4028235E38
double 84.9E-324~1.7976931348623157E308
JAVA中的float型浮点数后加上后缀F/f
JAVA中的double型浮点数后加上后缀D/d
JAVA浮点数的默认类型是double


浮点数示例
float f1 = 1.1f //声明一个浮点变量并用1.1进行初始化
float f2=(float)0.2 //0.2默认为double型,需要进行显示类型转换,为什么要强制类型转换,你0.2是个double类型
double类型是个大的变量,范围很广的一个变量,你把一个范围很广的8个字节的变量赋值给4个字节的变量
double d1=3.3 //声明变量double并用3.3进行初始化,3.3默认为double型
double d2=4.4D; //声明变量d2,并用4.4进行初始化


我们怎么知道什么时候会隐式类型转换,什么时候不会做呢,下面是它的规则


byte->short->int->long->float->double
从byte一个字节到short两个字节,因为byte小,后面的可以容纳前面的,直接给你做隐式类型转换了,因为这么做不会造成损失


但是你double类型要复制给float类型,因为float只有4个字节,但是doubleq却有8个字节
你把double复制给float,装不下,没办法你只能去截断,问题又来了,你截掉哪几个 字节,留下哪四个字节呢
所以没有办法给你做隐式类型转换,因为做了的话可能导致错误




逻辑型
逻辑型又叫布尔型,是一种只能表示true和false两种值的数据类型
JAVA中的字符型占用两个字节,能够表示Unicode(中文)
boolean b1=ture


引用数据类型
JAVA中的应用数据类型类似于C中的指针类型
JAVA中的引用数据类型主要用于class定义的复杂数据类型
JAVA中引用数据类型变量和常量的定义方式与基本数据类型相同


public static void main(String[] args)
{
String s="hello";
String n=NULL;
n=s;

}
C语言中的指针可以指向任意一个数据类型,JAVA引用数据类型只能用于用CLASS辅助数据类型
像float int是不能用引用数据类型去指向它们的 声明方式是跟普通数据类型是一样的
上例中的String不是基本数据类型,是复杂数据类型,因为他是复杂数据类型,它本身不包含hello的值
这里就类似于C语言中中的 char *,指向了这个字符串。




原创粉丝点击