1.变量
变量命名规则熟记;
要点:变量表示数据在内存中内存地址,在使用变量时要先声明和赋值。
2.数据类型
数据类型字节大小:
byte(1字节)<short=char(2字节)<int=float(4字节)<long=double(8字节)
自动类型转换:
在数据类型兼容的情况下, 小转大就是自动类型转换。
强制类型转换:
在数据类型兼容的情况下, 大转小就是强制类型转换,显示性转换需要添加被转类型的语法。
数据类型提升:
- 表达式中有double,结果double
- 有float,结果float
- 有long,结果long
- 有int,结果int
- 有char、byte、short,结果为int
(1.在Java中,任何一个整数默认都当做是int类型;任何一个小数默认都是double类型;2.任何类型和String拼接时为String类型)
3.运算符
按位取反:将每一位上的数字取反即当前数加一取反。
**移位运算符:用左移运算符<<可以快速求2的幂次方或某个数的一倍;用右移运算符>>可以求一个数的一半,右移运算符运算正数是补0,运算负数时补1;无符号右移时正负数都补0,并使用32位运算。
今日练习
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上3然后除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。输入四位号码,求加密后的号码为多少?
import java.util.Scanner;
public class Demo03{
public static void main(String[] args){
Scanner input =new Scanner(System.in);
System.out.println("请输入初始四位整数密码:");
int mm=input.nextInt();
int one=(mm/1000+3)%10;
int two=(mm%1000/100+3)%10;
int three=(mm%100/10+3)%10;
int four=(mm%10+3)%10;
System.out.println("加密后的密码为"+four+three+two+one);
}
}
小收获:
两数交换1:a=a+b; b=a-b; a=a-b;
两数交换2:a=a^b; b=a^b; a=a^b;(程序中运行更快)