
一.JavaSE-基础语法(一)
一.数据类型
二.变量常量
三.流程控制语句
四.数组
一.数据类型
java语言的数据类型包括两种,基本数据类型和引用数据类型。
(1).基本数据类型:变量名指向具体的数值。
(2).引用数据类型:变量名指向存数据对象的内存地址,即变量名指向hash值。
1.基本数据类型
(1)基本数据类型:整数类型(byte,short,int,long);浮点类型(float,double);字符型(char);布尔型(boolean)。
(2)
整型
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
- 例子:byte a = 100,byte b = -50。
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
- 例子:short s = 1000,short r = -20000。
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
- 例子:int a = 100000, int b = -200000。
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
浮点型
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
- 例子:float f1 = 234.5f。
double:
- double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
- 例子:double d1 = 123.4。
布尔型
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true 和 false;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false;
- 例子:boolean one = true。
字符型
char:
- char类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(即为0);
- 最大值是 \uffff(即为65,535);
- char 数据类型可以储存任何字符;
- 例子:char letter = 'A';。
2.引用数据类型:
引用数据类型:类(class),接口(interface),数组([])。引用数据类型的类都是Object类的子类。
3.内存分配
基本数据类型:在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
引用数据类型:在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
例如,有一个类Person,有属性name,age,带有参的构造方法,
Person p = new Person("zhangsan",20);
在内存中的具体创建过程是:
1.首先在栈内存中位其p分配一块空间;
2.在堆内存中为Person对象分配一块空间,并为其三个属性设初值"",0;
3.根据类Person中对属性的定义,为该对象的两个属性进行赋值操作;
4.调用构造方法,为两个属性赋值为"Tom",20;(注意这个时候p与Person对象之间还没有建立联系);
5.将Person对象在堆内存中的地址,赋值给栈中的p;通过引用(句柄)p可以找到堆中对象的具体信息。
4.包装类
1.基本数据类型与对应包装类
2.其中需要注意int对应的是Integer,char对应的Character,其他6个都是基本类型首字母大写即可。
3.基本数据类型对象包装类特点:用于在基本数据和字符串之间进行转换。
(1)将字符串转成基本数据类型:
parseXXX(String s);其中XXX表示基本类型,参数为可以转成基本类型的字符串,如果字符串无法转成基本类型,将会发生数字转换的问题 NumberFormatException
(2)将基本数值转成字符串有3种方式:
基本类型直接与””相连接即可;34+""
调用String的valueOf方法;String.valueOf(34) ;
调用包装类中的toString方法;Integer.toString(34) ;
4.基本数据类型和包装类转换
(1)基本数据类型转包装类型
Integer i = new Integer(4);//使用构造函数函数
Integer ii = new Integer("4");//构造函数中可以传递一个数字字符串
Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法
Integer iiii = Integer.valueOf("4");//使用包装类中的valueOf方法
(2)包装类转基本数据类型
int num = i.intValue();
总结:(1)整数运算表达式的结果,类型按字节大的为基准,若最大的小于int,结果默认为int
(2)long若数字超出int范围,值后面加符号L(大小写都可)
(3)整数和小数运算,结果一律为double
float类型定义,值后面加符号f(大小写都可)
(4)包装和基本数据类型可以自动转换,可以当基本数据类型使用
包装类相互之间不能转换
二.变量和常量
1.变量
(1)含义:java中通过三个元素描述变量:变量类型、变量名及变量值。
(2)语法:变量类型 变量名 = 变量值;
注:其中String类型变量具有不可变性,重新赋值后会生成新的String对象。
(3)变量的使用:
a.变量需要先声明后使用
b.变量使用时,可以声明变量的同时进行初始化,也可以先声明后使用。例:String str=”Hello”;或者String str;str=”Hello”;
c:变量每次只能赋一个值,但可以修改多次;
d.main方法中定义的变量必须先赋值,然后才能输出;
e.变量名不建议使用中文,容易产生安全隐患。
2.常量
(1)含义:一种特殊的变量,它的值被设定后,在程序运行中不允许改变。
(2)语法:final 常量名 = 值; 例: final PI =
3.14;
(3)作用:提高了代码的可维护性,避免了由于用户的不规范赋值导致程序出错的情况。
三.流程控制语句
(1)分支结构:
a:if条件语句:if(条件表达式){
执行语句; }
b:if...else语句:if(条件表达式){ 执行语句; }else{ 执行语句; }
c:if...else
if...else语句:if(条件表达式){ 执行语句; }else if(条件表达式){ 执行语句; }else{ 执行语句;}
(2)switch分支
switch(表达式){
case 值1:执行语句;break;
case 值2:执行语句;break;
……
default:执行语句;break;(可以省略)
}
注意:switch的byte、short、char、int四种整数类型,枚举类型和String类型(从java7才允许),不能是boolean类型。
(3)循环语句
a:while语句:while(条件表达式){ 循环语句;}
b:do..while语句:do{ 循环语句 }while(条件表达式);
c:for语句:for(初始化表达式;条件表达式;循环后表达式){
循环体;
}
注:(1)do...while语句特点:无论条件是否满足,都会执行一次;
(2)终止循环:
a:break必须使用在switch或循环语句中;
在switch或循环语句中,break单独使用时,下面不允许有代码语句;
默认情况下:break只能跳出语句所属的最近一层循环。
b:continue 是终止本次循环,继续下一次循环。
c:return 结束当前方法。
四.数组
数据类型相同的一组数据.
1.一维数组
(1)语法格式:
(1)int[ ] arr = {值1,值2,值3,..};
(2)int[ ] arr1 = new int[ 4] ;推荐使用
(3)int[ ] arr2 = new int[ ] {值1,值2,值3,...};
(3)特点: 创建之后,长度固定,不能增减,序号从0开始.