第二天——变量与数据类型
由于前面几天都是一些基础的东西,为了防止篇幅过大,就整理一下简明写了。其实也都是一些比较容易理解的东西。如果有写错的,请联系我q:412456671
- 标识符
- 关键字
- 编码和字符集
- 变量与常量
- 基本数据类型
1. 标识符
在java中,程序员自己起名字的地方都叫做标识符。例如,自定义的类名、方法名等,命名时一般也会遵循一些规则:
1. 命名时只能使用下划线(_),字母,数字和美元符号($);且不能以数字开头。这个是必须遵守的。
2. 见名知意,一种为了方便所有人而约定俗称的规则
3. 驼峰命名,即有多个单词出现时,每个单词的首字母大写
-类名:第一个字母大写,后续遵循驼峰
-变量和方法名:第一个字母小写,后续遵循驼峰
-包名:全部小写
4. java语言对大小写敏感,需要区分大小写
5. 命名长度没有限制
6. 不能使用官方已经使用的关键字
2. 关键字
已经被官方使用的字符串,拥有特定的含义;所有的关键字都是小写字母。
例如:class public break case for while等
3. 编码和字符集
编码:通俗的讲,就是一个转换的过程。将一种格式转换成另一种格式,好像翻译一样
字符集:上面说到编码就像翻译一样,而字符集就像是翻译时的对照表,或者成为单词表。但是只有被权威机构编写的对照表才能称为字符集。常见的字符集有:
1. ascii码--英文字符集
2. iso8859-1--西欧字符集
3. BIG5--台湾大五码
4. GB2312--简体中文字符集 -> GBK(可以表示繁体中文)->GB18030(加入少数民族汉字)
5. Unicode--国际通用字符集
java中默认使用Unicode字符集
4.变量与常量
常量(本身具有数据类型)
说起常量,其实就是一些固定不变的东西,就好像数字1永远是1,'a'就是'a'一样。
'a'和char a='B';不是一回事,第一个'a'是一个单元字符,而第二个a就是一个被赋值的变量了。
变量(必须声明数据类型)
顾名思义,变量就是可以变化的量,就像上面的例子一样,第二个a被声明后赋予了一个值'B',理所当然的,我也可以重新为a赋值。
--作用域
说起变量,需要讲到变量作用域的问题,java中的变量作用域不需要特别去理解,只要知道他的作用域在离它最近的{},出了这个大括号就不再起作用了。一个简单的例子:
public class TestVar02{
int b=30;//放在方法外,类中的变量叫做成员变量
public static void main(String[] args){
int a=10;//放在方法内的变量叫局部变量
System.out.println(a);
if(5>2){
int c=90;
System.out.println(c);
}
System.out.println(c);//这里肯定报错,找不到符号。。
System.out.println(d);//这里肯定报错,找不到符号。。
}
public void test(){
int d=30;
System.out.println(b);
}
}
5. 基本数据类型
首先要说的是,java中的数据类型分为两种:
1.基本数据类型(分为四类八种)
-整数型:(byte,short,int,long)
-浮点型:(float,double)
-字符型:(char)
-布尔型:(boolean)
2.引用数据类型(在后面学习)
java是一个强类型语言,对数据类型敏感,所以每个数据都要有自己的数据类型。
整数型
1.整数类型的常量有哪些类型?
例如十进制数:33,-99,0等
八进制数,要求以0开头,如:012,034等
十六进制数,要求以0x开头,如:0x12等
2.整数类型的变量:byte,short,int,long
| type |占用空间大小|字节表数范围|
| byte | 1字节 | -128~127 |
|short | 2字节 | 正负3W |
| int | 4字节 | 正负21亿 |
| long | 8字节 | 非常多 |
public class TestVar03{
public static void main(String[] args){
int num1=12;//默认这个数就是十进制的
System.out.println("num1="+num1);//num1=12
int num2=012;//加0表示八进制
System.out.println("num2="+num2);//num2=10
int num3=0x12;//加0x或者 0X代表十六进制
System.out.println("num3="+num3);//num3=18
System.out.println("------------------------------");
byte num4=12;//声明一个变量是byte类型的,名字是num4,赋值是50
System.out.println(num4);//128超出byte类型表数范围。。
short num5=78;
System.out.println(num5);
int num6=12348910;
System.out.println(num6);
long num7=12345678910L;
System.out.println(num7);
//整数类型默认是int类型。
//要想把一个数赋给long类型的数据,后面必须要加上L(推荐)或者l
}
}
浮点型
1.浮点类型的常量:
十进制: 2.14 9.87
科学计数法: 314E-2 0.0314E2
2.浮点类型的变量:
| type |占用空间大小|小数位的位数精准|
| float | 4字节 | 7~8位 |
|double | 8字节 | 15~16位 |
示例代码:
public class TestVar04{
public static void main(String[] args){
//在浮点类型中,默认是double类型的数据,要是赋给float类型的数据,后面必须加上f或者F
float f1=4.89F;
System.out.println(f1);
float f2=3.846496730458f;
System.out.println(f2);//3.8464968
double d1=5.3457923649239476994545;
System.out.println(d1);//5.345792364923947
double d2=478E-2;
System.out.println(d2);//4.78
//最好不要进行浮点数的比较:0.3 --- 0.2999999 ----0.300000000001
float f3=0.3f;
double d3=0.3;
System.out.println(f3==d3);//false
/*
区别:
= :用来赋值的
==:用来进行数值的比较的
结果会返还给我们布尔值。要是相等:返回true 不等:false
*/
}
}
字符类型
1.字符常量是用单引号括起来的单个字符,占两个字节
2.字符类型的变量:直接用一段代码来描述
代码:
public class TestVar06{
public static void main(String[] args){
char ch1='A';
System.out.println(ch1);//A
char ch2='a';
System.out.println(ch2);
char ch3='4';
System.out.println(ch3);
char ch4='中';
System.out.println(ch4);
//从上面的例子中我们可以看出来:在java中 无论是汉字,数字,字母 都占用一个字符 (2个字节)
//char ch5='aa';//单引号括起来的单个字符,0个不可以,2个不可以
//System.out.println(ch5);
System.out.println("===============下面的代码讲转义字符========================");
//转义字符:\ 它会将它后面的那个字母 转换成为其它的含义。
char ch5='\n';
System.out.print("你好"+ch5);
System.out.print("java");
System.out.println("===================");//\t后面的内容距离前面有一个制表符的位置
System.out.println("1111111111111111111");//19个1
System.out.println("1111111111\t66666");
System.out.println("1111111111111111111");//19个1
System.out.println("111111111111\t66666");
System.out.println("1111111111111111111");//19个1
System.out.println("1111111111111111\t66666");
System.out.println("===================");
System.out.println("aaaa\rbbb");//bbba ---- \r回到本行起始位置
System.out.println("=====================");
System.out.println("aaaa\bbbb");//aaabbb ---- \b向前光标移动一个位置
System.out.println("=========");
System.out.println("我先要学习的语言是\"java\"");
System.out.println("===============================================");
char ch6='A';//表面上字符型打印出来的就是字面含义,但是实际上在内存中存储的是它对应的一个码(ASCII码)
System.out.println(ch6);//A
System.out.println(ch6+30);//95
System.out.println(95-ch6);//30
System.out.println("===============================================");
char ch7='中';//表面上字符型打印出来的就是字面含义,但是实际上在内存中存储的是它对应的一个码(Unicode码)
System.out.println(ch7);//中
System.out.println(ch7+70);//20083
System.out.println(20083-ch7);
//ASCII是UNICODE码的前128位
System.out.println("====================扩充===========================");
System.out.println((char)(ch7+70));//20083----乳
System.out.println((int)'乳');//20083
}
}
布尔类型
布尔类型占用1个字节,只有两种形式:true和false
布尔类型用在一些运算表达式的结果上,例如4<5当然就是true,8>9就是false
在实际的使用当中,有些语句的条件表达式要求必须是布尔型,比如if语句,下面写一个简单的if例子:
public class TestIf {
public static void main(String args[]) {
//if代表如果,格式:if(条件){执行语句}
if(5>4){
System.out.println("5大于4的结果为true");
}
}
}