1.每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类。
2.文件名必须和类名相同。(eg:类名:First,文件名:First.java。)
3.Java程序中的main()方法必须声明为public static void。
4.Java语言是严格区分大小写的。
一、基本数据类型
5. 8位等于一个字节。
6.int型是Java整型值的默认数据类型。当对多个尚未定义数据类型的整数做运算时,运算的结果将默认为Int类型。
public class Demo {
public static void main(String[] args) {
System.out.println(2+3);
}
}
//运行结果 5
public class Demo {
public static void main(String[] args) {
System.out.println(2.0+3);
}
}
//运行结果 5.0
7.long型的取值范围比int 型大,且属于高精度数据类型,所以在赋值时要和int型做区分,需要在整数后加L或者l(小写的L)。
long number = 123456L;
long number = 123456L * 8910L;
8.在默认情况下小数都被看作double型,若想使用float型小数,则需要在小数后面添加F或者f。(可用D或者d来明确这是一个double类型数据,无硬性要求。)
9.浮点值属于近似值,在系统中运算后的结果可能与实际有偏差。(笔者不能理解,所以去搜了一下,解释见链接)
10.整数在Java程序中有3中表示形式,分别为十进制、八进制和十六进制。
(1)十进制:除了数字0,不能以0作为其他十进制数的开头。
(2)八进制:八进制数必须以0开头。
(3)十六进制:十六进制数必须以0x或0X开头。
11.制表符'\t'的理解
12.转义字符之\ddd和\uxxxx
\ddd:\ + 1-3位八进制数据所表示的字符(范围:\0-\377,即0-255)
\uxxxx:\u + 4位十六进制数据所表示的字符(范围:\u0000-\uFFFF,即0-65535)
13.布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中,作为判断条件。
14.Java语言使用Unicode标准字符集,最多可以标识65535个字符。因此,Java语言中的字母不仅包括通常的拉丁文字a、b、c等,还包括汉语、日语以及其他许多语言中的文字。
15.变量:内存空间;变量名:该内存空间的名称;变量值:内存空间内存放的值。
16.常量名通常使用大写字母,但这并不是必须的。
17.当变量被final关键字修饰时,该变量就变成了常量,必须在定义时就设定它的初值,否则将会产生编译错误。(定义时可以不初始化,但必须为常量赋值,且只能赋值一次。)
public class Demo {
public static void main(String[] args) {
final int number=1235;
System.out.println("number:"+number);
}
}
//运行结果:number:1235
public class Demo {
public static void main(String[] args) {
final int number;
number=1235;
System.out.println("number:"+number);
}
}
//运行结果:number:1235
public class Demo {
public static void main(String[] args) {
final int number;
number=1235;
number=1236;
System.out.println("number:"+number);
}
}
/*运行结果:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The final local variable number may already have been assigned(报错)*/
18.成员变量分为静态变量和实例变量。
class Dome{
int x = 45; //实例变量x
static int y = 90; //静态变量/类变量
}
静态变量的有效范围可以跨类,甚至可达到整个应用程序之内。对于静态变量,除了能在声明它的类内存取,还能直接以“类名.静态变量”的方式在其他类内使用。
19.局部变量可与成员变量的名字相同,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。
public class Demo {
static int age=23;
public static void main(String[] args) {
age=22;
System.out.println("age:"+age);
}
}
//运行结果:age:22
public class Demo {
int age=23;
public static void main(String[] args) {
age=22;
System.out.println("age:"+age);
}
}
/*运行结果:Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Cannot make a static reference to the non-static field age
Cannot make a static reference to the non-static field age(报错,笔者目前不能理解是什么原因造成的)*/
二、运算符
20.在进行除法运算时,0不能做除数。
21.逻辑运算符“&&”与“&”的区别:使用逻辑运算符“&”会判断两个表达式;而逻辑运算符“&&”则是针对boolean类型的类进行判断,当第一个表达式false时则不去判断第二个表达式。
22.位运算符(新东西,笔记太多,不想写了,看视频吧)
23.运算符的优先级决定了表达式中运算执行的先后顺序。如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先处理。
三、数据类型转换
24.除boolean类型外,其他基本类型都能以显式类型转换的方法实现转换。(同13)
25.当把整数赋值给一个byte、short、int、long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。
public class Demo {
public static void main(String[] args) {
byte b = (byte)129;
System.out.println("b:" + b);
}
}
//运行结果:b:-127
四、代码注释与编码规范
26.在多行注释中可以嵌套单行注释,但不可以嵌套多行注释。
27.在Java代码中,空格仅提供分隔使用,无其他含义。
(笔者正在通过【清华正版】Java从入门到精通(第6六版) 这本书自学Java,如有错误敬请指出)