运算符
逻辑运算符:
- &&(与and):二者为真才是true
- ||(或or):两个变量有一个为真,则结果为true
- !(非:不是你就是我):如果是真,则变为假;如果是假则变为真
当两个整数相除时,得到的结果只保留整数部分,小数部分被丢弃
强转其中一个或乘以1.0即可解决
一个案例:要求用户输入正整数类型秒数,拆分后输出x小时x分x秒。如:输入7100,输出1小时59分59秒
这里有一个短路运算:
int c2 = 5;
boolean d = (c2<4)&&(c2++<4);
System.out.println(c2);
System.out.println(d);
的输出是5和false,即根本没有执行c2++操作,直接短路了。
自增、自减运算符
int a =3;
int b = a++;//a++ a=a+1
int c = ++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
最后输出的结果是a为5,b为3,c为5。这是因为a++执行完这一句后下一句才加一,所以执行完这行代码后,先给b赋值,再自增a = a+1;而++a是执行完这行代码前先自增再给c赋值。
幂运算
Math.pow(2,3);//计算2的三次方
很多运算可以使用工具类来操作如Math类
位运算符
/*
A = 0011 1100
B = 0000 1101
A&B= 0000 1100 两个都为1时才是1
A|B = 0011 1101 有一个1值就为1
A^B = 0011 0001 相同是0不相同是1
~B = 1111 0010 取反
*/
2乘以8怎样运算最快?
即2乘2乘2乘2.这时候要使用左移运算符<<和右移运算符>>。
首先用二进制表示0到16:
/*
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
输出结果就是16.左移就相当于乘以2,右移相当于除以2.
字符串连接符
若在加号两边出现了字符串类型,则这里的其他操作都会自动变成字符串进行连接。
int a = 10;
int b = 20;
System.out.println(""+a+b);
在控制台的输出是1020.直接把a和b连在一起了
问下列两个语句的输出有什么区别:
System.out.println(""+a+b);
System.out.println(a+b+"");//这里的输出是30,因为前面的会先相加再变为字符串类型
三元运算符
//三元运算符
//x ? y :z 表示如果x=true,则结果为y,否则为z
int score = 80;
String type = score <60 ?"不及格":"及格";
System.out.println(type);
输出为及格
byte+byte的结果会是int类型
包机制、JavaDoc
包package其实就是文件夹。
一般利用公司域名倒置作为包名。com.xxx.www
可用import语句导入包。
JavaDoc
javadoc命令是生成自己API文档
@author作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
package base;
/**
@author作者
@version 1.0
@since 1.8
*/
public class Doc {
String name;//属性
/**
*
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
加在类中就是类的注释,加在方法中就是方法的注释。
可使用cmd打开代码目录,输入javadoc -encoding UTF-8 -charset UTF-8(参数作用使得可以显示中文)
即可在源目录看到一个index文件就是自己的JavaDoc文档。
或者在IDEA中Tools—>Generate Javadoc里面也可以生成。