1.简单介绍Java语言
1.概念:
Java语言是一门面向对象编程的语言,吸收了C++的优点,摒弃了C++中一些难以理解的概念,例如:多继承、指针等,因此Java就有了量大特征:简单易用、功能强大。面向对象脑图
2.特点:
面向对象:封装(把相关的数据封装成一个“类”)、继承(子类自动享有父类的方法)、多态(增加灵活性、重复利用性)。
平台无关性:一次编写,到处运行( Java 的虚拟机机制,在不同的平台上运行无需重新编译)。
支持多线程:程序需要同时执行多个任务,通过引入java.lang.Thread 类来体现。
Thread类 :每个线程都是通过某个特定Thread对象的run()来完成操作,把run()的主体称为线程体,通过该Thread对象的start()方法来启动线程。
编译与解释并存:Java程序需要通过编译器将程序编译为字节码(.class)文件,然后jvm通过类加载器将文件加载到内存中(运行时数据区),由于字节码是jvm的指令集规范,不能直接交给操作系统处理,因此需要特定的命令解析器执行引擎将字节码解释成底层系统指令再交由CPU去执行,这个过程中需要调用其他语言的接口 本地库接口实现整个程序的功能。
字节码:指 Java 程序经过编译产生的.class 文件,字节码能够被虚拟机识别,从而实现 Java 程序的跨平台性。
3.JVM、JDK、JRE的区别
JVM:Java 虚拟机,Java 程序运行在 Java 虚拟机上。针对不同系统的实现(Windows,Linux,macOS)不同的 JVM,因此 Java 语言可以实现跨平台。
JRE:Java 运⾏时环境,运⾏已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,Java 命令和其他的⼀些基础构件,但是不能⽤于创建新程序。
JDK:功能⻬全的 Java SDK,它拥有 JRE 所拥有的⼀切,还有编译器(javac)和⼯具(如 javadoc 和 jdb),能够创建和编译程序。
简而言之,JDK 包含 JRE,JRE 包含 JVM。
2.数据类型
Java语言的数据类型分为两种:基本数据类型和引用数据类型。
1.基本数据类型
1>基本数据类型脑图
2>Java 基本数据类型范围和默认值:
2.引用数据类型
类(class)、接口(interface)、数组([])
3.类型转换
Java中所有的数值型变量可以相互转换,当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,可以进行自动类型转换;反之,需要强制转换。
自动类型转换方向:
举例说明:
float f = 2.3;
原因如下:2.3 是单精度数,将双精度型(double)赋值给浮点型(float)属于向下转型,会造成精度损失,因此需要强制类型转换float f =(float)3.4; / float f =3.4F;
short s1 = 1; s1 = s1 + 1;
原因如下:编译无法通过,1是int类型,s1+1应该也是int类型,结果需要将int强制转换为short。
short s1 = 1; s1 += 1;
原因如下:编译可通过, s1+= 1;相当于 s1 = (short(s1 + 1);其中有隐含的强制类型转换。
4.自动拆箱和自动装箱
5. &和&&有什么区别?
参考脑图中运算符中的逻辑运算符部分。
6.自增自减
符号在前,先变后用;符号在后,先用后变。
当 b = ++a 时,先自增(自己增加 1),再赋值(赋值给 b);当 b = a++ 时,先赋值(赋值给 b),再自增(自己增加 1)。也就是,++a 输出的是 a+1 的值,a++输出的是 a 值。
执行此代码块:
int i = 1;
i = i++;
System.out.println(i);
运行结果:
运行此代码块:
int i = 1;
int temp = i;
i++;
i = temp;
System.out.println(i);
7.break ,continue ,return 的区别及作用
break: 跳出整个循环,不再执行循环(结束当前的循环体)
continue: 跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)
return: 程序返回,不再执行下面的代码(结束当前的方法 直接返回)