目录
前言:
一、关键字(keyword)
二、保留字(reserved word)
三、标识符(Identifier)
四、变量
五、java的数据类型
1、整数类型(byte \ short \ int \ long)
2、浮点型(float \ double)
3、字符型(char)
4、布尔型(boolean)
5、字符集
1.Ascll码
2.Unicode码
3.UTF-8
前言:
Java语言提供了8种基本数据类型。分别是 byte、short、int、long、float、double、boolean、char。String 是对象,不属于基本数据类型. 8种基本数据按类型分可以分为. 4个 整数型:byte、short、int、long. 2个浮点型:float、double. 1个字符类型:char. 1个布尔型:boolean. 八大基本数据类型。
一、关键字(keyword)
定义:被java语言赋予了特殊含义,用作专门用途的字符串
特点:关键字中所有字母都为小写
二、保留字(reserved word)
现有java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。例如:goto、const
三、标识符(Identifier)
java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。(凡是可以自己起名字的地方都叫标识符)
定义合法标识符的规则:
1.由26英文字母大小写,0~9,_或$组成
2.数字不可以开头
3.不可以使用关键字和保留字,但能包含关键字和保留字
4.java中严格区分大小写,长度无限制
5.标识符不能包含空格
标识符命名规范:
包名:多单词组成的所有字母都小写;如:xxxyyyzzz
类名、接口名:多单词组成时,所有字母的首字母大写;如:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写;如:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。如:XXX_YYY_ZZZ
注意:
1.在起名字时,为了提高阅读性,要尽量有意义,做到“见名知意”。
2.java采用unicode字符集,因此标识符支持汉字声明,不建议使用,有时会加载不出来。
四、变量
1. 概念:
1.内存中的一个存储区域;
2.该区域的数据可以在同一类型范围内不断变化;
3.变量是程序中最基本的存储单元。包含变量类型、变量名和存储值。
2.作用:
用于在内存中保存数据。
3.使用变量时注意:
1.java中每个变量必须先声明,后使用;
2.使用变量名来访问这块区域的数据;
3.变量的作用域:其意义所在的一堆{}内;
4.变量都定义在其作用域内,内容只有在其作用域内才有效;
5.同一个作用域内,不能定义重名的变量。
4.变量的使用:
定义变量的格式:数据类型 变量名 = 变量值;
public class Test {
public static void main(String[] args) {
//变量的定义
int Age = 14;
String name = "张三";
//变量的使用
System.out.println(Age);
System.out.println(name);
}
}
五、java的数据类型
1.变量按数据类型来分:
基本数据类型:
整型:byte \ short \ int \ long
浮点型:float \ double
字符型:char
布尔型:boolean
引用数据类型:
类(class)
接口(interface)
数组(array)
2.按声明位置的不同:
成员变量:
实例变量(不以static修饰)
类变量(以static修饰)
局部变量:
形参(方法、构造器中定义的变量)
方法局部变量(在方法内定义)
代码块局部变量(在代码块中定义)
1、整数类型(byte \ short \ int \ long)
java个整数类型有固定的表数范围和字段长度。
Java的整型变量常量默认值为int型,除非不足以表示较大的数,才使用long(声明long型常量后面必须加 'l' 或 'L')。
bit:计算机中最小的存储单位。
byte:计算机中基本存储单元
public class Test {
public static void main(String[] args) {
//byte范围:-128~127
byte b1 = 12;
byte b2=-128;
byte b3 = 128;//编译不通过
String name = "张三";
//变量的使用
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
//声明long型变量,必须以'l'或'L'结尾
//通常定义整型变量时,使用int型
short s1 = 128;
int i1 =1234;
long l1 = 434l;
System.out.println(s1);
System.out.println(i1);
System.out.println(l1);
}
}
2、浮点型(float \ double)
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。通常采用此类型
注意:java的浮点型默认为double型,声明float型变量,须后加 ‘f’ 或 ‘F’。
3、字符型(char)
java中所有字符都是用Unicode编码,故一个字符可以存储一个字母。
char类型是可以运算的,char型数据用来表示通常意义上的字符(两个字节)。
字符型变量的三种表现形式:
1.字符常量用单引号括起来的单个字符。如:char c1 = 'a';
2.java中允许使用转义字符 ’\‘来将后面的字符转变为特殊字符型常量。如:char c2 = '\n'; (\n表示换行符)
3.直接使用Unicode值来表示字符型常量:'\uXXXX'。其中XXXX代表一个十六进制整数。
注意:
1.定义char型变量,通常使用一对'',内部只能写一个字符;
2.表示方式:1.声明一个字符;2.转义字符;3.直接用Unicode表示字符型常量
public class Test {
public static void main(String[] args) {
//字符型:char(1字符=2字节)
//定义char型变量,通常使用一对'',内部只能写一个字符
char c1= 'a';
char c2= 'AB';//编译不通过
System.out.println(c1);
System.out.println(c2);
//表示方式:1.声明一个字符;2.转义字符;3.直接用Unicode表示字符型常量
char c3 = '\n';//换行符
char c4 = '\t';//制表符
System.out.println("hello"+c3);
System.out.println("word"+c3);
}
}
4、布尔型(boolean)
1.只能取两个值之一。true或false;
2.常常用在条件判断、循环结构中使用。
public class Test {
public static void main(String[] args) {
//布尔型:boolean
//只能取两个值之一。true或false;
boolean b1 = true;
System.out.println(b1);
//常常用在条件判断、循环结构中使用。
boolean isin = false;
if (isin){
System.out.println("你就不能进入");
}else {
System.out.println("你可以进入");
}
}
}
5、字符集
1.Ascll码
ASCLL 码是一种7位二进制编码,能表示27~128种国际上最通用的西文字符,是目前计算机中,特别是微型计算机中,使用最普遍的字符编码集。
缺点:
1.不能表示所有字符。
2.相同的编码表示的字符集不一样。
2.Unicode码
乱码,指的是由于本地计算机在用文本编辑器打开源文件时,使用了不相应字符集而造成部分或所有字符无法被阅读的一系列字符。
统一码(Unicode),也叫万国码、单一码,是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
缺点:
1.Unicode字符串占用的内存是ASCII字符串的两倍 ;
2.相比ASCII字符串而言比较难以理解,很多数程序员都不熟悉或者是似懂非懂,增加了编程的难度。
3.UTF-8
UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符,而且其编码中的第一个字节仍与ASCII相容,使得原来处理ASCII字符的软件无须或只进行少部分修改后,便可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。
优点:
1.UTF-8编码可以通过屏蔽位和移位操作快速读写。字符串比较时strcmp()和wcscmp()的返回结果相同,因此使排序变得更加容易。字节FF和FE在UTF-8编码中永远不会出现,因此他们可以用来区分UTF-16或UTF-32文本。
2.UTF-8是字节顺序无关的。它的字节顺序在所有系统中都是一样的,因此它实际上并不需要BOM。
缺点:
1.你无法从UNICODE字符数判断出UTF-8文本的字节数,因为UTF-8采用的是不定长的编码方式。
2.它需要用2个字节编码那些用扩展ASCII字符集只需1个字节的字符 ISO Latin-1 是UNICODE的子集,但不是UTF-8的子集 8位字符的UTF-8编码会被email网关过滤,因为internet信息最初设计为7位ASCII码。因此产生了UTF-7编码。 UTF-8 在它的表示中使用值100xxxxx的几率超过50%, 而现存的实现如ISO 2022, 4873, 6429, 和8859系统,会把它错认为是C1 控制码。因此产生了UTF-7.5编码。