类型转换及变量
低---------------------------------------------->高
1 2 2 4 8 8 8
byte,short,char--->int--->long--->float--->double
-
运算中,不同类型的数据先转换为同一类型,然后进行运算。
-
类型转换分为强制类型转换和自动类型转换
int i = 128;
byte b = (byte)i; //内存溢出
double b=i;
//强制转换 (类型)变量名 高到低
//自动转换 低到高
-
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换到低容量的时候,强制转换
-
转换的时候可能存在内存溢出,或者精度问题!
-
public class Demo06{
public static void main(String[] args){
//操作比较大的数的时候,注意溢出问题
//JDK7的新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years; //-1474836480,计算的时候溢出了
long total2 = money*years; //默认是int,转换之前已经存在问题了
long total3 = money*((long)years); //先把一个数转换为long,结果两百亿
System.out.println(total3);
}
}
变量
1.变量
在程序执行的过程中,在某个范围内其值可以发生改变的量。
Java是强类型语言,声明变量必须指定变量的类型,每一种数据都定义了明确的具体数据类型。
变量的分类:
基本数据类型:
数值型:
整数型:byte short int long
浮点型:float double
字符型:char
布尔型:boolean
引用数据类型:
类,接口,枚举,数组等;
2.变量的定义格式及注意事项:
变量的类型 变量的名字 = 变量的值(初始值);
局部变量没有初始化值,不能直接使用;
整数默认是int类型;
浮点数默认是double类型;
当定义long类型时,变量的值在int范围内的可以直接赋值,超过int变量范围 但在long的范围内时,在变量值后面加 l 或者 L ;
当定义float类型时候,在变量值的后面加 f 或者 F;
3.变量的作用域:
局部变量在哪个大括号中声明,就只能在哪个括号中使用;
并且在一个大括号内,不能定义同命的变量;
4.变量的转换:
boolean类型不能转换为其它的数据类型。
默认转换:
byte,short,char—int—long—float—double
byte,short,char相互之间不转换,它们参与运算首先转换为int类型(自动类型提升),结果也为int类型。
强制转换:
目标类型 变量名 = (目标类型)(被转换的数据)
5.注意事项
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
6. 变量
-
实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
-
布尔值:默认是false
-
除了基本类型,其余的默认值都是null
-
局部变量:必须声明和初始化值 //变量类型 变量名 = new XXX();
-
类变量:static
7. 常量
Java常量是什么?
JAVA常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符“a”、浮点数3.2等。在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。
下面我们就一起来看看java中的这些常量。
1、整型常量
整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式具体表示形式如下。
二进制:由数字0和1组成的数字序列。在JDK7.0中允许使用字面值来表示二进制数,前面要以0b或0B开头,目的是为了和十进制进行区分,如0b01101100、0B10110101。
八进制:以0开头并且其后由0~7范围内(包括0和7)的整数组成的数字序列,如0342。
十进制:由数字0~9范围内(包括0和9)的整数组成的数字序列。如198。
十六进制:以0x或者0X开头并且其后由0~9、A~F(包括0和9、A和F)组成的数字序列,如0x25AF。
需要注意的是,在程序中为了标明不同的进制,数据都有特定的标识,八进制必须以0开头,如0711,0123;十六进制必须以0x或0X开头,如0xaf3、0Xff;整数以十进制表示时,第一位不能是0,0本身除外。例如十进制的127,用二进制表示为011111八进制表示为017,用十六进制表示为0x7F或者0X7F。
2、浮点数常量
浮点数常量就是在数学中用到的小数,分为foat单精度浮点数和double双精度浮点数两种类型。其中,单精度浮点数后面以F或f结尾,而双精度浮点数则以D或d结尾。当然,在使用浮点数时也可以在结尾处不加任何的后缀,此时虚拟机会默认为double双精度浮点数。浮点数常量还可以通过指数形式来表示。具体示例如下:
1
2e3f 3.6d 0f 3.84d 5.022e+23f
3、字符常量
字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引’’号引起来,它可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。具体示例如下:
1
‘a’ ‘1’ ‘&’ ‘\r’ ‘\u0000’
上面的示例中,’\u00’表示一个空白字符,即在单引号之间没有任何字符。之所以能这样表示,是因为Java采用的是Unicode字符集,Unicode字符以\u开头,空白字符在Unicode码表中对应的值为’\u0000’。
4、字符串常量
字符串常量用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号””引起来,具体示例如下:
1
“HelloWorld" “123" "We come \n XXX" "”
一个字符串可以包含一个字符或者多个字符,也可以不包括任何字符,即长度为零。
5、布尔常量
布尔常量即布尔型的两个值true和false,该常量用于区分一个事物的真与假。
6、null常量
null常量只有一个值null,表示对象的引用为空。
8. 变量的命名规范
1、严格区分大小写
2、变量的命名必须以字母或者或$开头,余下的部分可以是任意的字母,数字,或者是或者是$
3、不能用关键词或者保留字命名。
4、javascript自己的命名习惯
*驼峰命名法:getElementByld*
6、;的用法(记忆技巧:和古诗的;用法一致)
声明变量注意问题
1、如果重新声明该变量,而没有赋值,该变量的值不会改变