一、JDK\JRE\JVM区分
JDK(Java开发工具包)其中包括 Java开发工具和JRE(Java程序的运行环境), JRE中包括核心类库和JVM(虚拟机)。
JDK目录下文件意义:
a:bin目录:该目录用于存放一些可执行程序。
如javac.exe(java编译器)、java.exe(java运行工具),jar.exe(打包工具)和javadoc.exe(文档生成工具)等。
b:db目录:db目录是一个小型的数据库。
c:jre目录:"jre"是 Java Runtime Environment 的缩写,意为Java程序运行时环境。
d:include目录:由于JDK是通过C和C++实现的,因此在启动时需要引入一些C语言的头文件,该目录就是用于存放这些头文件的。
e:lib目录:lib是library的缩写,意为 Java 类库或库文件,是开发工具使用的归档包文件。
f:src.zip文件:src.zip为src文件夹的压缩文件,src中放置的是JDK核心类的源代码,通过该文件可以查看Java基础类的源代码。

JDK的下载安装,环境变量的配置不再赘述。
二、常用的DOS命令

命令

功能

盘符:

进入相应盘

dir

查看该目录所有内容

cd 路径目录

进入目录

md 目录名

创建目录

rd 目录名

删除目录

rd /s 目录名

强制删除目录(询问)

rd /s/q 目录名

删除目录(不询问)

cd…

退回上级目录

cd…/…/

退回两级目录

cd /

退回根目录

cd /d 路径名

跨盘符操作

del 文件名

删除文件

del *.扩展名

批量删除文件

cls

清屏

exit

退出

notepad mspaint

记事本 画图

calc ipconfig

计算器 查看ip

三、标识符:接口、类、常量、变量等的名字
规范:
1.不能用关键字(Java中被赋予特殊意义的单词)。
2.不能以数字开头或纯数字。
3.不能使用特殊字符,$和_可以使用。
4.见名知意。
包的命名规范:
由小写单词组成。
类或接口的命名规范:
单个单词首字母大写,多个单词采用驼峰式命名(例如:DemoTest)。
变量或者方法命名规范:
大小写可以混用,但是首字母小写,单词由大写字母隔开(例如:setTest)。
四、常量及变量
基本数据类型的占用空间:

类型名

占用空间

byte

1个字

short

2个字

int

4个字节

long

8个字节

double

8个字节

float

4个字节

char

8个字节

boolean

1个字节

注意事项:
字符串常量双引号,字符常量单引号;变量必须对其赋值后才可以使用;在同一个作用域内不可以定义两个同名变量;定义long时候后缀l,定义float时后缀f
变量在运算中的细节:
1.举例:面试

byte a=10;
int b=20;
byte x=a+b;
System.out.println(x);

结果:编译不通过,显示可能丢失精度
分析:b为int型,x为byte型,byte装不下int
————————————————————————————————————————————
2.自动类型提升:byte,short,char型在参与运算时会自动提升为int型,若还有long,float,double型参与运算是则会提升为相应的long,float,double型。注意:byte short char 这三个之间不参与转换.
举例: 面试

short a=3;
short b=4;
short c=a+b;
System.out.println(c);

结果:编译不通过,显示可能都是精度
分析:变量a和b在参加运算是被提升为了int型。可以将第三行代码改为 short c=(short)(a+b)就可以编译成功,该操做是做了一波强制转换,但是不建议使用,因为可能会损失精度。
————————————————————————————————————————————
3.常量优化机制:多个常量在计算时会先计算再赋值。
举例: 面试

byte b1=3;
byte b2=4;
byte b3=3+4;
System.out.println(b3);

结果:编译成成功 输出7
分析:第三行体现了常量优化机制。
四、进制
互相转换和原码,反码,补码不再赘述;
进制的前缀:

进制名

前缀

二进制

0b

八进制

0

十进制

没前缀

十六进制

0x

五、运算符细节
1.+的作用
a.两个量相加
b.当+的两端任意一端是一个字符串,此时+起连接符作用。
举例: 面试

System.out.print("5+5="+5+5);
System.out.print(5+5+"=5+5");

求运行结果? 结果分别是 5+5=55 10=5+5
————————————————————————————————————————————
2.++的使用细节
a.当++单独使用时(如 i++),放前放后都一样
b.混合使用时候:
++在前,先运算,后使用;
++再后,先使用,后运算;
举例:

b=1;
r=++b;
结果:r=2 b=r
b=1;
r=b++;
结果:r=1 b=2

————————————————————————————————————————————
3.+=细节,面试题

byte a = 10;
a=a+10;
System.out.print(a);

结果:编译不通过
分析:因为自动类型提升。

byte a=10;
a+=10;
System.out.print(a);

结果:编译成功 ,结果为10

分析:a+=10;会再底层做强制转换,相当于 a=(byte)(a+10);

————————————————————————————————————————————

4.&和&&;|和||的区别

两个符号的运算结果完全一样

区别在于:

&的两端都会运算

&&当左端为false时,右端不再执行;当左端为true时,有右端才会执行

I和||的区别同理

总结:&&和||的特点是当左端已经决定结果时,右端不再运行,所以&&和||的效率更高。

5.三元运算符

格式: 条件表达式?结果1:结果2

执行流程:当条件表达式为true时取结果1,为false时取结果2

举例:a>b?c:d

五、代码练习

交换两个变量的值不引入第三方变量

Java目录包解释 java的lib目录_Java

运算符练习

Java目录包解释 java的lib目录_Java目录包解释_02

打印Hello world

Java目录包解释 java的lib目录_Java目录包解释_03