Java学习的第六天(JavaSE基础02_变量&数据类型转换)

  • 1.注释
单行注释://
多行注释:/* */
文档注释:/** */通过cmd输入javadoc Demo.java生成很多的html文档,打开index.html查看帮助文档
注意:如果直接对class Demo去使用javadoc Demo.java会出现找不到可以文档化的公共或受保护的类
必须声明public (例如 public class Demo{主函数})才能生成帮助文档

1.错误示例如下所示


2.正确示例如下所示


image.png

  • 2.关键字:都是小写的,例如public class int abstract…
  • 3.常量:不可随意改变的数据,程序在运行过程中其值不可随意的更改
1.字符串常量:1.必须使用双引号引起来;2.字符串是由0个到多个字符组成;3.空字符串" " 
2.整数常量:可以直接输出 System.out.println(10);
3.小数常量:同样可以直接输出 System.out.println(1.2);
4.字符常量:1.字符必须由' '引起来;2.里面<只能>有一个数字或一个字母
5.布尔常量:只能取两个值true/flase
6.空常量null:不能直接输出
注意:除空常量之外,其它常量均可以使用输出语句输出
  • 4.进制
1.二进制:只能是0/1,每一个二进制数就是一个bit,也就是一位
2.十进制:0123456789
3.八进制:01234567   每3个(二极管/位)为一组进行数据的存储
4.十六进制:0123456789ABCDEF   每4个(二极管/位)为一组进行数据的存储
进制转换:二进制101转十进制:1*2^0+0*2^1+1*2^2=5(十进制)
1B(字节)=8bit
1KB=1024B=2^10B
1MB=1024KB
1GB=1024MB
1TB=1024GB
注意1:真正存储数据,一个二极管(一位)是不可能真的代表一个数据,最少需要8个二极管,因为1字节=1个byte=8个位=8个bit=8个二进制数,所以计算机最小的存储单元是字节(byte),而计算机最小的信息单元是位(bit)。

######注意2:

打印2进制数必须以0b开头为标志  0b0(二进制)--->0(十进制)
打印8进制数必须以0开头为标志   012(八进制)--->10(十进制)
打印16进制数必须以0x开头为标志 0x10(十六进制)--->21(十进制)
  • 5.变量:在程序运行过程中,其值可以发生改变的值,它的本质是在内存中开辟了一小块空间用于临时存储数据用的
如何声明一个变量
1.数据类型  变量名; int a;
2.赋值; a=10;
两者合二为一进行变量声明:int a=10;
  • 6.Java中的数据类型的分类
1.基本数据类型
  四类八种:
  1.整数类型:byte(1个字节) short(2个字节) int(4个字节) long(8个字节)
  2.小数类型:float(4个字节) double(8个字节)
  3.字符类型:char(2个字节) 汉字占二个字节,标点符号占一个字节,可以定义char a='嗨';来使用
  4.布尔类型:boolean(1个字节)
2.引用数据类型(面向对象):String 类 对象 枚举
  • 7.byte的取值范围
11111111--->第一个1/0代表这个二进制数是正数还是负数;也就是后七位有效
1+2+4+8+16+32+64=127
取值范围(01111111---11111111)由于这是为负数时涉及反码和补码的运算所以这里不作解释,有兴趣的小伙伴们可以自己去百度查找相关内容
取值范围(-128---127)

实例:如果byte a=128; System.out.println(a);会出错,因为128已经超出了byte的取值范围,而自动
转换成了int类型,而int类型又赋值给byte类型的数据,会有精度的损失,所以会报错!!
  • 8.使用变量时会出现的一些问题和解决方法
1.同一个程序中变量名不能重名,值可以覆盖
int a=10;
System.out.println(a); /程序正确,输出10
int a=20
System.out.println(a); /程序错误,弹出已在main方法中定义了a

int a=10
a=20; 
System.out.println(a);/程序正确,a的值可以覆盖

2.复制(涉及到不同的变量)
int a=10;
int c=a;
System.out.println(a);/程序正确,a的值不变
System.out.println(c);/程序正确,将a的值复制给c  c的值为10

3.变量名不能以数字开头
int 1b=20;
System.out.println(1b);/程序错误

4.变量名可以是汉字,但是不推荐使用
int 哈哈=2
System.out.println(哈哈);/程序正确

5.当char转换成int类型时,输出的一串数字
char a='嗨';
int b=a;
System.out.println(b);/程序正确,但是会输出15694(一串数字)

6.String类型的数据转换成int类型的数据会报错
String a="嗨";
int b=a;
System.out.println(b);/程序错误

7.=左边只能写变量名,不能写表达式
int a=10;
int b=20;
int a+b=c;
System.out.println(c);/程序报错
  • 9.数据类型的转换(自动转换和强制转换)
自动转换:小的数据可以直接赋值给大的数据
1.自动转换的正确实例,小的数据会自动转换成大的数据
byte a=1;
int b=a;
System.out.println(b);/程序正确,会自动转换

2.因为a+2默认是int类型,而大的数据不能直接赋值给小的数据
byte a=1;
byte b=a+2;
System.out.println(b);/程序错误,

3.因为小数默认是double类型,占8个字节,而float占4个字节,而大的数据不能直接赋值给小的数据
float a=1.2;
System.out.println(a); /程序错误

4.小数据可以直接转换成大的数据---自动转换
long e=100;
System.out.println(e); /程序正确

强制类型的转换
5./正确实例
byte a=1;
byte b=(byte)(a+2);
System.out.println(b); /程序正确

6.错误实例
byte a=1;
byte b=(byte)a+2;
System.out.println(b); /程序错误,a会被强制转换成byte+int类型的2

7.大的转小的数据类型
long c=100L;
int d=(int)c;
System.out.println(b); /程序正确

8.变量必须先赋值(初始化)之后才能使用
  变量名是没有初始化值的
int a;
System.out.println(a); /程序错误,未初始化变量名
  • 10.如果按照大->小的数据类型,不进行强制转换是会报错的,但是这里是正确的!!
float虽然只有四个字节,但是它的排列规则和整数不一样,实际float的四个字节的长度比long的八个字节的长度还要长

long a=200L;
float b=a;
System.out.println(b); /程序正确
  • 11.为什么char可以自动转换成int,不是char占2个字节,而int占四个字节吗??而且会输出一串数字,并不是我们定义的字符变量??
这里涉及一个ASCII码表,每一个字符都可以在ASCII码表中找到一个对应的位置,而表现出来的形式就是int类型
char a='0'  /0字符对应的ASCII码值为48
char b='a'  /a字符对应的ASCII码值为97
char c='A'  /A字符对应的ASCII码值为65
  • 12.整数默认是int,小数默认的是double类型,long a=10L(long建议加L ),float a=1.2f(float必须加F/f )
  • 13.如何将两个int类型的数据的值相互交换
需求:把a和b的值交换
思想:要有一个第三方变量
int a=10;
int b=20;
System.out.println("交换前a="+a+"\tb="+b); 
int c;
c=a;
a=b;
b=c;
System.out.println("交换前a="+a+"\tb="+b); /程序正确
  • 14.标识符:用户编程使用的名字,给类,方法,变量,常量等命名
命名规则
  1.第一个字符不是数字,由字母,数字,下划线和美元符$组成
  2.不能是java关键字
  3.对大小写敏感
约定(规范):是一些良好的建议,最好是遵循
  1.小驼峰命名法:变量和方法
      首字母小写,其它单词首字母大写   用户名:userName  getMaxAndMin
  2.大驼峰命名法:类
      每一个单词的首字母都要大写   例如class  Demo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值