您的位置:首页 > 编程语言 > Java开发

小白Java笔记——直接量和运算符(一)

2017-12-14 17:10 239 查看
一、直接量

直接量指在程序中通过源代码直接给出的值。

(一)直接量的类型

只有三种类型可以指定直接量:基本类型、字符串类型和null类型



(二)直接量的赋值

允许把一个数值的直接量直接赋给另一个类型的变量。

String类型的直接量不能赋给其他变量,除非通过包装类强制转;

null类型直接量可以赋给任何引用类型的变量;

boolean类型的直接量只能赋给boolean变量。

特别的,注意String字符串类型,程序第一次使用某个字符串直接量时,Java会用常量池(constant pool)来缓存该字符串的直接量。

常量池指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。包括类、方法、接口中的常量,也包括字符串直接量。

String类是一个典型的不可变类,因此不用担心共享String会导致混乱。

二、运算符

运算符是一种特殊的符号,用于表示数据的运算、赋值和比较等等。



(一)算术运算符

七个基本算术运算符:+、-、*、/、%、++

+可以当数学的加法运算符,也可以当字符串的连接运算符;-可以做减法的运算符,也可以做求负运算,即负负得正类似的。

++:自加,放在操作数的右边时,就先执行右边的运算,左后再执行自加;同样放在左边也同理

–:自减,同自加。注意5++、6–属于错误代码。

/*
*除法运算符
*/
double a = 5.2,b = 3.1;
double div = a/b;
System.out.println(div);
System.out.println(5/0.0);//0.0是浮点数,所以结果也是浮点数;结果是正无穷大
System.out.println(-5/0.0);//结果是负无穷大
System.out.println(5/0);//这时就会出错
/*
*求余运算符:0或者0.0对零之外的的任何数求余都将得到0或者0.0
*/
System.out.println(-5%0.0);//结果是非数NaN
System.out.println(0%3);//结果是0
/*
*自加++,1.自加是单目运算符,只能操作一个操作数;2.只能操作单个数值型(整型、浮点型)的变量,不能操作常量或表达式
*/
int a = 5;
int b = a++ + 6;//自加放在右边,a++就先执行右边的+6即a+6=11以后,再执行a加一自加
System.out.println(a+"\n"+b);//结果a=6,b=11


如果需要开方、乘方等,可以借助于java.lang.Math类的工具完成复杂的运算。

public class MathTest{
public static void main(String[] args){
double a = 3.2;
//求a的五次方
double b = Math.pow(a,5);
System.out.println(b);
//求a的平方根
double c = Math.sqrt(a);
System.out.println(c);
//计算随机数,返回一个0-1的伪随机数。
/*
*伪随机数: 真正意义上的随机数在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。
*/
double d = Math.random();
System.out.println(d);
//求1.57的sin函数值:1.57被当成函数值
double e = Math.sin(1.57);
System.out.println(e);

}
}


结果:

335.5443200000001
1.7888543819998317
0.6327112069817589
0.9999996829318346


(二)赋值运算符

前面提到过“变量”的理解,变量相当于装数据的容器,而赋值运算符就是将数据装入变量的过程

赋值运算符是从右往左执行计算的,程序先计算 = 右边的值,再将该值装入 = 左边的变量。所以左边必须也只能是变量;

赋值运算符是有值的,也就是等于右边被赋的值

(三)位运算符



一般的,位运算符只能操作整数类型的变量或者值

进行移位运算时遵循规则:

1.对于低于int类型(byte、short、char)的操作数总是先自动类型转换为int类型再移位;

2.int类型的整数移位a>>b,当b>32时,系统先用b对32求余(int只有32位),得到结果才是真正要移位的位数。如a>>33 和a>>1结果一样;

3.对于long类型的整数移位a>>b,当b>64时,执行原理同上

(三)扩展后的运算符

(四)比较运算符

突然断电,写的笔记都没了,时间原因就不再补了,以后用到再补充吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string