ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

今日学习

2021-01-05 19:58:03  阅读:181  来源: 互联网

标签:运算符 int System 学习 ++ println 今日 out


JAVA基础

常量

常量就是指在程序执行期间其值不能发生变化的数据,常量是固定的。如整型常量123,实型常量1.23,字符常量’A’,布尔常量true等
Java中的常量用final来实现,例如final double PI=3.14;注意声明常量的时候可以不赋值,而在构造器结构中赋初值,但是若在声明时同时进行了赋值,则不可以在初始化结构中赋值了。

final boolean out=true;
 //
 if(out)

out=false;语法报错的原因是out是常量,一旦赋值则不允许在运行期间进行修改
System.out.println("我的第一次输出");
 System.out.println("其它的输出");
 if(out)

System.out.println("我的第二次输出");

表达式
表达式就是运算符、操作数以及方法调用的序列,用来说明某个计算过程并返回计算结果
按照运算符功能来分,基本的运算符分包括算术运算符、关系运算符、位运算符、条件运算符等
算术运算符 +、-、、/、%、++、–
关系运算符 >、<、>=、<=、==、!=
逻辑运算符 &&、 ||、 !。注意:逻辑计算支持短路操作
位运算符 &、|、^、~、<< 、 >>、>>>。注意:为运算符不支持短路操作
赋值运算符 =,+=,-=,
=,/=
三目条件运算符(?:)规则是完全一致的,使用的形式是: x ? y:z;
算术运算符
+、-、*、/、%、++、–
整除:参与运算的双方都是整数 10/3=3而不是3.33333
10./3=3.333…这里由于10.是浮点数,则3会自动转换为大类型并参与计算,所以最终是 10.0/3.0的计算结果

1 int kk=3;
2 int res=(kk/2); //没有语法错误,因为除数和被除数都是整数,所以计算结果为整数
3 System.out.println(res);
4 //如果需要计算小数部分,则除数或者被除数之一必须为非整数
5 3./2=1.5
6
7double res=(1.*kk/2);  //因为1.是double类型的浮点数,所以计算结果一定是浮点数

计算次序为先乘除后加减,如果优先级一致,则自动从左向右进行计算 10+2*5=20
%求余(取模) 10%3=1实际就是10除以3求余数

1 //假设总行数为10行,每页3行,如何计算需要多少页进行显示
2 int rowsNum = 12;// 总行数
3 int rowsPerPage = 3;// 每页行数
4 int pageNum = rowsNum / rowsPerPage;// 总页码数
5 System.out.println(pageNum);// 由于整除的问题,所以计算结果为3,这样就会有数据丢失
6 if(rowsNum%rowsPerPage!=0)
7 pageNum=pageNum+1;
8System.out.println("最终结果为:"+pageNum);

注意:求余计算可以用于浮点数。浮点数没有整除的概念,只能针对计算结果进行强制类型转换(窄化操作)

1 double dd=-12.3; //求余计算中符号不参与计算,所以计算结果为-2.4
2 System.out.println(dd%3.3); //执行结果为2.4000000000000012

++和–是单目运算符
i++等价于i=i+1
i–等价于i=i-1

1 double k = 100;
2 k--;// k=k-1;
3 System.out.println(k);

i++是先取值后计算,++i是先计算后取值

1
int k = 100;
2 System.out.println(k++);//100
3 System.out.println(k);//101
4 ------
5 int k = 100;
6 System.out.println(++k);//101
7 System.out.println(k);//101
1 int k = 100;
2 int i = 50;
3 int res = k+++i;  //实际是按照k++
4 System.out.println(res);  //150
5 System.out.println(k + "---" + i); //101 50
7int k = 100;
8 int i = 50;
9 int res = k+ ++i;//是按照k+(++i)进行计算
10 System.out.println(res);   //151
11 System.out.println(k + "---" + i); //100 51

一般会配合短路操作进行考核
比较运算符
1>、<、>=、<=、==、!= 用于判断两个数据之间的大小关系,计算结果为boolean,如果成立返回为true,否则为false

1boolean bb = 1 > 2;
2 System.out.println(bb);
3 System.out.println(1 <= 2);
4 //=是赋值计算
5 int kk;
6 System.out.println(kk=3);
7 System.out.println(kk==3);

==和=的区别
k=100;这是赋值运算符,意思是将=右边的计算结果储存在=左边的变量中
k== 100这是比较计算,意思是判断k是否值为100;如果是则返回true,否则false
!=意思是判断是否不等于,表示如果相等时返回false,否则返回true
由于浮点数无法精确存放,所以判断k==1.0这个写法是错误的
正确写法: a-b的绝对值小于1e-6
Java提供了一个工具类Math
Math中包含一些常见的数学计算的实现,例如三角函数、反三角函数等,
abs()的方法实现求绝对值
Math.abs(d1-1)<1e-6 判断浮点类型的变量d1的值是否为1

1 double d1 = 0.999999999;
2 double d2 = 1;
3
//一般不建议这种写法,因为浮点数无法精确存放
4 System.out.println(d1==d2);
5 double res=Math.abs(d2-d1); //Math数学库中提供的abs方法用于获取绝对值
6 System.out.println(res);
7 if(res<1e-6)
8System.out.println("d1和d2相等");
9else
10System.out.println("d1和d2不相等");

floor(double):double 从小到大逼近参数最大整数
ceil(double):double从大到小逼近参数最小整数
round(double):double 四舍五入,计算时和符号无关
pow(double a, double b):double 计算a的b次方
sqrt(double a):double 针对a进行开根号计算
逻辑运算符
&&与、 ||或、 !非
表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65

1 age>=18 && age<65


1 age>1 || age<10  //逻辑错误,因为任意值都满足条件
2
3age>1 && age<10 //正确

计算规则:
&& 同真则真,其余为假
|| 同假则假,其余为真
! 非真则假,非假则真
注意:逻辑计算支持短路操作

1int a = 2;
2 int b = 3;
3 boolean bb = a > 1 && b++ < 4;
4 System.out.println(bb);//true
5 System.out.println(a + ":" + b);   //2:4
1int a = -2;
2 int b = 3;
3 //因为++a>1值为false,所以b++<4并没有执行,这就是短路操作
4 boolean bb = ++a > 1 && b++ < 4;
5 System.out.println(bb);//false
6 System.out.println(a + ":" + b);//-1:3

&&:与运算,含义是两个条件必须同时成立,可以翻译为并且
年龄大于等于18并且年龄小于65: age>=18 && age<65
||:或运算,含义是两个条件中成立一个即可,可以翻译为或者
年龄小于18岁或者年龄不小于65 : age<18 || age>=65
算法规则:同假则假,否则为真
!:非运算,含义是不是,用于对某个条件进行否定
年龄不小于18
写法1:age >=18
写法2: !(age<18)
算法规则:非真则假,非假则真
短路运算
例如A && B:如果条件A为false,则不会执行B,因为根据运算规则结果一定是false,和B的值没有关系
A||B:如果条件A为true,则不会执行B,因为格局运算规则结果一定是true,和B的值没有关系
考核中主要配置++/–进行测试
位运算符
&按位与、|按位或、^按位异或、~按位取反、<<左移位 、 >>右移位,空位置补符号位上的值、>>>无
符号右移位,空位置补0
注意:为运算符不支持短路操作

1int a = -2;
2 int b = 3;
3 //因为++a>1值为false,所以b++<4并没有执行,这就是短路操作
4 boolean bb = ++a > 1 & b++ < 4;
5 System.out.println(bb);//false
6 System.out.println(a + ":" + b);//-1:4

7&3=3
7|3=7
7^3=4
~3=-4
赋值运算符
=,+=,-=,*=,/=
int k=100; 含义是将100赋值存储在k对应的存储单元中
k=k+3可以简写为k+=3
-= */ /=类似

考点

1 int a=1;
2 int b=2;
3 short c1=1+2;  //语法不报错,因为编译器可以判定结果不越界
4 short c2=(short)a+(short)b;  //计算结果为int,所以这样会报错
5 short c3=(short)(a+b);//语法正确
1 short k=3;
2 k=k+3;  //出现了一个语法错误,因为k+3这里的3系统识别为int类型,所以计算时所有数据自动转换为int类型,必然计算结果也是int类型,将int类型的数据赋值给short类型变量----错误
3 System.out.println(k);
1 short k=3;
2 k+=3;  //没有语法错误,因为+=这种符号中包含了自动类型转换

三目条件运算符
规则是完全一致的,使用的形式是: x ? y:z;
计算规则
x是一个条件表达式
如果x计算结果为true,则返回y表达式的结算结果
否则返回z表达式的计算结果

1 int k=-10;
2 int b=k>6?5:3;
3 System.out.println(b);

考试题:

1 int a=5;
2 int b=3;
3 int res=++a>b--?a+++3:b---4;  
4 System.out.println(res);//9
5 System.out.println(a+":"+b);//7:2

其他运算符
对象运算符instanceof用来判断一个对象是否是某一个类或者其子类的实例。如果对象是该类或者其子类的实例,返回ture;否则返回false

1 Object k1 = 123;
2 System.out.println(k1 instanceof Integer);  //true
3 System.out.println(k1 instanceof Double);   //false

点.运算符用于访问对象实例或者类的类成员函数

1 System.out.println(Integer.MAX_VALUE);
2 int k1=12,k2=23;
3 System.out.println(Integer.max(k1, k2));

new运算符 用于创建一个新的对象或者新的数组

1 Date now = new Date();
2 System.out.println(now);

运算符的优先级
运算符这里不用记忆,当不确定时,注意有个神器就是()小括号,可以使用它强制表达自己的编写意图

标签:运算符,int,System,学习,++,println,今日,out
来源: https://blog.csdn.net/w2903265477/article/details/112251233

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有