关于JAVA中变量的创建规则与运算符易错点说明

那些年变量给你挖的坑

数据类型

区分基本类型与引用类型

数据类型分为基本数据类型和引用数据类型。

String类型属于引用类型

命名规则

1.Java使用字母数字下划线组合的形式命名变量,但是不可以数字开头,也不可以用关键字命名。

同时,虽然理论可行,也最好不要用 $ 这种符号命名。

2.Java中对变量的命名推荐小驼峰形式,也就是从第二个单词开始每个单词首字母大写,

例如:firstNum

别用拼音当字母用,显得自己很low。

3.Java的“ . ”是不可以用来命名的,因为是引用操作符

包装类型

也就是将基本类型转换为引用类型

简单来说,是把基本类型的首字母大写

int 和 char 有所不同,他们的包装类是:

IntegerCharacter

修饰常量

final修饰的量是常量,无法二次修改

final int a = 10;
a = 20 ; //error

数据类型转换

转换规则

boolean特殊,剩下七个基本类型没法与他互相转换。

小转大,都是自动转换。

大转小,需要强转,并且有可能发生数据丢失,不够精确。

运算也可能导致类型转换。

long与int

  此代码进行运算时,虽然使用long类型保存运算的值,但是在运算时,并没有发生类型提升,所以经过运算,int类型溢出,保存的依旧是int的最小值。

int a  = Integer.Max_Value;
long b = a+1;// int类型最小值

可以这样调整

int a  = Integer.Max_Value;
long b = a+1L;// int类型最大值 + 1

  因为L会将 1 转换为 long类型 ,这样在运算的时候相当于会将运算的双方转换成long类型进行运算,这样保存的值是不会发生上面的情况的。

double与int

        int num1 = 5;
        double num2 = 15;
        System.out.println(num2/num1);

  三行代码发生两次类型转换,第一次发生在double类型定义时,将15这个整型转换为15.0这个double类型,另外一次转换发生在运算时。

byte与int(难点)

  byte为两个字节,所以将int赋值给byte需要强转。

        int num1 = 5;
        byte num2 = (byte)num1;

而对于数值型和字符型来说,小于四个字节的数据类型在存储时会转为4字节,也就是说,byte在保存时会转为int类型,当把byte类型保存区间之内的整数赋值给byte时,可以直接赋值,超出范围的话就需要强转。

例子:

byte a = 120;//可以运行
byte b = 130;//报错

byte类型会在机器中被提升为int类型

这个时候要是拿a与b相加,则相当于是两个整形相加,依旧需要强转,否则报错,例如:

byte a = 20;
byte b = 30;
byte c = a + b; //报错

当byte类型被final修饰时,则会保存为byte类型。

final byte a = 20;
final byte b = 30;
byte c = a + b; //可运行

short类型也和byte一个意思。

char与int

char类型本质上采用Unicode编码,相当于c语言中的ASII码值

char字符会按照不同的编码规则转换为int储存

char a ='a'; 
int b = a;// 按Unicode编码将a转换为int

反之需要强转

int a = 97; 
char b = (char)a;// 'a'

String与int

将int转为String有两种方法

1.任意String类型加上int

int a = 10
String str = ""+a;

2.使用valueOf方法

int a = 10;
String str = String.valueOf(a);

将String转为int(只能用于数字)

使用int的包装类Integer.parseInt()方法

String str = "123";
int a = Integer.parseInt(str);

Java中的变量未初始化是存在默认值的

只存在于类变量,方法的局部变量没有

运算符的小陷阱

短路操作符

&&   ||  

这两位是短路操作符,前者前面为假后面的都不管,后者前面为真后面的都不管

异或应用

可以在交换两个值的使用(不推荐)

一个数组中其他数都出现两次,而这个数字只出现一次,可以用全部异或快速找出这个数

位运算小技巧

>>右移一位 原数字  /2

<<左移一位 原数字 *2

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值