总结
- 数据类型
- 类型转换
- 运算符
1.数据类型
赋值方式
(1)整数的赋值方式:
数据类型 变量名 = 字面值;
5种常用的赋值方法:
1.二进制赋值:以"0b" 或"0B"开头后跟二进制值
2.八进制赋值:以0开头后跟八进制值
3.十进制赋值(常用):直接赋值
4.十六进制赋值:以"0x"或"0X"开头后跟十六进值
public class Demo01{
public static void main(String[] args){
//十进制赋值:
int num = 10;
//二进制赋值
num = 0B101;
System.out.println("二进制num的值是:"+num);
//8进制
num = 013;
System.out.println("8进制num的值是:"+num);
//16进制
num = 0x2A;
System.out.println("16进制num的值是:"+num);
}
}
5.通常在一串长数字间加入符号_来分割整个整数
public class Demo01{
public static void main(String[] args){
int num = 12_345_678;
System.out.println("num的值是:"+num);
}
}
(2)小数的赋值方式
正常赋值:double d=3.14;
科学计数法:
数值E/e 整数:0.0000314=3.14E-5;
逻辑型(布尔型)
符号 | 所占空间 | 范围 |
---|---|---|
boolean | 1位(实际存储还是一个字节) | true/false |
注意:boolean类型不参与四则运算
public class Demo03{
public static void main(String[] args){
//声明一个boolean类型的变量
boolean flag = true;
System.out.println(flag);//看输出结果是否正确
}
}
字符型
符号 | 空间 | 范围 |
---|---|---|
char | 2字节 | 0~65535 |
注意事项:1.给char变量类型赋值时要注意是单引号引起的单个字母
2.java中字符串的类型是String,’'表示字符”“表示字符串
3.char类型可以参与四则运算,也可以直接赋值整数
4.Java可以使用中文,因其采用Unicode编码
5.转义字符
2.类型转换
java 中所有类型都可以进行类型转换(boolean类型不能进行类型转换)
1.自动转换
主要是小类型转为大类型
大类型 变量名 = 小类型的值
byte -> short -> int -> long
char 通常直接转为int类型
public class Demo06{
public static void main(String[] args){
//声明一个byte类型的变量
byte b = 12;
// 声明一个int类型的变量存放byte类型的数据
int num = b;//把变量b中的值赋值给int类型的变量num存放
System.out.println(num);
}
}
2.强制转换
主要是大类型转为小类型
小类型 变量名 = (小类型)大类型的变量
注意:大类型的变量值一旦超过小类型的取值范围会导 致结果有问题
public class Demo06{
public static void main(String[] args){
int num;
//声明一个char类型
char ch = 'a';
num = ch;
System.out.println(num);
num = 300;
//将int类型的值赋值给byte
byte result = (byte)num;
System.out.println(result);
}
}
3.运算符
1.概念
运算符两边的内容称为操作数
int num = 3+5;
= + 都是运算符
2.算数运算(+、-、*、/、%)
+号:
在JAVA中+号有三种用途:1.加法运算
2.用作连接符
3.正号
public class Demo01{
public static void main(String[] args){
/*
+号的三种用法:
1.连接符号
2.加法运算
3.正号
*/
int num=3+5;//= +都是运算符,运算符两边的内容称为操作数
System.out.println(num);
}
}
-号:
主要有两种作用:1.减法运算
2.负号
*、/、%(乘 除 取余):
public class Demo02{
public static void main(String[] args){
int num=1234;
int bit=num%10;//4
System.out.println("个位数是:"+bit);
num=num/10;//123
bit=num%10;//余数3
System.out.println("十位数是:"+bit);
num=num/10;//12
bit=num%10;//2
System.out.println("位百数是:"+bit);
bit=num/10;
System.out.println("千位数是:"+bit);
}
}
3.自增自减
自增++:++在前表示先自增再运算
++在后表示先运算再自增
public class Demo03{
public static void main(String[] agrs){
//自增++
int num =8;
num++;
System.out.println("自增:"+num);
num=10;
int result= ++num;
System.out.println("先自增再运算:"+num);//先自增再运算
num=10;
result= num++;
System.out.println("先运算再自增:"+num);//先运算再自增
//自减--
num=10;
num--;
System.out.println("自减:"+num);
//混合运算
int i=5;
int k=4;
result =++i+k---i+k+++i--;
System.out.println("混合运算:"+num);
}
}
4.关系运算符(> 、<、 >= 、<=、==、!= )
= : 赋值运算符 自右向左运算
1:关系运算符最后得到的结果是一个boolean类型的变量
2:== !=既可以连接基本数据类型 也可以判定引用类型
public class Demo04{
public static void main(String[] agrs){
//测试==
int j=10;
int k=10;
System.out.println(j==k);//比较两数是否相等
//声明两字符串型变量
String str1="aaa";
String str2="aaa";
System.out.println("==结果"+(str1==str2));//比较两个变量是否相等
}
}
5.逻辑运算符
& | ! ^ && ||
1:逻辑运算符左右两边连接的操作数是一个boolean类型的值
2:& 左右两边操作数有一个为false,其结果就是false,如果都为true其结果才为true。
3:| 左右两边操作数有一个为true,其结果就是true,如果都为false其结果才为false。
4:! 取反
5:^ 相同为false 不同为true
6:&& || 称之为短路与和短路或,&&如果第一个操作数为false其结果就是false不会执行第二个操作数。
|| 如果第一个操作数为true,整个结果就为true,不会执行第二个操作数
public class Demo05{
public static void main(String[] agrs){
//测试&
System.out.println("测试&");
System.out.println(true&true);
System.out.println(true&false);
System.out.println(false&true);
System.out.println(false&false);
//测试|
System.out.println("测试|");
System.out.println(true|true);
System.out.println(true|false);
System.out.println(false|true);
System.out.println(false|false);
//测试!
System.out.println("测试!");
System.out.println(!true);
System.out.println(!false);
//测试&&
System.out.println("测试&&");
System.out.println(true&&true);
System.out.println(true&&false);
System.out.println(false&&true);
System.out.println(false&&false);
//测试||
System.out.println("测试||");
System.out.println(true||true);
System.out.println(true||false);
System.out.println(false||true);
System.out.println(false||false);
}
}
模拟登录
/*
模拟登录
*/
public class LoginV1{
public static void main(String[] agrs){
//声明登录用户名和密码
int LoginName=123;
int LoginPwd=234;
//声明注册用户名和密码
int Name=123;
int Pwd=234;
boolean flag =(LoginName==Name)&&(LoginPwd==Pwd);
System.out.println(flag);
}
}
从键盘输入
/*
通过键盘输入模拟登录
*/
import java.util.Scanner;
public class LoginV2{
public static void main(String[] agrs){
System.out.println("请输入用户名:");//提示用户输入信息
Scanner input=new Scanner(System.in);
int LoginName=input.nextInt();//获取键盘输入的值
System.out.println("请输入密码:");
int LoginPwd=input.nextInt();//获取键盘输入的值
//声明注册用户名和密码信息
int Name=123;
int Pwd=234;
boolean flag =(LoginName==Name)&&(LoginPwd==Pwd);
System.out.println(flag);
}
}
6.拓展运算符(+= *= /= %=)
优点:1.简化了代码量
2.能够实现自动强转
3.有效提高了编译速度
7.条件运算符
格式:
表达式1?表达式2:表达式3
先计算表达式1的值(值永远只能是true或false),若式1的值为true,则表达式1的结果是表达式2的值,否则表达式1的结果是表达式2的值。
public class Demo06{
public static void main(String[] args){
// 计算两个数的最大值:
//声明2个变量存放值
int num1 = 10;
int num2 = 15;
System.out.println(num1>num2);
//三目运算符
int max = num1>num2?num1:num2;
System.out.println("num1和num2中大的值是:"+max);
}
}
8.运算符优先级
1:算数 > 关系 > 逻辑 > 三目 >赋值
2: 单目>双目>三目
3:加括号
blic static void main(String[] args){
// 计算两个数的最大值:
//声明2个变量存放值
int num1 = 10;
int num2 = 15;
System.out.println(num1>num2);
//三目运算符
int max = num1>num2?num1:num2;
System.out.println("num1和num2中大的值是:"+max);
}
}
8.运算符优先级
1:算数 > 关系 > 逻辑 > 三目 >赋值
2: 单目>双目>三目
3:加括号