Java数据类型和运算符
Posted showMeTheCodes
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java数据类型和运算符相关的知识,希望对你有一定的参考价值。
一.标识符
作用:常量、变量、方法、类和包等的名称
命名规范:
1.必须以数字、字母、下划线或$符号开头
2.其他部分必须是数字、字母、下划线或$,不能出现特殊符号
3.标识符大小写敏感
4.不可以是Java的关键字
常规建议
1.驼峰标识:
类名、接口名称在命名时要首字母大写
方法、变量命名的时候首字母要小写
多个单词拼接标识一个标识符的时候,每个单词的首字符都要大写
2.见名知意:通过标识符的名称能知道代表的含义,不要写拼音
二.关键字/保留字
Java关键字是Java语言保留供内部使用的(不要刻意去背)
三.Java基本数据类型
Java是一种强类型语言:变量都必须声明其数据类型
弱类型语言:js、php等不需要声明基本类型,可以用var定义
整数类型:
byte:使用一个字节存储,范围是-128-127
short:使用两个字节存储,范围是-32768-32767
int:使用四个字节存储,范围是正负21亿
long:使用八个字节存储,范围很大
注意:整数类型默认int类型,在声明long型常量时可以加‘l’或‘L’
浮点类型:
float:单精度
double:双精度
注意:浮点类型默认double类型,在声明float型常量时可以加‘f’或‘F’
浮点类型并不能表示一个精确的值,会损失一定的精度
字符型:
char:占用两个字节,使用的时候使用‘’单引号使用
常用转义符:\\n(换行)、\\t(相当于tab键)
布尔型:
boolean:只有true和false两值,在存储的时候占一位,不是一个字节
四.常量和变量
常量:在程序运行过程中,值不会发生改变的量
赋给变量的值称为常量
注意:使用final关键字修饰的变量称之为常量或者叫做最终常量,表示不可修改
变量:在程序运行过程中,值会发生改变的量
变量可以先声明后赋值(int a; a = 10;),也可以边声明边赋值(int a = 10;)
五.运算符
算数运算符:+、-、*、/、%(取余数)、++(自增加1)、--(自增减1)
例题:int a = 2; System.out.println(++a+a++); 答案:6
解答:++的优先级高于+,先计算++a,a的值为3,后计算a++,此时a在++前,先与之前的a相加后再自身加1
赋值运算符:=
扩展赋值运算符:+=、-=、*=、/=
注意:byte a = 1; 计算 a = a+1;涉及到类型转换,会报错
a += 1;使用扩展赋值运算符不会报错
关系运算符:>、<、>=、<=、==、!= (该类型只会返回boolean类型的值)
逻辑运算符:&&、||、!
&&:短路与,表达式从左向右开始对比,若左边的表达式为false,右边不需要进行判断
||:短路或,表达式从左向右开始对比,若左边的表达式为true,右边不需要进行判断
位运算符:&、|、^、~、>>、<<、>>>(了解)
若两个数字进行位运算符,操作的时候会转换为二进制进行运算
&运算:有0为0 |运算:有1为1 ^运算:相异为1相同为0
~运算:进行取反 <<运算:数字变为二进制左移 >>运算:数字变为二进制右移
例题:System.out.println(~4) 答案:-5
解答:4的原码为:00000100、进行取反得到补码为:11111011、补码-1得到反码:11111010、取反得到原码:10000101=-5
条件运算符:? :(三目运算符,表达式为true返回?后的值,表达式为false返回:后的值)
例题:System.out.println(true?false:true?false:true); 答案:false
System.out.println(false?false:true?false:true); 答案:false
六.运算符的优先级
括号的优先级是最高的
++、--的优先级高于+、-
注意:这个顺序不需要记住,在现实生产环境中,如果我们没有记住顺序,只需要将需要优先计算的运算式加上括号即可
七.原码、补码、反码
原码:指将最高位作为符号位(0表示正、1表示负),其他数字位由二进制转换为十进制
例如:数字6在计算机中的原码为:00000110
数字-6在计算机中的原码为:10000110
以上是在8位计算机中的原码表示,如果在32位或16位计算机中,表示方法一样,只是前面补0即可
原码运算可能出现的问题:
反码:如果是正数,表示方法和原码一样,如果是负数,则保留符号位1,然后将这个数字的原码每位取反
例如:数字6在计算机中的反码和原码同为:00000110
数字-6在计算机中的反码为:11111001
反码运算可能出现的问题:
补码:如果是正数,表示方法和原码一样,如果是负数,补码就是对反码加一
八.类型转换
在赋值运算或算数运算时,要求数据类型相同,否则就要进行类型转换
类型由小到大提升顺序:byte,char,short<int<long<float<double
自动转换
在运算过程中,如果两个值的类型不一致,则会自动将小的类型转换为大的类型
例如:int a = 10; byte b = 5; int c = a + b;
强制转换
在运算过程中可以手动强制转换,将大的类型转换为小的类型,在强制转换中可能会发生精度损失,结果不准确
例如:int a = 10; byte b = 5; byte c = (byte) a + b;
以上是关于Java数据类型和运算符的主要内容,如果未能解决你的问题,请参考以下文章