类型的基础
/**
* 对于引用类型的变量,在使用之前需要进行初始化,否则会抛出NULLPointerException异常
* 除了成员变量,java中还可以顶一句不变量,局部变量在使用之前必须要对其进行初始化,虚拟机不会进行初始化工作,否则会报告错误
* */
public class Initialization {
private byte b; // 声明比特类型变量b
private short s; // 声明短整型类型变量s
private int i; // 声明整型类型变量i
private long l; // 声明长整型类型变量l
private float f; // 声明单精度浮点类型变量f
private double d; // 声明双精度浮点类型变量d
private boolean bl; // 声明布尔类型变量bl
private char c; // 声明字符类型变量c
private String string; // 声明引用类型变量string
public static void main(String[] args) {
Initialization init = new Initialization();
System.out.println("byte类型的初始值:" + init.b); // 输出byte类型变量初始值
System.out.println("短整型类型的初始值:" + init.s); // 输出短整型类型变量初始值
System.out.println("整型类型的初始值:" + init.i); // 输出整型类型变量初始值
System.out.println("长整型类型的初始值:" + init.l); // 输出长整型类型变量初始值
System.out.println("单精度浮点类型的初始值:" + init.f);// 输出单精度浮点类型变量初始值
System.out.println("双精度浮点类型的初始值:" + init.d);// 输出双精度浮点类型变量初始值
System.out.println("布尔类型的初始值:" + init.bl); // 输出布尔类型变量初始值
System.out.println("字符类型的初始值:" + init.c); // 输出字符类型变量初始值
System.out.println("引用类型的初始值:" + init.string);// 输出引用类型变量初始值
}
类型之间的转换
转换
/**
* 所有整数运算都被自动转换为int类型在进行计算
* 所有浮点数组都被自动转换为double类型进行运算
*
* 高类型数据向地类型数据进行强制类型转换,并注意运算结果是否丢失数据
*
* 转换后的类型 变量=(转换后的类型)被转换的变量
* */
在这里插入代码片
byte b=127;
char c='W';
short s=23561;
int i=3333;
long l=400000L;
float f=3014159F;
double d=54.523;
//从低类型向高类型自动转换
System.out.println("累加byte等于:"+b);
System.out.println("累加char等于:"+(b+c));
System.out.println("累加short等于:"+(b+c+s));
System.out.println("累加int等于:"+(b+c+s+i));
System.out.println("累加long等于:"+(b+c+s+i+l));
System.out.println("累加float等于:"+(b+c+s+i+l+f));
System.out.println("累加double等于:"+(b+c+s+i+l+f+d));
System.out.println("把long强制类型转换为int:"+l+"---------"+(int)l);//高类型到地类型的强制转换
System.out.println("把long强制类型转换为short:"+l+"---------"+(short)l);//高类型到地类型转换会丢失数据
System.out.println("把double强制类型转换为int:"+l+"---------"+(int)d);//实数到整数转换将舍弃小数部分
System.out.println("把short强制类型转换为char:"+l+"---------"+(char)d);//整数到字符类型的转换将获取对应编码的字符
/**
* 温度单位转换工具
*
* 将温度的摄氏度转换成华氏度
*
*
* next() 这个方法呢,你输入了一串字符串, 他只得到空格、tab键、回车的第一个字符串,比如:hello world! 这个字符串,只得到 hello ,如果是循环的话,第二次就能得到 world!
*
* */
public class CelsiusConverter {
public double getFahrenheit(double celsius) {
double fahrenheit = 1.8 * celsius + 32;// 计算华氏温度
return fahrenheit;// 返回华氏温度
}
public static void main(String[] args) {
System.out.println("请输入要转换的温度(单位:摄氏度)");
Scanner in = new Scanner(System.in);// 获得控制台输入
double celsius = in.nextDouble();// 获得用户输入的摄氏温度
CelsiusConverter温度 converter = new CelsiusConverter温度(); // 创建类的对象
double fahrenheit = converter.getFahrenheit(celsius); // 转换温度为华氏度
System.out.println("转换完成的温度(单位:华氏度):" + fahrenheit);// 输出转换结果
}
}
加密运算(位运算)
/**
* Scanner类是java的扫描类,可以从输入流中读取指定类型的数据或字符串
* 位运算的异或运算符"^"把字符串与一个指定的只进行异或运算,改变字符串中的每个字符的值-------这样就得到一个加密后的字符串
* 异或运算
* 字符或者数值x与一个数值m进行异或运算得到y;
* 则在用y与m进行异或运算就可以还原为x
* 这个原理可以实现加密和解密功能
* */
在这里插入代码片
Scanner scan=new Scanner(System.in);
System.out.println("输入");
String password=scan.nextLine();//获取输入值
char[] array=password.toCharArray();//获取字符数组
for(int i=0;i<array.length;i++){ //遍历字符数组
array[i]=(char) (array[i]^20000); //对每个数组元素进行异或运算
}
System.err.println("加密或解密结果如下:"+new String(array)); //输出秘钥
三元运算符
Scanner scan=new Scanner(System.in);//创建输入流扫描器
System.out.println("数值输入:");
long number=scan.nextLong();//避免类型转换等业务代码。 public long nextLong()返回龙类型的数值,这个数是从扫描器封装的输入流中获取的
String check=(number%2==0)?"偶数":"奇数";
System.out.println(check);
左移与右移运算符号
左移运算符号
在这里插入代码片
Scanner scan=new Scanner(System.in);//创建扫描器
System.out.println("数值输入:");
Long number=scan.nextLong();//获取输入的整数
System.out.println(number+"--乘以1的结果--"+(number<<1));
System.out.println(number+"--乘以2的结果--"+(number<<2));
System.out.println(number+"--乘以3的结果--"+(number<<3));
System.out.println(number+"--乘以4的结果--"+(number<<4));
右移运算符号
Scanner scan=new Scanner(System.in);//创建扫描器
System.out.print("数值输入:");
Long number=scan.nextLong();//获取输入的整数
System.out.println(number+"--除以1的结果--"+(number>>1));
System.out.println(number+"--除以2的结果--"+(number>>2));
System.out.println(number+"--除以3的结果--"+(number>>3));
System.out.println(number+"--除以4的结果--"+(number>>4));
变量值得互换
不借助第三变量
在这里插入代码片
Scanner scan=new Scanner(System.in);//创建扫描器
System.out.println("输入数值A:");
long A=scan.nextLong();//接受第1个变量值
System.out.println("输入数值B:");
long B=scan.nextLong();//接受第2个变量值
System.out.println("A="+A+"\tB="+B);
System.out.println("执行变量互换....");
//执行变量互换
A=A^B;
B=B^A;
A=A^B;
System.out.println("A="+A+"\tB="+B);
互换需要第三变量
在这里插入代码片
Scanner scan=new Scanner(System.in);//创建扫描器
System.out.println("输入数值A:");
long A=scan.nextLong();//接受第1个变量值
System.out.println("输入数值B:");
long B=scan.nextLong();//接受第2个变量值
System.out.println("A="+A+"\tB="+B);
System.out.println("执行变量互换....");
//执行变量互换
long C=A;
A=B;
B=C;
System.out.println("A="+A+"\tB="+B);