Java学习细节篇_Day01andDay02

一、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学习细节篇_Day01andDay02_第1张图片

运算符练习
Java学习细节篇_Day01andDay02_第2张图片

打印Hello world
Java学习细节篇_Day01andDay02_第3张图片

你可能感兴趣的:(Java学习细节篇_Day01andDay02)