JavaSE基础:java中的数据类型

标题java中的数据类型

感谢尚硅谷免费的视频
在这里插入图片描述

分类

基本数据类型
	整型:byte、short、int、long
	浮点型:float、double
	字符型:char
	布尔型:boolean



引用数据类型
	使用class定义:比如String
	使用interface定义:比如List
	数组类型

整型

补充:计算机只识别二进制,也就是需要将整型数值转换成二进制进行存储

010101010
bit 位
byte 字节

1字节=8bit	
1111 1111	
0000 0000~1111 1111	
0000 0000 0000 0000~ 1111 1111 1111 1111
0000 0000 0000 0000 0000 0000 0000 0000~1111 1111 1111 1111 1111 1111 1111 1111

一、分类

		意义			所占空间			表示的数的范围
byte	字节整型		1个字节			-128~127	(-2^7-2^7-1)

short	短整型		2个字节			-2^15~2^15-1

int		整型			4个字节			-2^31~2^31-1


long    长整型		8个字节			-2^63~2^63-1

浮点型

一、分类

			意义				所占空间
float		单精度浮点型		4个字节
double		双精度浮点型		8个字节

二、特点:

1、编译器默认的浮点型为double,可以标记为d或D
2、float类型的常量值可以标记为f或F

字符型

补充:

为了将字符存储到计算机中,引入一个字符编码集,将字符先通过字符编码集解析成对应的二进制,然后进行存储

常见的字符编码:

ASCII码:只能包含128个字符
unicode码:可以包含世界上所有的字符,但固定长度的编码表,所以有点浪费空间
utf-8:可以包含世界上所有的字符,可变长度的编码表
		一个字母占1个字节
		一个汉字占3个字节

一、分类

		意义		所占空间	使用的字符编码
char	字符型		2个字节		unicode

二、特点

1、底层存储是以二进制形式(整数形式)
2、char类型的常量值可以是:
字符
整型
十六进制的码值

布尔型

			意义		所占空间		表示的值
boolean		布尔		1个字节			true或false

特点:

一般用于表示比较关系的结果,使用在后面讲的if条件或循环条件中!

总结:
上述的八种基本类型的具体使用完全一样!

一、理解

变量是内存中的一块数据存储空间的表示

二、变量的三要素

数据类型
变量名
变量值

三、变量的使用步骤 ★

1、声明
数据类型 变量名;
2、赋值
变量名 = 值;
3、使用
System.out.println(变量名);

注意:
①前两步可以合二为一:
数据类型 变量名 = 值;
②同一个类型的多个变量定义还可以写成如下形式
数据类型 变量名,变量名,变量名;

示例:
	int a;
	int b;
	int c;
等价于:
	int a,b,c;

四、变量的使用特点

1、变量遵循内存的特点:容易丢失
2、变量必须先声明,赋值,最后再使用
3、在同一个作用范围内,变量不可以重名
4、变量的值可以更改

五、变量的三要素解析一:变量值

String的常量值,必须用双引号
int的常量值,不用任何引号
double的常量值,不用任何引号
char的常量值,必须用单引号

六、变量的三要素解析二:变量名

标识符:java中凡是可以自己起名的地方,都可以称为标识符,包含类或方法或变量等

标识符的命名规则:
只能包含数字、字母、下划线和$符号,不能以数字开头,不能是关键字或保留字!

示例:

a$b 、_c、A2、c_x、2w、w234、public×、int×、void×

标识符的命名规范:

最好见名知义
类名遵循Pascal命名法:MyArrayListDemo、Test1
变量名遵循驼峰命名法:myJavaScore1

数据类型分类:

基本数据类型(原始数据类型)
	byte
	short
	int
	long
	float
	double
	char
	boolean
引用数据类型(复杂数据类型)
	使用class关键字定义的类,比如String
	使用interface关键字定义的接口,比如List
	数组

一、整型

			所占空间		表示的数的范围
byte		1个字节		-128~127
short		2个字节		-2^15~2^15-1
int			4个字节		-2^31~2^31-1
long		8个字节		-2^63~2^63-1

特点:

1、编译器默认的整型为 int
2、byte和short 进行运算时,当做int类型处理
3、使用步骤完全一样

二、浮点型

		所占空间
float	4个字节
double	8个字节

特点:

1、编译器默认的浮点型为 double
2、float类型的常量值需要标记f或F,double类型的常量值可以标记为d或D(不标记也没关系)
3、一个浮点数实际存储也是二进制,将一个浮点数拆分成 :符号位+指数位(阶码)+尾数位
4、可以选择BigDecimal 表示精度要求更高的数

三、字符型

		所占空间		使用字符集
char	2个字节		unicode

特点:

1、char类型的实际存储也是二进制形式
2、char类型的表示形式
char c='a';
char c=100;
char c = '\u0003';
char c = '\\';
int i=100;
char c = i;//错误

四、布尔型

			所占空间		表示的值
boolean		1个字节		true|false

特点:

1、布尔型一般用作if或循环条件中
2、关系表达式或逻辑表达式的结构就是布尔型

五、类型转换:
1.基本类型之间的转换

	自动类型转换:从小变大
	强制类型转换:从大变小

特点:

1、表达式有自动提升原则,结果类型取决于操作数最大的类型
10*1.5+'a'
2、强转符号只针对最近的表达式有效

2、String和基本类型之间的转换
①基本类型——>String
String s = 基本类型的变量或常量值+“”;

②String———>基本类型
XX x = XX.parseXX(字符串);

示例:

int i = Integer.parseInt(string);
double d = Double.parseDouble(string);
char c = string.charAt(0);

运算符

一、算术运算符

1.+ - * / %
2.++  --

特点:

① / :左右两边都是整型,结果取整
② % :a%b = a-(int)a/b*b
③++或--

情况一:可以作为独立的语句使用
示例:

i++;等价于 ++i;等价于 i=i+1;

情况二:作为表达式使用
示例:

1.int j=i++;
  int j=++i;

2.System.out.println(i++);
System.out.println(++i);

3.if(i++>7){}
while(++i<9){}

注意:

++i  :先自增,后赋值
i++  :先赋值,后自增

二、关系运算符

> >= < <= != ==

三、逻辑运算符

		语法				特点
&&		条件1&&条件2			两个条件都成立,结果为true。如果条件1为false,条件2则不会判断,效率高
||		条件1||条件2			只要有一个条件成立,结果为true。如果条件1为true,条件2则不会判断,效率高
!		!条件				如果条件成立,结果为false。
&		条件1&条件2			两个条件都成立,结果为true。不管条件1是否为false,条件2都要判断,效率低
|		条件1|条件2			只要有一个条件成立,结果为true。不管条件1是否为false,条件2都要判断,效率低

四、赋值运算符

1.=
2.+= -= *= /= %=

特点:

1、运算顺序从右往左
2、左边要求必须是变量,右边要求是常量或表达式或变量
3、复合赋值运算符相对来说效率较高,并且里面自动进行了类型转换

int a =10;
a+=3.5;//不报错
等价于a=a+(int)3.5;

五、三元运算符

条件?表达式1 :表达式2

特点:

如果条件成立,结果为表达式1,如果不成立,结果为表达式2

进制转换

一、进制

常见的进制:
二进制:0-1,以0b或0B开头
八进制:0-7,以0开头
十进制:0-9
十六进制:0-9 A-F,以0X或0x开头

进制的转换:

其他进制——>十进制:

示例:100010011  
规律:从最低位开始,将每个位上的数提取出来乘以2|8|16的幂次方,(幂值从0开始),最后累加

十进制———>其他进制:

示例:198
规律:不断除以2|8|16,直到商为0为止,每次的余数倒过来即为其他进制

其它进制——>二进制:

示例:0x3C
规律:将每一位上的数提取出来,拆分成3位或4位的二进制数,最后拼接在一起

二进制——>其他进制:

示例:0b111001001011——>07113
规律:从最低位开始,每三位或每四位转换成一个十进制数,如果不够,则前面用0补齐。最后拼接在一起

二、位运算符

特点:都是以二进制的补码形式进行运算的 ,符号位参与运算!
原码:将十进制数转换成二进制,最高位为符号位。1代表负数,0代表正数
反码:
	正数的反码=原码
	负数的反码=最高位不变,其他位取反
补码:
	正数的补码=原码
	负数的补码=反码+1


>>  右移:右移动指定位数,空缺位补最高位上的数
<< 左移 :向左移动指定位数,空缺位补0
>>> 无符号右移:向右移动指定位数,空缺位补0
& 与   :两个都为1,结果为1,否则为0
| 或    :有一个为1,结果为1,否则为0
^ 异或   :相等为0,不等为1
~ 取反  :都取反

【面试题】2如何最快的变成8?

答:2<<2

键盘输入语句(Scanner)

一、导包

位置:class的上面
import java.util.*;

二、创建对象

位置:一般main里面的第一句话
Scanner input  = new Scanner(System.in);

三、调用方法

位置:要放在创建对象的下面

String name = input.next();
int age = input.nextInt();
double score = input.nextDouble();
boolean flag = input.nextBoolean();
char gender = input.next().charAt(0);

测试结果

		System.out.print("请输入一个整数:");
        Scanner s = new Scanner(System.in);
        int i = s.nextInt();
        System.out.println("键盘输入的整数位为:"+i);

从键盘输入今天日期
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值