1、java是面向对象的编程语言
2、摆脱了硬件平台的束缚,实现了‘一次编程,处处运行’的理念
3、内存管理相对安全,避免了绝大部分内存泄漏和指针越界的问题
4、实现了热点代码检测和运行时编译,使得java应用能随着运行时间的增长而获得更高的性能
5、有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三方类库。
可移植性:如果java直接编译成操作系统能识别的二进制码,可能一个标识在Window操作系统是1100,而Linux下是1001,这样的话,在Window操作系统下可以运行的程序到了Linux环境下就无法运行。为了解决这个问题,java先编译生成字节码,再由JVM(java虚拟机)来执行,目的就是将统一的字节码转成操作系统可以识别的二进制码,然后执行。而针对不同的操作系统,都有相应版本的JVM,因此实现了可移植性。通常情况下,我们只需要安装不同版本的JDK就行了,它里面包含了JRE,而JRE又包含了JVM。Windows、Linux、MacOS等操作系统都有相应的JDK,只要安装好了JDK就可以把一份字节码文件放在不同的平台上运行了。
static关键字:可以用来声明任何一个方法,被static修饰的方法称之为静态方法,静态方法不需要为其创建对象就能调用。
编译阶段:java的编译器javac将java源代码文件编译为字节码文件,在这个阶段,编译器会进行一些检查工作,比如某个关键字是不是写错了,语法上是不是符合预期了,不能有很明显的错误,否则带到运行时在检查出来就会比较麻烦了。
基本数据类型是java语言操作数据的基础,包括boolean、char、byte、short、int、long、float、double,共计8种。
除了基本数据类型以外的类型,都是所谓的引用类型,常见的有数组、class、接口。
局部变量:方法内的变量,必须先初始化,否则编译器不允许你使用它。
成员变量及静态变量:方法外的变量,可以不进行初始化,他们会有一个默认值。
bit 比特:
比特作为信息技术的最基本存储单位,非常小,但大名鼎鼎的比特币就是以此命名的,大家都知道,计算机是以二进制存储数据的,二进制的一位就是1比特,也就是说比特要么为0,要么为1.
byte 字节:
通常来说,一个英文字符为一个字节,一个中文字符为两个字节,1字节=8比特。在往上的单位就是kb,并不是1000字节,因为计算机只认识二进制,因此是2的10次方,也就是1024个字节。
为了与int作区分,long类型变量在声明的时候,末尾要带上大写的L,小写l容易和数字1混淆。
float(单精度浮点数)、double(双精度浮点数),取值范围是无限的,不适用于精确的数值,比如货币,精确的数值最好使用BigDecimal,它可以表示任意大小且精度完全准确的浮点数。
String是最经典的引用数据类型,而不是基本数据类型
1、引用数据类型
包括boolean、char、byte、short、int、long、floa
t、double,共计8种。
2、引用数据类型
除了基本数据类型以外的类型,都是所谓的引用类型,常见的有数组、class、接口。
public static void main(String[] args) {
List<String> list = new ArrayList<>();
System.out.println(list);
}
List是一个非常典型的接口:
public interface List<E> extends Collection<E> {}
而ArrayList是List接口的一个实现:
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{}
对于接口类型的引用变量来说,没法直接new一个:
只能new一个实现它的类的对象,那接口自然也是引用数据类型了。
List<String> list = new ArrayList<>();