Java语言基础
1. 变量的命名规范
字下美人数骆驼
字:字母
下:下划线 _
人:人民币符号 ¥
美:美元符号 $
数:数字
可以以字母、下划线、,人民币符号、美元符号开头,可以包含数字,不能以数字开头
骆驼:驼峰命名,变量首单词首字母小写,后续每有一个新的单词,首字母大写
实际开发中,我们只推荐使用纯单词
2. 强制类型转换特殊情况
/**
* 强制类型转换特殊情况
*
*/
public class Test1 {
public static void main(String[] args) {
// 第一种情况 长度不够 数据截断
short s1 = 257;
byte b1 = (byte)s1;
System.out.println(b1); //1
// 第二种情况 长度不够 数据截断 符号位发生改变
short s2 = 128;
byte b2 = (byte)s2;
System.out.println(b2); //-128
// char类型和int类型自动类型转换
char ch1 = 65;
int num1 = ch1;
System.out.println(num1); //65
char ch2 = 65;
System.out.println((char)(ch2 + 1)); //B
char ch3 = 'A';
System.out.println(ch3 + 1); //66
}
}
3. 运算符
3.1 算数运算符
++或者-- 如果作为单独的一条语句书写 在前在后没有任何区别
如果不是单独的一条语句书写
++或者–在前 先执行++或者-- 再执行其他的
++或者–在后 先执行其他的 再执行++或者–
/**
* 算数运算符1
*
*/
public class Test1 {
public static void main(String[] args) {
int a = 20;
int b = 10;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
int c = 10;
int d = 3;
System.out.println(c % d);
}
}
/**
* 算数运算符 ++ --
* ++表示自增1
* --表示自减1
*
*/
public class Test2 {
public static void main(String[] args) {
int a = 10;
a++; // a = a + 1;
System.out.println(a); // 11
int b = 20;
b--; // b = b - 1;
System.out.println(b); // 19
int c = 10;
++c;
System.out.println(c); // 11
int d = 20;
--d;
System.out.println(d); // 19
int e = 10;
int f = e++;
System.out.println("f的取值为:" + f);
System.out.println("e的取值为:" + e);
int h = 10;
int j = ++h;
System.out.println("j的取值为:" + j);
System.out.println("h的取值为:" + h);
}
}
3.2 赋值运算符
/**
* 赋值运算符
*
*/
public class Test1 {
public static void main(String[] args) {
int a = 10;
a += 3; // a = a + 3;
System.out.println(a);
int b = 20;
b -= 10; // b = b - 10;
System.out.println(b);
int c = 5;
c *= 6; // c = c * 6;
System.out.println(c);
int d = 10;
d /= 2; // d = d / 2;
System.out.println(d);
int e = 100;
e %= 3; // e = e % 3;
System.out.println(e);
}
}
3.3 关系运算符
关系运算符最终的结果都为布尔类型
/**
* 关系运算符
*
*/
public class Test1 {
public static void main(String[] args) {
int a = 10;
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);
System.out.println(a != b);
}
}
3.4 逻辑运算符
逻辑运算符
&& 短路与 表示多个条件同时成立 则结果为真
有短路的效果 如果第一个条件不成立 后续的代码不再执行
& 与 表示多个条件同时成立 则结果为真
没有短路的效果 不管前边的条件结果如何 都将执行完所有的条件
|| 短路或 表示多个条件 有一个条件成立 则结果为真 true
有短路的效果 如果第一个条件成立 后续的代码不再执行
| 或 表示多个条件 有一个条件成立 则结果为真 true
没有短路的效果 不管前边的条件结果如何 都将执行完所有的条件
/**
* 逻辑运算符
*
*/
public class Test1 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
System.out.println((a > b) && (b < c)); // false
System.out.println((a < b) && (c > b)); // true
System.out.println((a > b) & (b < c)); // false
System.out.println((a < b) & (c > b)); // true
System.out.println((a > b) || (b < c));// true
System.out.println((a < b) || (b < c));// true
System.out.println((a > b) || (b > c));// false
System.out.println((a > b) | (b < c));// true
System.out.println((a < b) | (b < c));// true
System.out.println((a > b) | (b > c));// false
}
}
/**
* 逻辑运算符 和 ++ -- 案例
*
*/
public class Test2 {
public static void main(String[] args) {
int x=8;
int y=9;
System.out.println((++x==y)&&(++x!=y)); // true
System.out.println(x); // 10
int a=8;
int b=9;
System.out.println((a++==b)&&(++a!=b)); // false
System.out.println(a); // 9
int c=8;
int d=9;
System.out.println((c++==d)&(++c!=d)); // false
System.out.println(c); // 10
}
}
/**
* ! 取反 非真即假 非假即真
*
*/
public class Test3 {
public static void main(String[] args) {
System.out.println(!true);
System.out.println(!false);
}
}
3.5 三元运算符
/**
* 三元运算符
*
*/
public class Test4 {
public static void main(String[] args) {
int age = 18;
System.out.println(age >= 18 ? "成年了" : "未成年");
int a = 20;
int b = a > 15 ? 55 : 66;
System.out.println(b);
}
}
3.6 位运算符
整数的四种表示形式
0B开头 表示2进制数值
0开头 表示8进制数值
10进制数
0X开头 表示16进制数值
左移几位表示乘以2的几次方
右移几位表示除以2的几次方
public class Test1 {
public static void main(String[] args) {
int a = 10;
int b = 0B11;
System.out.println(b); //3
int c = 011;
System.out.println(c); //9
int d = 0X23DF;
System.out.println(d); //9183
int e = 14;
System.out.println(e >>> 1); //7
System.out.println( 11 & 6); //2
System.out.println(11 | 6); //15
System.out.println(11 ^ 6); //13
System.out.println(~6); //-7
}
}
4. 运算符的优先级
实际开发中需要优先运算的,使用小括号包括即可
++或者–在前在后必须掌握
5. Scanner接收用户输入信息
使用Scanner实现用户与程序的交互
Scanner 单词:扫描
Scanner是JDK提供的一个工具类 位于java.util这个包中
此类提供了用于获取用户输入信息的各种功能(方法)
nextInt() 用于接收用户输入的整数
next() 接收用户输入的字符串
nextDouble() 接收用户输入的小数
注意:没有nextChar()
因为这个类位于java.util这个包中 所以我们需要使用必须要导包
使用import关键字导包,导包语句写在包声明之后,类声明之前
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
// 1.创建Scanner类型变量 取名为input
Scanner input = new Scanner(System.in);
// 2.提示用户输入信息
System.out.println("请输入您的名称");
// 3. 接收用户输入的内容 并且存放到name变量中
String name = input.next();
// 4.将用户输入的内容打印出来
System.out.println("您输入的名称是:" + name);
System.out.println("请输入年龄");
int age = input.nextInt();
System.out.println("您输入的年龄是:" + age);
System.out.println("请输入您的成绩");
double score = input.nextDouble();
System.out.println("您输入的分数是:" + score);
}
}
java.util.InputMismatchException :输入不匹配异常,比如接收整数类型,却输入字母或者中文等非整数数值
出现异常将中断程序