变量与标识符

1. 变量与标识符

1.1 变量

是指没有固定的值,可以改变的数。从计算机角度解释就是,变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。

1.2 变量分类

按所属的数据类型划分:基本数据类型变量、引用数据类型变量; 按被声明的位置划分:局部变量:方法或语句块内部定义的变量;成员变量:方法外部、类的内部定义的变量

1.3 八种基本数据类型

数据类型关键字占用字节默认值
布尔型boolean不定值false
字节型byte10
短整型short20
整型int40
长整型long80
字符型char2‘\u0000’
单精度浮点型float40.0F
双精度浮点型double80.0D

1.4 进制与转换

二进制数转换成十进制数:
按权相加:把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。例:原码1011.01=1x23+0x22+1x21+1x20 +0x2-1 +1x2-2 =8+0+2+1+0.25=11.25

十进制数转换成二进制数:
整数部分:"除2取余,逆序排列"法
小数部分:"乘2取整,顺序排列"法

2 89							
2 44 ... 1
2 22 ... 0
2 11 ... 0
2 5 ... 1
2 2 ... 1
2 1 ... 0
0    ... 1
则整数部分 89 转换成二进制 1011001
 0.625
 x2
 1.25
 x2
 0.5
 x2
 1.0
则小数部分 0.625 转换成二进制  0.101

1.5 基本数据类型转换

自动类型转换:容量小的类型自动转换成容量大的类型:byte,short,int它们三者在计算时会转换成int类型,如果把int值转换成float值,或者long转换成double值,不需要强制转换,但可能丢失精度。因为,byte,char, short,int, long属于精确值,精确值转近似值float、double时,可能丢失精度。
【例子】

public class Test{
public static void main(String [ ] args ){
short s1=10;//short,int在计算时转换成int类型
int s2=s1+1;//所以这个地方接收数据的类型需定义成int型,否则会报错
System.out.println(s2);
	}
}

强制类型转换:容量大的类型转换成容量小的类型时,需加上强制转换符

long n=100L;
int i=(int) n;

有可能造成精度降低或者数据溢出,使用时要小心。boolean类型不能转换成任何其他数据类型。
【例子】

public class Test{
public static void main(String [ ] args ){
short s1=10;//short,int在计算时转换成int类型
s1=(short) s1+1;//所以这个地方s1需强制类型转换成short型,或者按上面的吧接受数据类型定义成int型
System.out.println(s1);
	}
}

1.6 转义字符

符号功能
\n换行,将当前位置移到下一行开头
\r回车,将当前位置移到本行开头
\t水平制表,相当于一个Tab,即光标跳到下一个Tab位置
\ \ \backslash\backslash \\代表一个反斜线字符"’
\ ′ \backslash' \代表一个单引号(撇号)字符
\ ′ ′ \backslash'' \代表一个双引号字符

1.7 算数赋值关系运算符

【例子】

import java.util.Scanner;//接受键盘输入的工具类
//赋值运算符
public class Test{
public static void main(String [ ] args ){
short s1=10;//short,int在计算时转换成int类型
 //s1=s1+1;//所以这个地方接收数据的类型需定义成int型,否则会报错
 s1+=1;//写成这种表达方式,就不会出现上面的类型问题
System.out.println(s2);

//创建一个键盘输入的工具
Scanner input=new Scanner(System.in);
System.out.println("请输入一个整数:");
int x1=input.nextInt();//从键盘接收一个整数
System.out.println(x1);
System.out.println("请输入一个字符串:");
String s= input.next();//从键盘接收一个字符串
System.out.println(s);
	}
}

1.8 逻辑运算符

逻辑运算符:用于对boolean型结果的表达式进行运算,运算结果总是boolean型,

运算符描述示例结果
&false & truefalse
∣ \mid false & truetrue
^异或true ^ falsetrue
!! truefalse
&&短路与false && truefalse
∣ ∣ \mid\mid 短路或false ∣ ∣ \mid\mid truetrue

在计算机中,非0即真,0为假
逻辑或:或1则1
逻辑与:全1则1

1.9 位移运算符

左移:"a << b; " 将二进制形式的a逐位左移b位,最低位空出的b位补0
带符号右移:"a >> b; "将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位
无符号右移:"a >>> b; " 将二进制形式的a逐位右移b位,最高位空出的b位补0
【例子】

面试题:以最快的速度计算8*4结果?
使用位移的方法是最快的。
int result = 8 << 2;
左移算法:位移数作为2的次幂与操作数相乘
// 10 * 4
10 << 2=40
右移算法:操作数除以位移数的2次幂
// 40/4
40 >> 2=10
//通过键盘输入,初始化两个数将这两个数据交换位置后,输出显示交换后的数据
Scanner input =new Scanner(System.in);
System.out.println("请输入第一个数";
int a =input.nextInt();
System.out.println("请输入第二个数");
int b=input.nextInt();
int c=a;//通过第三个变量交换两个数
a=b;
b=c;
a=a+b-(b=a);//或者通过表达式实现不用通过第三个变量交换两个数
a=a^b;//或者通过异或实现两个数交换位置最快的方法
b=a^b;
a=a^b;
System.out.println("a="+a+",b="+b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值