概念:变量指的是程序运行时可变的量,相当于开辟一块内存空间来保存一些数据。
变量: —成员变量 —局部变量(一般是在方法内部的变量)1.整形变量
基本语法格式:int 变量名 = 初始值;
代码示例:
int n = 10;//定义一个整形变量
System.out.println(n);//打印这个值
注意事项:
(1).int表示变量的类型是一个整形,占4个字节(区别于c语言,是固定的和计算机的多少位无关)
(2).变量名是变量的标识,后续都是通过这个名字来使用变量
(3).java中的‘=’表示赋值,区别于常规的数学计算,意思是给变量设置一个初始值。
(4).初始化 *** 作是可以选的,但是建议创建变量的时候都显式初始化
(5).最后记得加上分号,否侧会编译失败
(6).//表示注释,用于代码中的解释说明,不参与编译运行
(7).4个字节表示的数据范围是-2^31 — 2^31-1
可以使用以下代码查看java中的整形数据范围
System.out.println(Integer.MAX_VALUE);System.out.println(Integer.MIN_VALUE);
public static void main(string[] args) { int a=10; System.out.println(a); System.out.println(Integer.MAX_VALUE);//2^31=2147483647 System.out.println(Integer.MAX_VALUE);//-2^31-1=-2147483648 System.out.println(Integer.MAX_VALUE+1);//-2147483648 System.out.println(Integer.MAX_VALUE-1);//2147483647 //这里看成一个圆分成两半的加减 //int 都是4个字节 和 *** 作系统的多少位无关,所以可移植性非常强。区别于c语言。 }2.长整形变量
基本语法格式:
long 变量名 = 初始值;
代码示例:
public static void main2(String[] args) { long a = 10L;//long长整形8个字节。8 * 8 = 64位-> 取值范围-2^63-2^63-1 System.out.println(Long.MAX_VALUE); System.out.println(Long.MIN_VALUE); System.out.println(a); }3.双精度浮点型变量
基本语法格式:
double 变量名 = 初始值;
代码示例:
public static void main3(String[] args) { double d=12.5;//8个字节 System.out.println(a); //int a=12.5;这是错误的,整数不能去保存小数。 }
public static void main4(String[] args) { double num = 1.1; System.out.println(num*num);//在电脑的世界当中小数是没有一个最精确的。 //只能最精确到小数点的后几位 float 6位 int a = 1; int b = 2; System.out.println(a/b);//在java中,int除以int的值仍然是int(会直接舍弃掉小数的部分,原本是0.5,但是这里就变成0了) //如果想得到0.5则需要使用double类型 double a = 1.0; double b = 2.0; System.out.println(a/b); }4.单精度浮点型变量
基本语法格式:
float 变量名 = 初始值;
代码示例:
public static void main(String[] args) { float f = 12.5f;//4个字节 System.out.println(f); }5.字符类型变量
基本语法格式:
char 变量名 = 初始值;
代码示例:
public static void main(String[] args) { char ch = 'g';//占2个字节,单引号的叫做字符,双引号——“字符串” -》 正数 Character char ch2 = '高'; char ch3 = 97; System.out.println(ch2);//一个汉字就是占2个字节 System.out.println(ch3);//打印结果是a,虽然给的是正数,但是因为是char的类型 所以会自己去寻找对应的字符,不能给负数 //执行javac的时候可能出现以下错误: char ch=‘鍛?’; //此时我们在执行javac时加上 -encoding UTF-8选项即可 //javac -encoding UTF-8 Test.java }6. 字节类型变量
基本语法格式:
byte 变量名 = 初始值;
代码示例:
public static void main(String[] args) { byte b = 127;//占1个字节 -> Byte 取值范围是 -128 — 127 System.out.println(b+1);//128 因为是整型打印-结果就不是-128了 //int a = 2147483647;//直接赋值的时候,不能超过他的表示范围,eg:int a = 2147483648 × //System.out.println(a); }7.短整形变量
基本语法格式:
short 变量名 = 初始值;
代码示例:
public static void main(String[] args) { short s = 10;//占2个字节 取值范围:-2^16 —— 2^16 -1 System.out.println(s); }8.布尔类型
基本语法格式:
boolean 变量名 = 初始值;
代码示例:
public static void main(String[] args) { boolean flg = true;//布尔类型只有2个值:true or false System.out.println(flg); }
注:
(1)java中的boolean类型和int不能相互转换,不存在1表示true,0表示false这样的用法
(2)boolean类型有些JVM的实现是占一个字节,有些是占1个比特位,这个没有明确规定
9.字符串类型基本语法格式:
string 变量名 = " 初始值 ";
代码示例:
public static void main(String[] args) { String str="abcdef";//string不是基本类型(8种)([数值类型(整数、浮点)][字符类型][布尔类型]),是引用类型。 String str2=""abcdef"";//转义字符——打印结果-“adcdef” System.out.println(str);//abcdef System.out.println(str2); } public static void main2(String[] args) { System.out.println("ab"+"cd"); String str1="ab"; String str2="cd"; System.out.println(str1+str2);//abcd System.out.println(10+str1+str2);//10abcd System.out.println(10+20+str1+str2);//30abcd System.out.println(str1+str2+10+20);//abcd1020 //任何类型的数据和字符串进行拼接,其结果就是一个字符串 String ret=10+str1+str2; System.out.println(ret);//10abcd ret=str1+str2+10+20; System.out.println(ret);//abcd1020 }10、变量的命名规则
(1)一个变量名只能包含数字,字母和下划线
(2)数字不能开头
(3)变量名是区分大小写的,例如num和 Num是两个不同的变量
注:
(1)变量命名要具有描述性发
(2)变量名不宜直接使用拼音,特殊情况除外。比如:阿里巴巴(Alibaba)
11、常量(3)变量名尽量使用小驼峰命名法,当一个变量名又多个单词构成时,除了第一个单词之外,其他单词的首字母都大写
1.字面值常量
2. final 关键字修饰的常量
12、理解类型转换final int a = 10;
a = 20;
// 编译出错,无法为最终变量a分配值
注:常量不能在程序运行过程中发生修改!
int a = 10;
long b = 20;
a = b; // 编译出错
b = a; // 编译通过注:long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int.
int a = 10;
double b =1.0;
a = b; // 编译出错
b = a; // 编译通过
注:double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.
int a = 10;
boolean b = true;
b = a; // 编译出错
a = b; // 编译出错注:结论: int 和 boolean 是毫不相干的两种类型, 不能相互赋值.
byte a = 100; // 编译通过
byte b = 256; //编译报错
注: byte 表示的数据范围是 -128 -> +127, 256 已经超过范围, 而 100 还在范围之内.
java类型汇总
二、运算符 1.逻辑运算符逻辑与(&&)
int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b && b < c);
规则: 两个 *** 作数都为 true, 结果为 true, 否则结果为 false.
逻辑或(||)
int a = 10;
int b = 20;
int c = 30;
System.out.println(a < b || b < c);
规则: 两个 *** 作数都为 false, 结果为 false, 否则结果为 true
逻辑非(!)
2.位运算符int a = 10;
int b = 20;
System.out.println(!a < b);规则: *** 作数为 true, 结果为 false; *** 作数为 false, 结果为 true(这是个单目运算符, 只有一个 *** 作数).
解释:位 *** 作表示按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算.
按位与(&)
int a = 10;
int b = 20;
System.out.println(a & b); //结果就是0//01010
//10100
//00000
//进行按位运算, 需要先把 10 和 20 转成二进制, 分别为 1010 和 10100
// 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
按位或(|)
int a = 10;
int b = 20;
System.out.println(a | b); //30//01010
//10100
//11110
//如果两个二进制位都是 0, 则结果为 0, 否则结果为 1
按位取反(~)
规则:如果该位为 0 则转为 1, 如果该位为 1 则转为 0
按位异或 ^
3.条件运算符规则:如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.
表达式1 ? 表达式2 : 表达式3
// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;规则:当表达式1的值为 true 时, 整个表达式的值为表达式2的值; 当表达式1的值为 false 时, 整个表达式的值为表达式3的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)