凡是程序员可以自己命名的单词,在java语言中标识可以标识的那些元素有:类名,方法名,变量名,常量名,接口名...
- 字母,美元符号,数字,下划线组成
- 数字不能开头
- 不能是关键字
- 不能是null true false
- 最好见名知意,符合驼峰规则
- 类名 接口名:首字母大写,后面每个单词首字母大写
- 方法名 变量名:首字母小写,后面每个单词首字母大写
- 常量名:全部大写,单词之间用下划线隔开
- unicode字符表0~65535
- 前面128个字符是Ascii码
- A 65
- a 97
全部小写,具有特殊含义的字符序列
- 字面值==数据
- 字面值是java源程序的组成成分之一。包括标识符,关键字他们都是java源程序的组成成分
- 类型:
- 整数型字面值:10 100
- 浮点型字面值:19.0
- 布尔型字面值:flase
- 字符串型字面值:"a"
- 字符型字面值:'a'
- java语言中所有字符串型字面值都需要使用双引号
- java语言中所有字符型字面值都需要使用单引号
- 字符是指:字母,数字,字,符号
- 变量本质上来讲是内存的一块存储空间,这块空间有数据类型 有名字 有数据
- 变量是存储数据的最基本单元
- 不同的数据有着不同的数据类型,不同的数据类型底层会分配不同的空间
- 数据类型是指引程序在运行阶段应该分配多大的内存空间
- 数据类型 名字【声明一个变量】
- 名字=字面值【赋值】
- 数据类型 名子=字面值【声明和赋值一起完成】
- =是一个赋值运算符,先计算等号右边式子,表达结束后赋值给左边的变量
- 第一种:get
- 第二种:set
- 在同一个作用域中变量名不能重名,但是变量可以重新赋值
- 什么是作用域?
- 便来你给的有效范围,在什么范围之内可以访问得,只要出了这个范围该变量就无法访问
- 出了大括号就不认识了
- 局部变量:在方法体中声明的变量,无默认值
- 成员变量:在类体中声明的变量,有默认值
- 局部变量是在方法体中,当方法被调用的时候,在栈中为变量分配空间
- 成员变量是在类加载的时候在方法区内存为变量分配空间
-
- 空间大小(单位字节byte) 取值范围
- char 2 0~65535
- byte 1 -128~127
- short 2 -32768~32767
- int 4 -2147483648~2147483647
- long 8
- float 4
- double 8
- boolean 1
- 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制表符
- \'普通的单引号
- \\普通的反斜杠
- \"普通的双引号
- 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);
- }
-
-
- }
- 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.当整数型字面值没有超过byte short char 的取值范围的时候直接赋值给short byte char类型的变量
- 4.char byte short 混合运算时,各自转换成int在做计算
- 5.多种数据类型在进行混合运算时,转化成容量大的
- 1.数组是有序的,具有相同数据类型的数据集合
- 2.数组类型是一组引用数据类型
- 3.数组是有序的,可以分出先后来,他们在内存中按在先后顺序存放
- 4.数据分为一维数组,二维数组...
- 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]);//访问内部元素
- 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
-
- }
由字母,数字,美元符号,下划线组成
首字母不能是数字,不能是关键字,不能是true,false,null
不可以
具有特殊含义的字符数列
不是
char,boolean,byte,short,int,float,double,long
char,boolean,byte,short,int,float,double,long
float常量后缀必须要有f或者F
double常量后缀可以有d或者D,但允许省略该后缀
浮点型数据没有后缀默认都是double类型数据
System.out.println(c.length)
c是一维数组,则获取一维数组的长度
c是二维数组,则获取二维数组中一维数组的个数