JavaSE必备知识点1

JavaSE必备知识点—22个必备小知识

1

JavaSE 标准版 运用于个人计算机当中。基础

JavaEE 企业版 运用于服务器端的应用。重点

JavaME 微型版 定位于消费性电子产品的应用上。 消亡

2

JVM(java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的“虚拟计算机”。

JRE(Java Runtime Environment) 即Java运行时环境,包含Java虚拟机、库函数、运行Java应用程序所必须的文件。

JDK(Java Development Kit) 即Java开发工具包,包含JRE,以及增加编译器和调试器等用于程序开发的文件。

3

环境变量Path的配置:

环境变量是在操作系统中一个具有特定名字的对象,它包含一个或者多个应用程序所将使用到的信息。比如:C:\Program Files (x86)\Java\jdk1.8.0_131

4

先编译: javac xxx.java,再运行 java xxx(不需要加后缀名)。

Java中每个语句必须以分号结束,回车不是语句结束标志,所以一个语句可以跨多行。

5

集成开发环境 IDE

src 放置源码 bin 放置字节码

6

单行注释 //

多行注释/* */

文档注释/** */

7

标识符规则:

以字母、下划线或美元符号$开头;其他部分可以是数字0~9、字母、下划线或美元符号$的任意排列;大小写敏感,不可以为Java的关键字。

标识符规范:

表示类名的标识符:每个单词的首字母大写。表示方法或者变量的标识符,遵循“驼峰原则”,如eatFood()。采用了Unicode标准国际字符集,字符中也有中文。

8

变量本质上就是代表一个“可操作的存储空间”,空间位置是确定的 ,但是 里面放什么值不确定。我们可以通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。

Java是一种强类型语言,每个变量都必须声明其数据类型。变量必须声明且初始化之后才可被使用。

9

局部变量(local variable) 方法或语句块内部定义的变量。生命周期是从声明位置开始到方法或者语句块{ }执行完毕为止。局部变量在使用前必须先声明,初始化(赋初值)后使用。

静态变量(类变量 static variable) 从属于类,生命周期伴随类的始终,从类加载到卸载。

成员变量(实例变量 member variable) 方法外部,类的内部定义的变量。从属于对象,生命周期伴随对象始终。与局部变量不同的是,成员变量可自定初始化。

10

常量,在Java中用final来进行修饰,一旦被初始化就不能够被修改或。定义常量一般全部使用大写字母和下划线。

11

数据类型:

基本数据类型:(数字表示该类型占用字节数)

数值型:整数类型(byte 1 short 2 int 4 long 8)浮点类型(float 4 double 8)

字符型:char 2

布尔型:boolean 1bit

引用数据类型(4字节): 类(class),接口(interface),数组

12

八进制整数使用0开头,十六进制整数使用0x0X开头,二进制数使用0b0B开头。

Java语言的整型常数默认为int型,声明long型常量可以后面加Ll。为避免和数字1搞混,尽量使用大写方式。

13

浮点数使用有限个位置代表无限个数值,所以有精度问题,不够精确。float类型称作单精度类型,尾数可以精确到7位有效数字,double精度更高,较多使用。因此,浮点型常量默认的数据类型为double

可以使用科学计数法进行标识浮点数,如 314e2 314E-2 314e-2

使用float类型时需要在后面加fF,不加会报错。

浮点数不精确,一定不能够用于比较,对于一些精度要求高的行业,比如金融,也不能够使用float和double类型。

那遇到上述情况如何处理呢?就需要用到java.math包中两个有用的类,这两个类可以处理任意长度的数值,分别是BigInteger(整数)和BigDecimal(浮点数)。

14

boolean类型有两个常量值,truefalse,在内存中占一位(而不是一个字节),不可以使用0或者非0的整数代替truefalse

取余操作中余数符号与左边操作数符号相同。

1
a*=b+3; //a = a * (b + 3)

15

&& 短路与 表示一旦&&前面的表达式为false的话,后面的表达式就不再看了,直接返回结果false。

& 逻辑与 即使前面的表达式为false,后面的表达式也会进行计算。

短路或 || 和逻辑或|的区别也和上面的大体相同。

除此之外还有 逻辑非! 和逻辑异或^

16

位运算符 说明
~ 取反
& 按位与
\ 按位或
^ 按位异或
<< 左移运算符,左移一位相当于乘2
>> 右移运算符,右移一位相当于除2取商
1
int a = 12 >> 2 ; //相当于除以4,结果为3

优先级&>^>|>&&>||

17

字符串连接符+:只要+两边有一个字符串,它就变成了字符串连接符。下面是个例子:

1
2
3
System.out.println(2+3+4);  //9
System.out.println(2+3+"4"); //54
System.out.println("2"+3+4); //234 因为"2"+3之后变成了字符串"23",然后再用"23"+4

如果是字符的话,那就有不一样了。

1
System.out.println('a'+4); //结果为101

这个就相当于把字符数字化了,97是a在ASCII码中的位置。

18

自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。

整型转换为浮点型的时候可能会有精度损失,但是也可以自动转换。

可以将整型常量直接赋值给byte short char等类型变量,而不需要进行强制类型转换,只要不超过其表述范围即可。

强制类型转换有可能而且很大可能会丢失精度,用法是在要转化的值前面加一个括号,括号内是你要转化的数据类型。

该转换也可用于拓宽符号精度,放置计算时损失精度。比如:

1
2
3
4
int a = 1000000000;  //10亿
int b = 20;
System.out.println(a*b); //由于超出了int表示范围,结果不是200亿,而是-1474836480。
System.out.println(a*(long)b); //结果为20000000000

所以说要拓宽思路,不要只是简单的往损失精度方面去想。

19

使用Scanner获取键盘输入

1
2
3
4
5
6
7
8
9
import java.util.Scanner;
public class Welcome {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入你要说的话吧:");
String scentence = input.nextLine();
System.out.println(scentence);
}
}

20

switch语句中case的值可以是整数,枚举类型,或者字符串。一般用来做多值判断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;
public class Welcome {
public static void main(String[] args){
String a;
Scanner i = new Scanner(System.in);
a = i.nextLine();
switch(a){
case "aaa":
System.out.println("aaa");
break;
case "bbb":
System.out.println("bbb");
break;
default:
System.out.println("default");
break;
}
}
}

21

带标签的break和continue语句,在触发条件跳到对应位置的同时,还会出发break和continue本身的功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Welcome {
public static void main(String[] args){
//打印101-150之间所有的质数
outer:for(int i=101;i<150;i++){ // 标签所在地
for(int j=2;j<i/2;j++){
if(i%j==0){
continue outer; //与break outer效果不同
}
}
System.out.print(i+" ");
}
}
}
//输出结果: 101 103 107 109 113 127 131 137 139 149

22

方法:带有名字的语句块,可反复调用。通过对象调用普通方法。

1
2
3
4
5
6
7
8
9
10
public class Welcome {
public static void main(String[] args){
Welcome ut = new Welcome();
System.out.println(ut.add(3, 4));
}
//普通方法
int add(int a,int b){
return a+b;
}
}

方法重载:重载的方法,实际是完全不同的方法,只是名称相同而已。构成条件为:形参类型,形参个数,形参顺序不同均可构成 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Welcome {
public static void main(String[] args){
Welcome ut = new Welcome();
System.out.println(ut.add(3, 4));
System.out.println(ut.add(3, 4,5));
}
//普通方法
int add(int a,int b){
return a+b;
}
int add(int a,int b,int c){
return a+b+c;
}
}
//结果如下:
7
12

返回值不同不构成重载形式参数名称不构成重载

您的每一份支持将鼓励我继续创作!
-------------本文结束感谢您的阅读-------------