基本语法
- 标识符的命名规则
- 26个英文字母,数字,下划线,$
- 数字不能开头
- 关键字保留字不能用,但是可以拼接
- 不能有空格
- 标识符的命名规范
- 包名:小写
- 类名、接口名:大驼峰
- 方法名、变量名:小驼峰
- 常量:大写
- Java 变量数据类型划分
- 八大基本数据类型
- 整型
- byte --> 1个字节 --> 8bit
- short:2个字节
- int:4个字节
- long:8个字节
- 浮点型
- 单精度 float:4个字节
- 双精度 double:8个字节
- char:2个字节
- boolean:true or false
- 整型
- 引用类型
- 类
- 接口
- 数组
- 八大基本数据类型
- 基本数据类型变量之间自动类型提升运算
- 低精度自动转换成高精度的
- java中 整数是默认 int 浮点默认 double
- byte、short、char之间任意基本运算后会自动转换成int型
- byte 、short 、char --> int --> long --> float --> double
- 基本数据类型强制数据转换规则和可能出现的问题
- 高精度转低精度
- 可能出现精度损失
- 使用强转符 ()
定义变量
这两个后面要带个字母
long l1 = 322455666L;
float f1 = 12.3F;
转义字符的运用
boolean isMarried = true;
if(isMarried){
System.out.println("你已经结婚了,不能参加单身party,很遗憾!");
//System.out.println("你已经结婚了,不能参加单身party,\n很遗憾!"); 这里\n是转义字符的意思,表示换行。
//System.out.println("你已经结婚了,不能参加单身party,\\n很遗憾!"); 这里\\n是转义字符的意思,表示在程序中输出\n。
//System.out.println("你已经结婚了,不能参加\"单身\"party,\\n很遗憾!"); 这里\"单身\"是转义字符的意思,表示在程序中输出"单身"。
}else{
System.out.println("你可以多谈谈女朋友!");
}
-
自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte、char 、short --> int --> long -->float-->double
特别的:当byte、char、short三种类型的变量做运算时,结果为int型 -
字符串
字符串定义时候一定要有
"";
char c = '';//编译出错,''里面一定要有字符,空格也是
String s1 = "";//这是可以的,因为里面没有字符串也可以
+:在Sting中,这个是 连接 符号char c = 'a';//97 A:65 int num = 10; String str = "hello"; System.out.println(c + num + str);//107hello // * * System.out.println("* *"); System.out.println('*' + '\t' + '*');//不行,字符相加
二进制


public static void main (String[] args){
int num1 = 12;
int num2 = 5;
int result2 = num1 / num2 * num2;
System.out.println(result2);//10
double result3 = num1 / num2;
System.out.println(result3);//2.0
double result3 = num1 / (num2 + 0.0);
System.out.println(result3);//2.4
double result4 = (double)num1 / num2 ;
System.out.println(result4);//2.4
// %:取膜(取余数)
//结果的符号与被模数的符号相同
int m1 = 12;
int n1 = 5;
System.out.println("m1 % n1 = " + m1 % n1);//12
int m2 = -12;
int n2 = 5;
System.out.println("m2 % n2 = " + m2 % n2);//-12
int m3 = 12;
int n3 = -5;
System.out.println("m3 % n3 = " + m3 % n3);//12
int m4 = -12;
int n4 = -5;
System.out.println("m4 % n4 = " + m4 % n4);//-12
short s1 = 10;
s1 += 2;
System.out.pringln();//12 不会改变变量本身的数据类型
}
public static void main (String[] args){
//练习1
int i = 1;
1 * = 0.1;
System.out.println(i);//0
i++;
System.out.println(i);//1
//练习2
int m = 2;
int n =3 ;
n *= m++;//n=n*m++;
System.out.println("m=" + m);//3
System.out.println("n=" + n);//6
int n1 = 10;
n1 += (n1++) + (++n1);// n1=n1+(n1++)+(+n1);
System.out.println(n1);//32
}
boolean
public static void main (String[] args){
boolean b1 = true;
boolean b2 = false;
System.out.println(b2 == b1);//false
System.out.println(b2 = b1);//true
}
逻辑运算符
- 逻辑运算符操作的都是boolean类型的变量
-
& 逻辑与 and
-
&& 短路与
-
| 逻辑或 or
-
|| 短路或
-
! 逻辑非
-
^ 逻辑异或 (小技巧:两者相同 false,两者不同为ture)
| a | b | a&b | a&&b | a|b | a||b | !a | a^b |
|---|---|---|---|---|---|---|---|
| true | true | true | true | true | true | false | false |
| true | false | false | false | true | true | false | true |
| false | true | false | false | true | true | true | true |
| false | false | false | false | false | false | true | false |
public static void main(String[] args) {
// & 和 && 区别
// 相同点1: 不管是 & && 两者结果没变
// 相同点2: 当符号左边是true时候,符号右边会继续执行
// 不同点: 当符号左边是false时候,符号右边& 执行, &&不执行
// 开发中推荐使用 &&
boolean b1 = true;
b1 = false;
int num1 = 10;
if (b1 & (num1++ > 0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println(num1);
boolean b2 = true;
b2 = false;
int num2 = 10;
if (b2 && (num2++ > 0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println(num2);
// | 和 || 区别
// 相同点1: 不管是 | || 两者结果没变
// 相同点2: 当符号左边是false时候,符号右边会继续执行
// 不同点: 当符号左边是true时候,符号右边| 执行, ||不执行
// 开发中推荐使用 ||
boolean b3 = false;
b3 = true;
int num3 = 10;
if (b3 | (num3++ > 0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println(num3);
boolean b4 = false;
b4 = true;
int num4 = 10;
if (b4 || (num4++ > 0)){
System.out.println("我现在在北京");
}else {
System.out.println("我现在在南京");
}
System.out.println(num4);
}
位运算符
| 运算符 | 运算 | 范例 |
|---|---|---|
| << | 左移 | |
| >> | 右移 | |
| >>> | 无符号右移 | |
| & | 与运算 | |
| | | 或运算 | |
| ^ | 异或运算 | |
| ~ | 取反运算 | |
-
位运算符操作的都是整型的数据
-
左移 : 在一定范围内,每向左移1位,相当于 * 2
右移: 在一定范围内,每向右移1位,相当于 / 2
-
三元运算符:
(条件表达式)?表达式1:表达式2
1真大师
凡是可以使用三元运算符的地方,都可以改写为 if else
反之,不成立。
如果程序既可以使用三元运算符,又可以使用 if lese 结构,那么选择三元运算符,原因: 简洁、效率高
//表达式1 表达式2 类型为统一的类型 int m = 12; int n = 5; double num = (m > n)? 2 : 1.0; //三元运算符可以嵌套的 int m = 12; int n = 12; String maxStr = (m > n)? ("m大" : ((m == n)? "m和n相等" : "n大"); System.out.println(maxStr);
//Scanner 注意点
/*
1.java.util.Scanner
2. 实例化Scanner
3. 调用相关方法 next()、nextInt()、nextDouble等
注意点:要输入指定类型的值,不然会抛异常 InputMisMatchException
*/
public class Application {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入你的性别(男/女)");
//因为Scanner类没有 Char 类型,可以先转String 然后在通过String类的方法 charAT()
String sex = myScanner.next();
char firstSex = sex.charAt(0);
System.out.println(firstSex);
}
}
- if else 说明:
- else 结构是可选的。
- 针对于条件表达式:
如果多个条件表达式之间是“互斥”关系(或没有交集的关系),哪个判断和执行语句声明在上面还是下面,无所谓。
如果多个条件表达式之间有交集的关系,需要根据实际情况,考虑清楚应该将哪个结构声明在上面。
如果多个条件表达式之间有包含的关系,通常情况下,需要将范围小的声明在范围大的上面。否则,范围小的就没机会执行
public class Application {
public static void main(String[] args) {
//结果是 4
int x =4;
int y =1;
if(x>2)
if(y>2)//没有大括号 可以照顾一行
System.out. println(x + y);
//System. out. println("atguigu");
else //就近原则
System.out.println("x is"+ x);
}
}
浙公网安备 33010602011771号