java.02
关键字
体现关键地方的含义,这些单词都是特有的,事先定义的(所有字母都小写)
保留字
可能在以后被用来作为关键字的单词,尽量不要随意使用
标识符
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符(自己起名字)
定义合法标识符
数字不可开头,不可有空格,不可使用关键字、保留字,但能包含关键字、保留字,最好起得有意义
比如,类名不能直接使用class,但可以是class1
java中的名称命名规范
- 包名:多单词组成时所有字母都小写,xxxyyyzzz
- 类名、接口名:多单词组成时,所有单词的首字母大写,XxxYyyZzz
- 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写,xxxYyyZzz
- 常量名:所有字母都大写,多单词时每个单词用下划线连接,XXX_YYY_ZZZ
java中变量的定义
数据类型 变量名=变量的值
int i = 1;
每个变量必须先声明后使用,需给变量初始化(第一次给变量赋值)
数据类型
分为基本数据类型和引用数据类型
基本数据类型:数值型、字符型、布尔型,有8种,分别为byte,short,int,long,float,double,char,boolean
除了以上8种之外其他的为引用数据类型(class,interface,[ ])
byte占用存储空间为1字节=8bit
注意
声明long型常量须后加’L‘或’l’,声明float也是如此
-
short s =1;
long l = 3l;
这个long类型变量赋值要在值的后面跟上一个字母’l’
-
double d =1.22;
float f = 1.22f;
boolean类型数据只允许取值true和false,不可用0或非0的整数替代,无null
public class Test1{
public static void main(String[ ] args){
System.out.print("sss\n");
System.out.println("sss");
}
}
public class Test1{
public static void main(String[ ] args){
//System.out.print("sss\n");
//System.out.println("sss");
byte b= 1;
System.out.println(b);
short s= 2;
System.out.println(s);
int i= 4;
System.out.println(i);
long l =79l;
System.out.println(l);
float f= 1.23f;
System.out.println(f);
double d = 1.56;
System.out.println(d);
char c='a';
System.out.println(c);
boolean b1 = false;
System.out.println(b1);
String str="hello"+"java";
System.out.println(str);
}
}
引用类型
-
可以用null作为值,即可以在初始化时赋值为null(空)
String是引用类型,可使用null作为值
-
区分
int i0 = 1;
int i1 = 1;
以上这种会在内存中存储2个1的值
String s0 = “hello”;
String s1 = “hello”;
只存在1个,假设“hello”的内存地址xxxxx,声明s0变量时给s0赋值实际上让s0变量引用“hello”的内存地址xxxxx;当我们再声明变量s1也赋值“hello”时,实际上也是直接把已经存在的“hello”的内存地址给s1引用
(两个变量指向了同一地址,都可以引用这个地址里存放的东西)
public class Test{
public static void main(String[] args) {
int i = 0;//声明并初始化变量
i = 1;
int k =10;
i = k;
short s = 9;
short s0 =11;
s0 = s;
System.out.println(i);
System.out.println(s0);
}
}
//输出结果:
//10
//9
public class Test{
public static void main(String[] args) {
// byte b = 1;
// int m = b;
//
// int c =1;
// short d = 2;
// byte e = 3;
//
// int res =c + d + e;
//在计算过程中,整数类型是int的范围最大,所以d和e都分别先转换成int类型然后进行加的运算,最终的结果是int的数据
char g ='a';//char类型的数据在与数字进行数学运算的时候,它是转换为相对应的ASCII码的值然后再进行的计算
byte b0 = 2;
int h = g + b0;
System.out.println(h);
}
}
//99
基本数据类型转换
自动类型转换:容量小的类型自动转换成容量大的数据类型
数据类型按容量大小排序为:
byte\char\short->int->long->float->double
byte,char,short之间不会相互转换,他们三者都在计算时首先转换为int类型
当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型
public class Test{
public static void main(String[] args) {
String str0 = "" + 1 + 2 +3;
//当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型
String str1 = 3.5f+"";
System.out.println(str0);
System.out.println(str1);
//str1输出的是String类型,输出结果3.5为字符串
System.out.println(3+4+"hello");
System.out.println("hello"+3+4);
System.out.println('a'+1+"hello");
System.out.println("hello"+'a'+1);
}
}
//123
3.5
7hello
hello34
98hello
helloa1
注意:当有一些列的+的运算的时候,如果某个部分其中含有字符串,那么这个字符串前边挨着的+开始一直往后都是要按照字符串拼接去看
public class Test{
public static void main(String[] args) {
String str1=1+3+5+"a"+2+6;
System.out.println(str1);
}
}
//9a26
强制类型转换
自动类型转换的逆过程,使用时要加上强制转换符( )
boolean类型不可以转换为其他的数据类型
byte b=9;
int i=b;
//以上这两行属于正常隐式转换数据类型,自动的
// int k=7;
// byte b0=k;//错误
int k=7;
byte b0=(byte)k;//这个就是强制转换数据类型,转换的数据类型要用英文的小括号括起来