1、环境变量配置
1.1、JDK、JRE、JVM区别
JDK(Java Development Kit):java的开发工具,包括jre+开发工具
JRE(Java Runtime Environment):java的运行环境,包括jvm+java的核心类库。
JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性。java语言是跨平台,jvm不是跨平台的。
包含关系:JDK > JRE > JVM
1.2、环境变量配置
JAVA_HOME:安装jdk的路径
Path:要把jdk的bin目录路径,添加到path变量。在原有的路径前加上 “ %JAVA_HOME%; ”即可。注意要加“;”号。
2、关键字&标识符
2.1、关键字
关键字:被Java语言赋予了特定含义的一些字符!关键字中所有字母都为小写。类似英语中人名地名等专有名词。
- 定义数据类型:
class、interface、byte、short、int、long、float、double、char、boolean、void - 数据类型的值:
true、false、null - 流程控制:
if、else、switch、case、default、while、do、for、break、continue、return - 权限修饰符:
private、protected、public - 类、函数、变量修饰符:
abstract、final、static、 synchronized - 类之间关系:
extends、implements - 异常处理:
try、catch、finally、throw、throws - 包
package、import - 其他修饰
native(执行本地c)、strictfp(类、接口或方法上 约束表达式)、 transient(对象上不会被序列化) 、volatile(弱同步)、assert(断言)
2.2、标识符
可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。
2.2.1、标识符组成:
- 标识符由字母、数字、下划线、$组成,不能以数字开头,注意:此处的字母还可以是中文,日文等;
- 标识符大小写敏感;
- 标识符不得使用java中的关键字和保留字;
- 别用Java API里面的类名作为自己的类名;
注意:在起名字的时,只要标识符不是关键字就可以了,但为了提高阅读性,经常用有意义的英文单词作为标识符
2.2.2、标识符书写规范:
- 包名:多单词组成时所有字母都小写。xxxyyyzzz
- 类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz
- 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz
- 常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZZ
3、常量&变量
3.1、常量
定义:程序中固定不变化的值。
常量分类:
常量类型 | |
整数(byte short int long)常量 | 所有整数 三类(正整数 零 负整数) |
小数(float double)常量 | 所有小数 |
布尔型(boolean)常量 | 较为特有,只有两个数值。(true false) |
字符(’’)常量 | 将一个数字字母或者符号用单引号( ’ ’ )标识。 |
字符串("")常量 | 将一个或者多个字符用双引号(“ ”)标识。 |
null常量 | 只有一个数值就是: |
3.2、变量
定义:简单来说就是运行中可能会被改变的值。
定义变量的格式:数据类型 变量名 = 初始化值; = 是赋值符号。
变量命名:变量表示内存中的一个存储区域,这时必须给这个区域起个名字 ,才能使用。当在给变量起名时,同样需要见名知义。同标识符。
注意事项:变量在使用时,必须先给变量空间存放数据,即初始化。同时变量也有自己的生命周期(作用域问题)。
常量池的值有的直接用,没有就创建,注意常量池基础数据很多,开发时不考虑他的多少,优化内存问题。
4、数据类型
4.1、基本数据类型
整数类型:byte short int long
浮点数类型:float double
字符类型:char
布尔类型:boolean(true false)
4.1.1、基本数据类型转换
精度从高到低 : double --> float --> long --> int --> short --> char --> byte
(1)自动类型转换 : 将一个低精度—>高精度
(2)强制类型转换 : 将一个高精度—>低精度**(精度会下降)**
4.2、引用数据类型
类(class)
接口( interface )
数组([])
5、运算符
5.1、算数运算符
运算符 | 运算 | 举例 | 表示运算 |
+ | 正 | ||
- | 负 | ||
+ | 加 | ||
- | 减 | ||
* | 乘 | ||
/ | 除 | 20/5 | 4 |
% | 取余 | 20%5 | 0 |
++a | 自增(前置) | a=2;b++a | a=3;b=3 |
a++ | 自增(后置) | a=2;b=a++ | a=3;b=2 |
–a | 自减(前置) | a=2;b–a | a=1;b=1 |
a– | 自减(后置) | a=2;b=a– | a=1;b=2 |
+ | 连接字符串 | “he”+“llo” | “hello” |
注意:对于取模运算 m % n :
当 m 等于 n 时: m % n的结果为零
当 m 大于 n 时: m % n的结果为 m / n 的余数
当 m 小于 n 时: m % n的结果为 m
5.2、赋值运算符
运算符 | 举例 | 结果 |
= | a=3 | 把2赋值给a |
+= | a+=3 | 相当于a=a+3 |
-= | a-=3 | 相当于a=a-3 |
*= | a*=3 | 相当于a=a*3 |
/= | a/=3 | 相当于a=a/3 |
%= | a%=3 | 相当于a=a%3 |
注意:赋值号和算数运算符的混合运算属于一个运算符,不能拆分。并且这个符号会完成自动强制转换动作。
5.3、比较运算符
在生活中经常需要判断数据大小,相等不相等各种操作,在Java中同样也可以判断数据的大小。
比较运算符符号:
\>
大于 >=
大于等于 <
小于 <=
小于等于 ==
相等 !=
不等
结果:不是true就是false
5.4、逻辑运算符
逻辑运算符。用来连接boolean型表达式的。
&
: 与
|
:或
^
: 异或。
!
:非。
&&
短路与
||
短路或
规律:
&&
:逻辑与(短路与),两边同为真结果才为真,短路与:左边是假,右边忽略不执行
&
:不管左边结果是什么都要执行右边(&的左右两边都要参与运算)
||
:逻辑或(短路或),两边只要有一个真结果就是真,短路或:左边是真,右边忽略不执行
5.5、位运算符
5.6、三元运算符
5.6.1、格式
条件表达式?表达式1:表达式2
5.6.2、运算法则
- 条件表达式 运算结果必须为
boolean
类型的值。 - 当 条件表达式 的值是
true
时,表达式1结果就是三元运算符的结果。 - 当 条件表达式 的值是
false
时,表达式2结果就是三元运算符的结果。
表达式1&表达式2
返回数据的语句。
6、常见题型
6.1、简述Java跨平台原理
6.1.1、什么是跨平台性?
答:
跨平台就是说同一个软件可以在不同的操作系统上执行,而不需要对软件做任务处理。即通过Java语言编写的应用程序在不同的系统平台上都可以运行。
6.1.2、Java应用程序为什么可以跨平台呢?
其实只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
6.2、用最有效率的方法计算 a 乘以b
a << b;
//(左移 b 位相当于乘以 2 的 b 次方,右移 b 位相当于除以 2 的 b 次方)。
6.3、^是什么?
答:
^ : 异或逻辑运算符。
两边相同为false。两边不同为true。
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
6.4、"=="和"equals"的区别是什么?
答:
"=="是比较运算符;比较内存地址。
"equals"是Object()类中的一个方法。“equals” 看父类中的方法,object中的默认方法是比较内存地址,String类中重写了父类方法比较的是字符内容。
6.5、&和&&的区别
答:
&是位运算符,表示按位与运算;
&&是逻辑运算符,表示逻辑与(and)