一、数据类型、关键字、变量、命名 ......
1、关键字与保留字:
2:标识符命名的规则:(要求严格遵守,否则会报编译性错误)
由26个英文字母大小写,0-9,_或$组成;
不可以数字开头;
不可以使用关键字和保留字,但可以包含关键字或保留字;
Java中严格区分大小写;
标识符不能包含空格。
3:Java中的名称命名规范(规范可以不遵守)
包名:包名有多个单词组成时所有字母都小写;
类名、接口名:多个单词组成时,所有单词首字母都大写;
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始首字母大写;
常量名:所有字母都大写,多个单词时每个单词用下划线连接;_
//起名时尽量见名知意,可用拼音
4:变量
定义:数据类型 变量名=初始值;
5:数据类型
(1)、基本数据类型:
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:boolean
(2)、引用数据类型:
类(class)
接口(interface)
数组(array)
Long型变量要加L; float型:要加f;
Byte:1字节;short:2字节;int:4字节;long:8字节;float:4字节:double:8字节。
和C不同的时如果声明float类型的浮点数时,如果不加f,则认为是double类型。相同:如果long型不加L默认是int型。
Char型两个字节(字符型):只能是一个字符,中英文字符均可。 String:字符串类型。
System.Out.println(“谁谁谁是个大\”帅\”哥”);//这样的效果为在帅字符上加双引号。
二、自动类型提升 && 强制类型提升:
1、自动类型提升:
(1)、结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
(2)、(byte、char、short - - > int - - > long - - > float - - > double)
(3)、特别的:当byte、char、short三种类型的变量做运算时,结果为int;所以当byte、char、short做运算时只能用int型变量接收结果。
示例代码:
package cn.edu.bzu;
public class Test00 {
public static void main(String[] args) {
byte b1=2;
int i1=129;
//byte b2=b1+i1; //--错误:(必须用int型变量接收)
int i2=b1+i1;
long l1=b1+i1; //可以:因为long型大于int型
char c2='a';
short s1=2;
int i3=c2+s1; //--char型与short型做运算也必须时用int型接收结果
System.out.println(i3);
}
}
2、强制类型提升:
需要加强制类型转换
package cn.edu.bzu;
public class Test00 {
public static void main(String[] args) {
double d1=12.9;
int i1=(int)d1; //--进行强转,可能会损失精损失
System.out.println(i1); //12
//没有精度损失
long l1=123;
short s1=(short)l1;
System.out.println(s1); //123
//有精度损失
int i2=128;
byte b1=(byte)i2;
System.out.println(b1); //128
}
}
3、字符串类型:String(不是基本数据类型,而是引用数据类型)
“+”号:如果前后有String类型的,就代表连接运算。
package cn.edu.bzu;
/*
* String类型变量的使用
* 1.String属于引用数据类型,翻译为:字符串
* 2.声明String类型时,使用一对" "
* */
public class Test00 {
public static void main(String[] args) {
//练习1:
char c='a';
int num=10;
String str="hello";
System.out.println(c + num + str); //107hello
System.out.println(c + str + num); //ahello10(结果为String类型)
System.out.println(c + (num + str)); //a10hello
System.out.println((c + num) + str); //107hello
System.out.println(str + num + c); //hello10a
//练习2:
//结果:* *(两个星号中间有7个空格)
System.out.println("* *"); //结果:* *
System.out.println('*' + '\t' + '*'); //结果:93 --(都是字符(char)类型,所以结果为int型)
System.out.println('*' + "\t" + '*'); //结果:* * --(字符串类型在中间了两边的)
System.out.println('*' + '\t' + "*"); //结果:51* --(前两个运算的类型为char型,所以前两个运算结果为int型,再和第三个字符串类型做连接运算)
System.out.println('*' + ('\t' + "*")); //结果:* *
//***************************
//String str=1235; //编译不通过
String str1=1235 +"";
System.out.println(str1); //--1235
}
}
练习1:
练习2:
package cn.edu.bzu;
/*
* String类型变量的使用
* 1.String属于引用数据类型,翻译为:字符串
* 2.声明String类型时,使用一对" "
* */
public class Test00 {
public static void main(String[] args) {
//***************************
//String str=1235; //编译不通过
String str1=1235 +"";
System.out.println(str1); //结果:"1235"
//int num00=str1; //错误的
//int num01=(int)str1; //错误的
int num02=Integer.parseInt(str1);
System.out.println(num02); //结果:1235--(不带引号)
}
}
4、关于进制:
二进制、八进制、十六进制。
可参考20天学习专栏的CDSDN中的。
进制之间的相互转化(二进制的三位代表一位八进制数;二进制的四位代表一位十六进制数)
三、练习:
1.标识符的命名规则有哪些? à不遵守,编译不通过。
2. 标识符的命名规范有哪些?à不遵守,编译运行都可以通过
包名:xxxyyyzzz
类名、接口名:XxxYyyZzz
变量名、方法名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
3. Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪8种,并指出各自占用的内存空间大小
byte short int long
char
float double
boolean
引用数据类型:类、接口、数组
4. 说明基本数据类型变量之间自动类型提升的运算规则。
byte、short、char -àint àlong àfloat àdouble
5. 说明基本数据类型变量之间强制类型转换的使用规则和强转可能出现的问题。
容量大 à 容量小
使用强转符:()
精度损失。