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%; ”即可。注意要加“;”号。

java home 和jre home_Java

2、关键字&标识符

2.1、关键字

关键字:被Java语言赋予了特定含义的一些字符!关键字中所有字母都为小写。类似英语中人名地名等专有名词。

  1. 定义数据类型:
    class、interface、byte、short、int、long、float、double、char、boolean、void
  2. 数据类型的值:
    true、false、null
  3. 流程控制:
    if、else、switch、case、default、while、do、for、break、continue、return
  4. 权限修饰符:
    private、protected、public
  5. 类、函数、变量修饰符:
    abstract、final、static、 synchronized
  6. 类之间关系:
    extends、implements
  7. 异常处理:
    try、catch、finally、throw、throws

  8. package、import
  9. 其他修饰
    native(执行本地c)、strictfp(类、接口或方法上 约束表达式)、 transient(对象上不会被序列化) 、volatile(弱同步)、assert(断言)

2.2、标识符

可简单理解为在Java程序中为了增强阅读性自定义的名称。比如:类名,方法名,变量名等。

2.2.1、标识符组成:

  1. 标识符由字母、数字、下划线、$组成,不能以数字开头,注意:此处的字母还可以是中文,日文等;
  2. 标识符大小写敏感;
  3. 标识符不得使用java中的关键字和保留字;
  4. 别用Java API里面的类名作为自己的类名;

注意:在起名字的时,只要标识符不是关键字就可以了,但为了提高阅读性,经常用有意义的英文单词作为标识符

2.2.2、标识符书写规范:

  • 包名:多单词组成时所有字母都小写。xxxyyyzzz
  • 类名接口名:多单词组成时,所有单词的首字母大写。XxxYyyZzz
  • 变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接。XXX_YYY_ZZZ

3、常量&变量

3.1、常量

定义:程序中固定不变化的值。

常量分类

常量类型

整数(byte short int long)常量

所有整数 三类(正整数 零 负整数)

小数(float double)常量

所有小数

布尔型(boolean)常量

较为特有,只有两个数值。(true false)

字符(’’)常量

将一个数字字母或者符号用单引号( ’ ’ )标识。

字符串("")常量

将一个或者多个字符用双引号(“ ”)标识。

null常量

只有一个数值就是: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具有良好的可移植性。

java home 和jre home_跨平台_02

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)