常量分类
| 常量类型 | 说明 | 举例 |
|---|---|---|
| 字符串常量 | 双括号起来的内容 | “深圳”, “广州” |
| 整数常量 | 不带小数的数字 | 666, -888 |
| 小数常量 | 带小数的数字 | 3.14, -789 |
| 字符常量 | 单引号括起来的内容 | ‘H’, ‘8’, ‘上海’ |
| 布尔常量 | 布尔值,真或假 | true, false |
| 空常量 | 空值 | null |
终于写出了没有BUG的程序
public class HelloWorld {
public static void main(String[] args){
System.out.println("Hello, World!");
}
}
数据类型
| 基本数据类型 | |
|---|---|
| 数值型 | 整数(byte,short,int,long),浮点数(float,doule),字符(char) |
| 非数值型 | 布尔值(boolean) |
| 引用数据类型 | |
| 类 | class |
| 接口 | interface |
| 数组 | [ ] |
定义变量时类型错误
类型转换
算术运算符
public class HelloWorld {
public static void main(String[] args){
// 算术运算符 + - * / %
int a = 30;
int b = 20;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
}
}
字符 ‘+’ 操作
public class HelloWorld {
public static void main(String[] args){
// 字符串 "+"操作
int i = 1;
String k = "A";
System.out.println(i + k); // 输出1A,对字符串使用 + 时,为字符串的拼接
System.out.println("a" + "k"); // 输出ak
System.out.println("a" + "k" + 4 + 7); // 输出ak47
System.out.println(500 + 20 + "深圳"); // 输出520深圳,从左往右计算,遇到数字时为算术运算符,反之为拼接
// 字符 "+" 操作
char w = 'A';
System.out.println(i + w); // 输出66,字符'A'对应的是计算机底层数值65,A-Z是连续的
w = 'a';
System.out.println(i + w); // 输出98,字符'a'对应的是计算机底层数值97,a-z是连续的
w = '0';
System.out.println(i + w); // 输出49,字符'0'对应的是计算机底层数值48,0-9是连续的
// char c = i + w; 错误写法,因为 i 为int类型,所以只能用int类型接收
int c = i + w;
System.out.println(c);
// int t = 10 + 3.14; 错误写法,因为3.14默认是double类型,比int等级高,所以需要用double来接收
// 等级顺序 byte,short,char->int->long->float->double
double t = 10 + 3.14;
System.out.println(t);
}
}
赋值运算符
public class HelloWorld {
public static void main(String[] args){
// 赋值运算符 = += -= *= /= %=
int i = 10;
System.out.println(i);
i += 10;
System.out.println(i);
i -= 10;
System.out.println(i);
i *= 10;
System.out.println(i);
i /= 10;
System.out.println(i);
i %= 10;
System.out.println(i);
short w = 20;
// w = w + 20; 错误,类型不兼容,因为20默认为int类型,比short等级高
// w = (short)(w + 20); 强制转换为short类型
w += 20;
System.out.println(w);
}
}
自增自减
public class HelloWorld {
public static void main(String[] args){
// 自增自减运算符
int i = 10;
i++;
System.out.println(i); // 输出11
// int j = i++;
// System.out.println(j); // 输出11,当++在后面进行赋值时,先赋值在++
// System.out.println(i); // 输出12
int j = ++i;
System.out.println(i); // 输出12
System.out.println(j); // 输出12,当++在前面进行赋值时,先++在赋值
int m = 10;
m--;
System.out.println(m); // 输出9
// int k = m--;
// System.out.println(k); // 输出9,当--在后面进行赋值时,先赋值在--
// System.out.println(m); // 输出8
int k = --m;
System.out.println(m); // 输出8
System.out.println(k); // 输出8,当--在前面进行赋值时,先--在赋值
}
}
关系运算符
public class HelloWorld {
public static void main(String[] args){
// 关系运算符 == != > < >= <=
int a = 100;
int b = 100;
int c = 300;
System.out.println(a == b); // true
System.out.println(a == c); // false
System.out.println(a != b); // false
System.out.println(a != c); // true
System.out.println(a > b); // false
System.out.println(a > c); // true
System.out.println(a < b); // false
System.out.println(a < c); // true
System.out.println(a >= b); // true
System.out.println(a >= c); // false
System.out.println(a <= b); // true
System.out.println(a <= c); // true
}
}
逻辑运算符
public class HelloWorld {
public static void main(String[] args){
// 逻辑运算符 & | ! ^
int a = 100;
int b = 200;
int c = 300;
// & 且
System.out.println((a > b) & (a > c)); // false & false -> false
System.out.println((a < b) & (a > c)); // true & false -> false
System.out.println((a > b) & (a < c)); // false & true -> false
System.out.println((a < b) & (a < c)); // true & true -> true
// | 或
System.out.println((a > b) | (a > c)); // false & false -> false
System.out.println((a < b) | (a > c)); // true & false -> true
System.out.println((a > b) | (a < c)); // false & true -> true
System.out.println((a < b) | (a < c)); // true & true -> true
// ! 非(取反) !为奇数时表示取反,偶数时结果不变
System.out.println(!(a > b)); // true
System.out.println(!!(a > b)); // false
System.out.println(!!!(a > b)); // true
System.out.println(!!!!(a > b)); // false
// ^ 异或 (两个值相同时为false,否则为true)
System.out.println((a > b) ^ (a > c)); // false & false -> false
System.out.println((a < b) ^ (a > c)); // true & false -> true
System.out.println((a > b) ^ (a < c)); // false & true -> true
System.out.println((a < b) ^ (a < c)); // true & true -> false
}
}
&和&& | 和 || 的区别
public class HelloWorld {
public static void main(String[] args) {
int a = 100;
int b = 200;
int c = 300;
// & 和 && 的区别
// System.out.println((a++ > 100) & (b++ > 100));
// System.out.println(a); // 输出101
// System.out.println(b); // 输出201
// System.out.println((a++ > 100) && (b++ > 100));
// System.out.println(a); // 输出101
// System.out.println(b); // 输出200
// 由此可见 & 无论左边真假,右边都会执行,而 && 判断左边为假时,右边不会再执行
// | 和 || 的区别
// System.out.println((a++ > 100) | (b++ > 100));
// System.out.println(a); // 输出101
// System.out.println(b); // 输出201
System.out.println((++a > 100) || (b++ > 200)); // 由于刚刚写成了a++,是先计算大小再赋值,所以结果一直都是false
System.out.println(a); // 输出101
System.out.println(b); // 输出200
// 由此可见 | 无论左边真假,右边都会执行,而 || 判断左边为真时,右边不会再执行
}
}
三元表达式
public class HelloWorld {
public static void main(String[] args) {
int a = 100;
int b = 200;
int ret = a <= b ? a : b; // 输出100,表达式成立返回 a 的值,反之返回 b
System.out.println(ret);
}
}
public class HelloWorld {
public static void main(String[] args) {
// 已知小明和小红的年龄是 18 和 20 ,判断他们年龄是否相同
int xiaoming = 18;
int xiaohong = 20;
boolean age = xiaoming == xiaohong ? true : false; // 返回false
System.out.println(age);
}
}
public class HelloWorld {
public static void main(String[] args) {
// 判断最大身高值
int xiaoming = 180;
int xiaohong = 170;
int xiaozhang = 175;
int height = xiaoming > xiaohong ? xiaoming : xiaohong ;
int maxheight = height > xiaozhang ? height : xiaozhang;
System.out.println(maxheight);
}
}
输入数据
// 导包
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
// new 一个对象
Scanner sc = new Scanner(System.in);
// 输入身高
int xiaoming = sc.nextInt();
int xiaohong = sc.nextInt();
int xiaozhang = sc.nextInt();
int height = xiaoming > xiaohong ? xiaoming : xiaohong;
int maxheight = height > xiaozhang ? height : xiaozhang;
System.out.println(maxheight);
}
}
流程控制
// 导包
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
// new 一个对象
Scanner sc = new Scanner(System.in);
// 输入数据
int num = sc.nextInt();
if(num % 2 == 0){
System.out.println(num + "是偶数");
}else{
System.out.println(num + "是奇数");
}
}
}
// 导包
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
// new 一个对象
Scanner sc = new Scanner(System.in);
// 输入城市判断地标
String city = sc.nextLine();
// 判断字符串相等用String.equals()方法,不能使用city == "深圳"
if(city.equals("深圳")){
System.out.println("世界之窗");
}else if (city.equals("广州")){
System.out.println("广州塔");
}else if(city.equals("上海")){
System.out.println("东方明珠");
}else{
System.out.println("没有找到地标");
}
}
}
// 导包
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
// 输入成绩判断分数
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if (score > 100 || score < 0) {
System.out.println("输入错误");
}else if (score >= 90){
System.out.println("优秀");
}else if (score >= 80){
System.out.println("优");
}else if (score >= 70){
System.out.println("良好");
}else if (score >= 60){
System.out.println("一般");
}else {
System.out.println("不及格");
}
}
}
switch语句
public class HelloWorld {
public static void main(String[] args) {
// new 一个对象
Scanner sc = new Scanner(System.in);
// 输入城市判断地标
String city = sc.nextLine();
switch (city) {
case "深圳":
System.out.println("世界之窗");
break;
case "广州":
System.out.println("广州塔");
break;
case "上海":
System.out.println("东方明珠");
break;
case "北京":
System.out.println("故宫");
break;
default:
System.out.println("未找到地标");
}
}
}
// 导包
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
// 通过月份判断季节
// case穿透
switch (month){
case 3:
case 4:
case 5:
System.out.println("春天");
break;
case 6:
case 7:
case 8:
System.out.println("夏天");
break;
case 9:
case 10:
case 11:
System.out.println("秋天");
break;
case 12:
case 1:
case 2:
System.out.println("冬天");
break;
default:
System.out.println("输入错误");
}
}
}
for循环



