第二章 基本数据类型与数组

 1、标识符与关键字

1.1什么是标识符

凡是程序员可以自己命名的单词,在java语言中标识可以标识的那些元素有:类名,方法名,变量名,常量名,接口名...

1.2标识符的命名规则

字母,美元符号,数字,下划线组成
   数字不能开头
   不能是关键字
   不能是null true false
   最好见名知意,符合驼峰规则
   类名 接口名:首字母大写,后面每个单词首字母大写
   方法名 变量名:首字母小写,后面每个单词首字母大写
   常量名:全部大写,单词之间用下划线隔开

1.3Unicode字符集

unicode字符表0~65535
前面128个字符是Ascii码
A 65
a 97

1.4关键字

全部小写,具有特殊含义的字符序列

1.5java源程序组成成分

字面值==数据
字面值是java源程序的组成成分之一。包括标识符,关键字他们都是java源程序的组成成分
类型:
     整数型字面值:10 100
	 浮点型字面值:19.0
	 布尔型字面值:flase
	 字符串型字面值:"a"
	 字符型字面值:'a'
java语言中所有字符串型字面值都需要使用双引号
java语言中所有字符型字面值都需要使用单引号
字符是指:字母,数字,字,符号

2、关于java语言中的变量

2.1什么是变量?

变量本质上来讲是内存的一块存储空间,这块空间有数据类型 有名字 有数据
变量是存储数据的最基本单元

2.2数据类型的作用

不同的数据有着不同的数据类型,不同的数据类型底层会分配不同的空间
数据类型是指引程序在运行阶段应该分配多大的内存空间

2.3格式

数据类型 名字【声明一个变量】
名字=字面值【赋值】
数据类型 名子=字面值【声明和赋值一起完成】
=是一个赋值运算符,先计算等号右边式子,表达结束后赋值给左边的变量

2.4访问变量的两种格式

第一种:get
第二种:set

2.5作用域

在同一个作用域中变量名不能重名,但是变量可以重新赋值
什么是作用域?
便来你给的有效范围,在什么范围之内可以访问得,只要出了这个范围该变量就无法访问
出了大括号就不认识了

2.6变量的分类

局部变量:在方法体中声明的变量,无默认值
成员变量:在类体中声明的变量,有默认值

2.7变量在什么时候开辟空间

局部变量是在方法体中,当方法被调用的时候,在栈中为变量分配空间
成员变量是在类加载的时候在方法区内存为变量分配空间

2.8数据类型:引用数据类型、基本数据类型

2.8.1 基本数据类型


                         空间大小(单位字节byte)     取值范围
              char         1                           0~65535
			  byte         1                           -128~127
			  short        2                           -32768~32767
			  int          4                           -2147483648~2147483647
			  long         8                           
			  float        4
			  double       8
              boolean      1

2.8.2 数据类型详解-字符类型char

public class DataTypeTest01{
     public static void main (String[] args){
//定义一个char类型变量起名为c,同时赋值字符'a'
        char c='a';
        System.out.println(c);
        char x='国';//一个中文占用两个两个字节,char类型正好是两个字节
        System.out.println(x);
        //char y='ab';
        //System.out.println(y);//编译报错,ab是字符串不能使用单引号括起来,不是语句和未结束的字    符文字
        //声明
        char e;
        e='e';
        System.out.println(e);
        e='f';//再次赋值
        System.out.println(e);
        //转义字符\
        char c1='n';
        System.out.println(c1);
        char c2='\n';//反斜杠在java语言中具有转义功能,这是一个换行符
        System.out.println(c2);
        //System.out.println和System.out.print的区别是换行
        //普通的字符t
        char z='t';
        System.out.println(z);
        //制表符\t就是tab键和空格不同
        char p='\t';
        System.out.print("a");
        System.out.print(p);
        System.out.print("b");
        //在控制台输出一个斜杠
        char o='\\';
        System.out.println(o);
//第一个斜杠具有转义功能,将后面的反斜杠转义成普通字符
//在控制台输出一个单引号
char i='\'';
System.out.println(i);
//在控制台输出一个双引号
char u='"';
System.out.println(u);
}

}
转义字符出现在特殊字符之前,会将特殊字符转换成普通字符
\n换行符
\t制表符
\'普通的单引号
\\普通的反斜杠
\"普通的双引号

2.8.3数据类型详解-int类型

public class DataTypeInt02 {
	public static void main(String [] args){
	       int q=10;
	       int w=010;
	       int l=0x10;
	   System.out.println(q);
	   System.out.println(w);
	   System.out.println(l);
	 //数据类型byte short char 其后整数型字面值数据在不超出其范围下可以直接赋值给他们
	   char cc=65535;
	   System.out.println(cc);
	   //byte ss=1000;编译报错类型不兼容
	   byte ss=100;
	   System.out.println(ss);
	   double dd=10/3;

	   long g=10;
	   int h=(int) (g/3);
	   System.out.println(h);
//	   在编译的时候只检查语法不进行运算,long型转换成int型需添加强制类型转换符
	   short ii=10;
	   short  jj=5;
	   //short kk =jj+ii;short byte char 在进行混合运算时统一变成int类型解决
	   short kk=(short)(jj+ii);
	   System.out.println(kk);
	}


}

2.8.4基本数据类型的转换

public class Honor {
    public static void main (String args [])  { 
       double jiaQi =3.0;
      // float pei= jiaQi;编译报错不兼容的类型:从dounle型转换成float型可能会有精度损失
      float pei=(float)jiaQi;//输出结果3.0
     // float x =0.168;编译报错不兼容的类型:从dounle型转换成float型可能会有精度损失
     float x=(float)0.168;//浮点数据类型被默认成double类型,所以大容量转成小容量要进行强制类型转换
     // byte y=128;编译报错不兼容的类型:从int类型转换成byte类型可能有精度损失
     byte y=(byte)128;//整数型字面值被系统默认成int类型字面值,所以大容量转成小容量要进行强制类型转换
     int z =(byte)128;//编译成功,int类型转成byte类型,再由byte类型转换成int,是由小容量转换成大容量成为自动转换类型




       System.out. println(z);

       System.out. println(y);
       System.out. println(x);
       System.out. println(pei);
    }
} 
/*关于基本数据类型之间的转换
1.小容量转换成大容量称为自动转换类型,大容量转小容量为强制转化
2.byte

3、数组

3.1什么是数组

1.数组是有序的,具有相同数据类型的数据集合
2.数组类型是一组引用数据类型
3.数组是有序的,可以分出先后来,他们在内存中按在先后顺序存放
4.数据分为一维数组,二维数组...

3.2数组声明

5.数组声明
   数据类型[]数组名
   int[]a  表示一维数组,只是声明还不能访问他的任何元素
6.一维数组的静态初始化
当我们声明一个数组的同时为这个数组赋值称为数组的静态初始化
int[] a={1,2,3}; 
   a[0]=8;//重新赋值

7.一维数组的动态初始化
第一种:数据类型 []数据名=new 数据类型[size]
int []b=new int[6];
第二种;int []b;
       b=new int[6];
System.out.println(b.length);//获得数组的长度
System.out.pringln(b);//获得数组存放的引用,通过该引用可以访问内部元素
System.out.pringln(b[1]);//访问内部元素

3.3二维数组

int c[][]={{1,2,3},{123,1234,12344}};
System.out.println(c.length);//获得二维数组的长度2
System.out.println(c);//获得数组的引用
System.out.println(c[0][2]);//3解释c[0]确定一维数组,c[0][2]确定一维数组的元素位置
***两个相同的数组有相同的数据类型,一旦二者引用相同,那么二者就有相同的元素。
*/
public class E
{
	public static void main (String [] args){
		int a[]={1,2,3,4};
		int b[]={100,200,300}
		b=a;//二者具有相同的引用,就是有相同的元素。a赋值b,b空间元素消失,统一变成a的空间
		System.out.println(a.length);//4
		System.out.println(b.length);//4

}

4、习题

4.1什么叫标识符?标识符的规则是什么?false是否可以作为标识符?

由字母,数字,美元符号,下划线组成

首字母不能是数字,不能是关键字,不能是true,false,null

不可以

4.2什么叫关键字?true和false是否是关键字?请说出六个关键字

具有特殊含义的字符数列

不是

char,boolean,byte,short,int,float,double,long

4.3java的基本数据类型都是什么?

char,boolean,byte,short,int,float,double,long

4.4float型常量和double型常量在表示上有什么区别?

float常量后缀必须要有f或者F

double常量后缀可以有d或者D,但允许省略该后缀

浮点型数据没有后缀默认都是double类型数据

4.5怎么样获取一维数组的长度,怎样获取二维数组中一维数组的个数?

System.out.println(c.length)

c是一维数组,则获取一维数组的长度

c是二维数组,则获取二维数组中一维数组的个数

你可能感兴趣的:(java,java,开发语言)