1. 运算符
1. 算术运算符:+,-,*,/,%,++,- -
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a + b);//30
System.out.println(a - b);//-10
System.out.println(a * b);//200
System.out.println(a / (double)b);//0.5
//取余,模运算
int x = 10;
int y = 20;
int z = 21;
System.out.println(z % x);//1
Java还提供了++运算和–运算,它们可以对一个整数进行加1和减1的操作
//一元运算符
//++自增,--自减
int n = 300;
n++; //301,相当于n = n + 1
n--; //300,相当于n = n - 1
//注意:++写在前面和后面计算结果是不同的,++n表示先加1再引用n,n++表示先引用n再加1
2.赋值运算符:=
int a = 1;//把 1 赋值给 a
3.关系运算符:>,<,>=,<=,==,!=
//关系运算符返回的结果:正确(true),错误(false)
int a = 10;
int b = 20;
System.out.println(a > b);//false
System.out.println(a < b);//true
System.out.println(a == b);//false
System.out.println(a != b);//true
4.逻辑运算符:&&,||,!
//逻辑运算符:与(and)、或(or)、非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b" + ":" + (a && b));//false
System.out.println("a || b" + ":" +(a || b));//true
System.out.println("!(a && b)" + ":"+ !(a && b));//true
5.位运算符:&,|,^,>>,<<
与运算的规则是:必须两个数同时为1,结果才为1
n = 0 & 0; //0
n = 0 & 1; //0
n = 1 & 0; //0
n = 1 & 1; //1
或运算的规则是:只要任意一个为1,结果就为1
n = 0 | 0; //0
n = 0 | 1; //1
n = 1 | 0; //1
n = 1 | 1; //1
异或运算的规则是:如果两个数不同,结果为1,否则为0
n = 0 ^ 0; //0
n = 0 ^ 1; //1
n = 1 ^ 0; //1
n = 1 ^ 1; //0
移位运算
//对整数7左移1位将得到整数14,左移两位将的到整数28
int n = 7; //7
int a = n << 1; //14
int b = n << 2; //28
//对byte和short类型进行移位时,会先转换为int再进行位移,仔细观察发现,左移实际上就是不断的*2,右移实际上就是不断的/2。
6.条件运算符:?:
//三元运算符
//布尔表达式 ? 表达式1 :表达式2
//布尔表达式为true,选择表达式1作为结果,反之选择表达式2作为结果。
int score = 80;
String type = score < 60 ?"不及格":"及格";
System.out.println(type);//及格
7.扩展赋值运算符:+=,-=,*=,/=
//还有一种简写的运算符,即+=,-=,*=,/=
n += 100;//相当于n = n + 100;
n -= 100;//相当于n = n - 100;
浮点数运算:浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。
//幂运算 2^3 : 2*2*2 = 8,很多运算我们会使用一些工具类来操作!
double pow = Math.pow(2,3);
System.out.println(pow);//8.0
2.包机制
为了更好的组织类,java提供了包机制,用于区别类名的命名空间,语法格式:package pkg1[. pkg2[. pkg3…] ];
一般利用公司域名倒置作为包名,如:com.baidu.www
为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,使用import语句即可完成此功能
import package1[. package2...].(classname|*);
import还可以采用*号的方式,表示导入这个包下所有的类
3. Java Doc
javadoc命令是用来生成自己API文档的
//参数信息
@author 作者名
@version 版本号
@since 指明需要最早使用的jdk版本
@param 参数名
@return 返回值情况
@throws 异常抛出情况
package com.kuang.base;
/**
* @author 阿波
* @version 1.0
* @since 1.8
*/
public class DOc {
String name;
/**
* @author 阿波
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
//通过命令行生成Java帮助文档:javadoc java文件
IDEA生成文档
-
选中你要生成文档的项目
-
点击上方的Tools->Generate JavaDoc选项
这里的命令行参数很重要,因为只有使用 utf-8 编码才能保证生成时可以正常处理中文字符,所以一定要加上:
-encoding utf-8 -charset utf-8
- 点击ok即可
效果如图:
4. Sanner
Scanner类用来获取用户的输入
//基本语法:Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
package com.kuang.Scanner;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接受:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next方式接受
String str = scanner.next();
System.out.println("输入的内容为:" + str);
//此处若之前输入的有空白,如:Hello World,只会输出:Hello
}
//凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯:用完就关掉。
scanner.close();
}
}
next()
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
package com.kuang.Scanner;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接受:");
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输入的内容为:" + str);
//此处若之前输入的有空白,如:Hello World,还是会输出:Hello World
}
scanner.close();
}
}
nextLine()
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白
package com.kuang.Scanner;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
//从键盘接受数据,多用nextLine()方法
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据:");
String str = scanner.nextLine();
System.out.println("输出内容为:" + str);
scanner.close();
}
}
小例子
package com.kuang.Scanner;
/*
输入多个数字,并且求总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
*/
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int m = 0;
System.out.println("请输入数字数据:");
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
//计数
m = m + 1;
//求和
sum = sum + x;
System.out.println("你输入了第" + m + "个数据,然后当前结果是sum =" + sum);
}
System.out.println(m + "个数的和为:" + sum);
System.out.println(m + "个数的平均值是:" + (sum / m));
scanner.close();
}
}