数据类型
总的来说,java数据类型分为基本数据类型和引用数据类型
基本数据类型
基本数据类型大概可以分为四类八种:分别是整型/浮点型/字符型/布尔类型
整型
- byte 1字节(byte) = 8bit
- short 2字节
- int 4字节
- long 8字节
- byte的范围是-128~127
- int是所有整数的默认类型,任何算数运算都会以int类型进行计算
- 在赋值long时,如果超出int表示的范围则需在数值末尾+L
浮点型
- float 4字节
- double 8
- 由于double类型所占内存最大,所以double与任何类型做运算都会变成double类型
- 在赋值float时,需要在末尾+f/F来表示该数为单精度浮点类型,或者使用强制转换
- 浮点型的默认类型是double
- 不建议金融相关的项目用浮点类型,会产生误差
字符型
- char 2
char既可以表示英文字符/数字/特殊符号,也可以表示中文单字
字符类型主要用作于字符转码,很少单独使用,常见的ASCII码: a=96 A=65 0=48
char可以通过ASCII码代号与整形相互转换
例如:
char a = ‘a’ ; 可以直接赋值给int i = a;
布尔类型
- boolean 1bit
- 只占1位,值只能用 true/false表示,不能用1/0表示
引用数据类型
类引用(最常用的引用数据类型)
class 类名{}
接口引用
interface 接口名{}
数组引用
数据类型[] 数组名
运算符
算数运算符
- 双目运算: +,-,*,/,%
- 单目运算: ++,–
关系运算符
运算结果都是布尔值
-
大于/小于/等于
-
大于小于/小于等于
-
!=(<>)/==
==和!=可以用于引用类型的比较,用于比较的是地址,但这种情况下,两个引用类型地址相同:
String s1 = "hello"; String s2 = "hello"; //s1=s2
Ps: “”.equals(str)可以用于字符串内容的比较
布尔逻辑运算符
- &/&&
- |/||
- !
逻辑与短路的区别:
逻辑运算符下:若前一个表达式可以得出整个运算的结果,后一个表达式依旧会执行
短路运算符下:若前一个表达式已经得出整个运算的结果,后一个表达式则不会执行
位运算符
- & | ^
- 左移/右移/无符号右移
使用例子:将2变为8
System.out.println(2<<2)
三目运算符
使用例子:输出较大的数
int a = 10;
int b = 20;
System.out.println(a > b ? a : b)
其他
-
赋值运算 =
-
扩展赋值运算 += -= *= /=
自动进行强制类型转换
-
-
字符串拼接 +
-
造型运算 ()
-
调用运算 .
运算符优先级
单目 > 双目(乘除 > 加减) > 三目
总的来说,以可读性优先,直接用括号解决优先级
输入流Scanner的使用
-
导包 import java.util.Scanner;
-
创建Scanner对象,获取标准输入流(System.in)的文本扫描对象
Scanner sc = new Scanner(System.in);
-
创建相应类型的变量接收下一个读取到的值(一般以空格或回车结束标记)
- int i = sc.nextInt();//回车或空格结束标记
- String s = sc.next();//空格结束标记
- String s2 = sc.nextLine();//回车或空格结束标记
使用Math.Radom()产生伪随机数
-
Math.Radom()可以产生0~1的随机数(不包括1)
-
产生min~max的随机整数
(int)(Math.random()*(max-min+1)+min)