Java中有四种,八个基本数据类型,分别是:
整型:byte(字节型) short(短整型) int(整型) long(长整型)
浮点型:float(单精度浮点型) double(多精度浮点型)
布尔类型:boolean(作为比较特殊的数据类型,boolean布尔类型只有两个值,true和false)
字符型:char(字符型)
每个数据类型都有各自的取值范围:
byte 字节型 -2 ^ 7 ~ 2 ^ 7 - 1
short 短整型 -2 ^ 15 ~ 2 ^ 15 - 1
int 整型 -2 ^ 31 ~ 2 ^ 31 - 1
long 长整型 -2 ^ 63 ~ 2 ^ 63 - 1
float单精度浮点型 保留小数点后面8位
double双精度浮点类型 保留小数点后面16位
boolean布尔类型 true/false
char类型 0 ~ 65535
其中,char类型较为特殊,它虽然只能表示一个字符,但是有一套独特的赋值方式可以对char类型赋值
常用的赋值方式:ASCII码表 unicode码表
public class Demo_06 {
public static void main(String[] args) {
/**
* 常用的赋值方式
* 语法:
* char 变量名 = '值';
* 值只能是一个并且不能没有
* 可以是字母,数字,汉字,符号...
*/
char a1 = 'a';
char a2 = 'A';
char a3 = '1';
char a4 = '中';
char a5 = ' ';//放了一个空格
//ASCII码:美国信息交换标准码,是一套编码方案,能够帮我们进行元素之间信息的转换共0 ~ 127共128//个字符
八种基本数据类中,除了boolean类型之外的数据类型之间均可以实现相互转换
自动转换:小的数据类型转换为大的数据类型
强制转换:大的数据类型转换为小的数据类型
public class T {
public static void main(String[] args) {
//数据类型的转换
int a =5;
double b =2.0;
//给到两个变量,分别是整型的100和浮点型的2.0
int c = a/b;//可以看到有报错,因为a/b的数据类型是浮点型,并不能被整数类型的变量c所接收,但是如果将变量c的数据类型改为浮点型
//但是如果将变量c的数据类型改为浮点型就可以接收,也可以将a/b的数据类型转换为整型
int d=(int) (a/b);//注意,如果进行强制转换,则结果不会为2.5,而是会为2,因为转化后变量b只接受a/b的整数部分,且不遵循四舍五入原则
}
}
Java中提供了一个类(scanner),可以实现简单的人机交互
我们称之为文本扫描器
public class T {
public static void main(String[] args) {
//文本扫描器
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();//现在我们将控制台上输入的文本赋值到数据类型为整型的变量a中去
System.out.println(a);//这边输出的结果就是我们从控制台中输入的数值
}
}
Java中的基础运算符
1.三目运算符:
public class T {
public static void main(String[] args) {
System.out.println(100 < 50 || 100 > 200 ? "100比较大" : "200比较大");
int m = 10;
int n = 10;
//如果三目运算表达式的值要赋值给一个变量,那么要保证m和n的数据类型要接收值的
//变量的数据类型保持相同
int w = m++ > ++n || n++ < ++m ? m : n;
}
}
三目运算符是一种简单实用的基础运算符.
2.逻辑运算符:
逻辑运算符的最终结果也是布尔类型.
&:与,当两个元素之间进行运算的时候,如果两个值结果都是true, 那么最终结果才是true,有一个是false结果就是false
| :或,两个元素之间,只要有一个结果是true,那么就是true
!:非,取相反,值是true,结果就是false,值是false,结果就是true
^:异或,如果两个结果相同就是false,如果不同就是true
&&:短路与 只要执行的过程中发现有一个值是假的,那么就得出结论不再往后进行计算
||:短路或 只要执行的过程中发现有一个值是真的,那么就得出结论不再往后进行计算 * 结果和正常的与和或没有什么区别,但是在运算的过程中会有所不同.
其中,短路与和短路或的效率要高于与和或.
随机数:Java中可以生成伪随机数,目前世界上并没有随机数,Java中提供了生成伪随机数的方法
public class T {
public static void main(String[] args) {
Random ran =new Random();
int a = ran.nextInt(100);//生成一个范围[0,100)的随机整数数a
int b = ran.nextInt(200);//生成一个范围[0,200)的随机整数数b
int c = ran.nextInt(300);//生成一个范围[0,100)的随机整数数c
double d = Math.random();//生成一个[0,1)的随机浮点数d
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
流程控制:
分支语句是一个代码块,在我们项目过程中是很常用的一个技术 ,根据我们的需求进行程序的执行 语法: if(条件表达式){ 执行语句; }
执行过程: 如果条件表达式符合,就执行语句内容,
如果条件不符合,就不执行
public class T {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();//用户输入一个整数
if (a<=50|a>=0){
//判断输入的数是否在区间[0,50]内,如果结果为true,则执行输出字符串"CSDN"
System.out.println("CSDN");
}
}
}
if-else:使用方法和if语句类似,但是多出了一个当条件不成立时执行另一个执行语句的功能
public class T {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();//用户输入一个整数
if (a<=50|a>=0){//判断输入的数是否在区间[0,50]内,如果结果为true,则执行输出字符串"CSDN"
System.out.println("CSDN");
}else {
//当条件不成立时,则执行输出字符串"csdn"
System.out.println("csdn");
}
}
}
switch语句:
switch语句相对于上面两种语句更加完善,可以实现条件为某一个确定值时执行的功能
public class T {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();//用户输入一个整数
switch (a){
case 1://当值为1时,输出"中午吃面条"
System.out.println("中午吃面条");
break;
case 2://当值为2时,输出"中午吃饭"
System.out.println("中午吃饭");
break;
case 3://当值为3时,输出"中午吃汉堡"
System.out.println("中午吃汉堡");
break;
default://如果以上都不满足,则输出"还不饿,喝点水吧"
System.out.println("还不饿,喝点水吧");
break;
}
}
}
要注意的是,代码break;是用来截断代码块继续执行的,如果没有,会出现case穿透现象.即代码 块会一直运行各个执行语句,直到代码块结束停止;
在某些情况下,我们可以合理的利用case穿透来简化我们的代码.