Java数据类型与运算符

Identifer(标识符)

1.什么是标识符?

需要自己起名字命名的,都是标识符。(如:包名、类名、接口名、方法名、变量名、常量名)

2.标识符的命名规范

a.必须以字母、_下划线、美元符$开头(不能以数字开头);

b.其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合;

c.大小写敏感,长度无限制;

d.不可以是Java的关键字;

e.可以使用汉字做标识符但是不推荐这样写;

f.给标识符起名字的时候最好做到见名知意。

3.Java的编程规范

a.类名和接口名首字母一定要大写,采用驼峰式的命名规范(如:Student、Teacher、JavaTeacher),即多个单词构成一个类名,每个单词的首字母都大写;

b.包名全小写,公司域名倒着来写(如:com.tencent.timi);

c.方法名和变量名首字母小写,驼峰式(如:studentName、maxScore);

d.常量名,一般要大写(doublePI),其实还是变量,只不过这种变量比较特殊,存的是不变的值这种变量,称为常量。

KeyWords(关键字)

1.什么是关键字?

a.被Java赋予特殊含义的单词,关键字的特征都是小写的;

b.在使用开发工具的时候,关键字的颜色都比较特殊(当前的eclipse的关键字的颜色是紫色的,如:public、class);

c.main不是关键字,而是一个方法名(main方法比较特殊,是程序的入口、是程序开始执行的地方)。

2.每个类都需要main方法吗?

a.不是每个类都要写main方法,但程序开始执行,肯定是从main方法进来的,当你需要main方法就定义它,不需要就不用定义;

b.有main方法的类,点右键才会出现RunasJavaApplication。

DataType(数据类型)

1.基本数据类型

a.整型数据
byte字节类型1个字节-27–27-1

short短整型2字节-215–215-1

int整形4字节-231–231-1

long长整型8字节-263–263-1

b.浮点型数据
float,4字节,单精度浮点型,可以精确到7位有效数字(大部分情况float的精度很难满足需求,所以一般使用double);

double,8字节,双精浮点型,精确度是float的两倍(对于小数默认是double类型)。

备注:浮点型数据计算的时候存在误差,所以在某些不能有误差的场景(如:银行的利息计算),就不能使用浮点型直接计算,应该使用特殊的方式来处理(如:使用BigDecimal类)。

c.字符类型
char,2字节,表示unicode编码表中的字符,可以表示65536个字符(ascll码表),ascll码表包含了128个字符,也就是unicode码表的前128个字符(char类型数据,在内存中存储的是这个字符的unicode编码值,所以char类型可以当成整形数值来处理)。

转义字符(字符类型中一种比较特殊的字符),通过转义字符’‘来将其后的字符转为其他的含义(如:charc=’\n’换行,’\t’缩进)。

d.布尔类型
boolean,1位(不是1个字节),boolean有两个值true或者false,boolean类型常用来做判断逻辑条件,一般用于程序流程控制。

2.引用数据类型

a.类类型

b.接口类型

c.数组类型

数据类型转换

在赋值运算或者算数运算时,会有数据类型转换的问题,要求数据类型一致否则要进行数据类型转换

类型转换的方向
byte–short,char—int—long—float—double

赋值运算时的数据类型转换
当左数据类型>右边数据类型 自动类型转换
左数据类型=右边数据类型 类型一致就不转换了
左数据类型<右数据类型 强制类型转换

算术运算时的数据类型转换
3+‘a’ +100 + 3.2F + 2.0 会先统一表达式的数据类型,按照最大的类型统一再赋值,按照赋值运算 ,看是否需要类型转换

Java变量

  1. Java是一种强类型语言,每个变量都必须声明其类型。
  2. Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
  3. 变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:
 type  varName  [=value] [{,varName[=value]}] ;
注意事项:
	每个变量都有类型,类型可以是基本类型,也可以是引用类型。
	变量名必须是合法的标识符
  1. 声明在方法内部的变量是:局部变量
  2. 声明在类内部、方法外部的变量是:成员变量

Java 中的运算符

  1. 算术运算符
+ -  / %   ++   --

n++, ++n 如果作为一条单独的语句,计算结果都是 n=n+1 ,即 n 自增1;
n-- , --n 如果作为一条单独的语句,计算结果都是 n =n-1, 即 n 自减1;
但是如果自增、自减,不是一条单独的语句,比如有赋值或者运算的操作, 这时就需要注意赋值和运算的顺序

 int num = n++;  
  先把n的值放入操作数栈,然后自身++,然后把操作数栈的值赋给num
 int num = ++n;
 先自身++ , 再把这个值放入操作数栈,再把操作数栈的值赋给num

面试题:

		int i =1;
		i = i++;    // 1 
		int j = i++;  //  j =1    i =2 
		int k = i+ ++i * i++;  //  2 + 3 * 3       i = 4
		
		System.out.println(i);   //   4
		System.out.println(j);   //   1 
		System.out.println(k);   //   11
  1. 赋值运算符
 =   +=  -=  =   /=   %=
  1. 关系运算符(比较运算符)
	 >  <   >=  <=   ==  !=   

使用关系运算符运算,返回的结果都是 boolean 类型(true or false)

  1. 逻辑运算符
! 非  	 ||   短路或    && 短路与    |  逻辑或    &  逻辑与

逻辑运算符 逻辑运算符与 [布尔操作数] 一起使用,组成逻辑表达式 逻辑表达式的结果是布尔值
! 非 取反 非真为假,非假为真
&& 和 & 两个操作数都为真,才为真
|| 和 | 只要有一个为真,就为真
短路与 和 逻辑与 ,短路或和逻辑或的执行结果是一样的 ,但是执行过程不一样
短路与和短路或,会先判断第一个表达式(操作数的值), 如果能够直接得出结果,则直接返回结果,不会再执行第二个表达式,逻辑与和逻辑或 会执行两个表达式(操作数)

  1. 条件运算符 (三目运算符)
exp1?result1:result2;
(exp1 为真吗?如果为真,则返回 result1 如果为假,则返回 result2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值