1、Java每条语句以“;”结束。
2、一个源文件最多只能有一个public类。其它类的个数不限。
public class hello {
public static void main(String[] args) {
System.out.println("hello word 你好世界");
}
}
class Dog {
}
class Cat {
}
3、如果源文件包含一个public类,则文件名必须以该类名命名。
4、每一个class类,编译后都会生成一个.class文件。
5、变量 = 变量名 + 变量值 + 基础数据类型。
int a = 100;
6、+ 号的使用:
左右两边有一方位字符串,则做拼接运算:
从左到右,依次计算:
System.out.println("hello"+100+3"); // hello1003
7、数据类型:
整型:
byte【字节】:范围:-128~127
short【短整型】:范围:-32768~32767
int【整型】:范围:-2147483648~2147482647
long【长整型】:范围:-2^63~2^63-1
注意事项:
1、Java整型常量(具体值)默认为int类型,如果要声明long类型,后面要加 L。
浮点型:
float【单精度】:
double【双精度】:
注意事项:
1、Java浮点型常量(具体值)默认为double型,声明float型常量,后面加 F。
float num1 = 1.1; // 错误,1.1为double型
float num2 = 1.1F; // 正确
double num3 = 1.1; // 正确
double num4 = 1.1F; // 正确
8、字符常量:char:用单引号括起来的单个字符
a、在Java中,char本质是一个整数,输出时,输出的是Unicode码对应的字符。
char num = 97;
System.out.println(num); // 97 => a
b、char类型是可以运算的,运算结果时一个整数,如果要输出字符,要使用char进行强转。
System.out.println('A' + 1); // 66
System.out.println((cahr)('A' + 1)); // B
public class Char {
public static void main(String[] args) {
char a = 'a';
char b = 97;
System.out.println(a); // a
System.out.println(b); // a
System.out.println((int)a); // 97
System.out.println(a + b); // 194
}
}
9、基本数据类型转换:在进行赋值或者运算时,精度小的自动转换为精度大的数据类型。
注意事项:
a、多种数据类型混合运算时,会将所有数据类型转换为容量最大的那种数据类型,再进行计算。
int n1 = 10;
double d1 = n1 + 1.1; // √ 1.1 => double;n1 => int 整体为 ==》 double
float d2 = n1 + 1.1; // × 1.1 => double;n1 => int 整体为 ==》 double double ≠ float
float d3 = n1 + 1.1F; // √
b、将精度(容量)大的数据类型赋值给小的就会报错,反之自动转换
int n2 = 1.1; // × double=》int
c、(byte,short)和char之间不会自动转换
// (1)、将具体数值赋值给byte时:先判断该数是否在byte范围内,在可以
byte n1 = 10; // √ -128~127
int n2 = 1;
byte b1 = n2; // × 变量赋值,判断类型
d、byte、short、char:三者可以进行计算,但是在计算时首先转换为int类型
byte n1 = 1;
byte n2 = 2;
short s1 = 1;
short s2 = n1 + s1; // × b2 + s1 => int int=>short ×
int s3 = n1 + s1; // √
byte b1 = n1 + n2; // × n1 + n2 => int
10、基本数据类型 和 字符串 转换:
a、基本数据类型 ==》 字符串 + "";
int a = 10
String str = a + "";
System.out.pringln(str);
b、字符串 ===》基本数据类型:使用基本数据类型包装类的方法
String str = "100";
int num1 = Integer.parseInt(str);
double num2 = Double.parseDouble(str);
float num3 = Float.parseFloat(str);
long num4 = Long.parseLong(str);
byte num5 = Byte.parseByte(str);
boolean b = Boolean.parseBoolean("true");
short num6 = Short.parseShort(str);
11、逻辑运算符:
a、&:逻辑与:a、b同时为真才为真:不管第一个条件是否为false,第二个都还会判断:效率低
b、&&:短路与:a、b同时为真才为真:如果第一个条件为false,第二个不会判断,效率高,使用较多。
c、|:逻辑或:a、b一个为真就为真:不管第一个是否为true,第二个都会判断,效率低。
d、||:短路与:a、b有一个为真就为真:第一个为true,后面不会判断,效率高,实际使用多。
e、!:取反。
f、a^b:a、b、不同时,结果为真,否则为假。
12、前置递增、后置递增:
a、前置递增:++a:先自加,在运算/比较。
b、后置递增:a++::先运算/比较,再自加。
13、复合赋值运算符和递增会进行类型转换:
byte b1 = 2;
b1 += 3; // b1 = b1 + 3; 会隐式转换:(byte)b1+3
b1++; // b1 = b1 + 1;会隐式转换:(byte)b1+1
System.out.println(b1);
14、三元运算符:
条件表达式?表达式1:表达式2
int a = 10;
int b = 20;
int result = a > b ? a++ : b++;
15、命名规范:
a、包名所有字母小写。
b、类名、接口名首字母大写。
c、变量名、方法名:第一个单词首字母小写,后面首字母大写:xxxYyyZzz。
d、常量名:所有字母大写:XXX_YYY_ZZZ。
16、键盘输入:Scanner:
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt();
String name = scanner.next():
double salary = scanner.nextDouble();