2019-12-28

java 配置环境变量的含义:

JAVA_HOME
其他相关环境变量在配置的时候可以直接引用,更加简洁方便
path
Path的作用是找到java 和javac在哪儿
操作系统从path目录当中依次寻找,找不到就报错
classpath
java程序运行的步骤: 比如:执行"Test.java"这个文件时,首先会启动java 虚拟机,java虚拟机会找到一个名为"Test.class"的文件,然后由类装载器装载这个类 ,classpath的作用就是告诉类装载器要去哪个目录下找到这个class文件(JVM文件)

JVM来向下关联所有操作系统,他能操作所有操作系统,向上提供统一接口,也就是JavaAPI,开发者只需要面向JVM(JavaAPI)编程,至于JVM是如何各种不同的操作系统打交道开发者完全不用管,管他是怎么沟通交流的,于是只要面向JVM+JavaAPI编程,一个程序可以在任意操作系统平台上面运行,这就是所谓的跨平台,Java代码和平台是无关的,没有任何关系。

举个例子:我们国家有很多方言,比如广东人至听得懂广东话,四川人只听得懂四川话,天津人只听得懂天津话,这些方言就是所谓的地域相关的语言,对应计算机软件来说就是平台相关性,如果我一个北京人要跟广东、四川和天津人说话,我必须要会说这三种方言,这对于我的语言能力来说很痛苦,要学会这三种话。但是我们知道湖南卫视汪涵很牛逼,会说各种方言,我把他请来当翻译,汪涵就是JVM,他能说这三种方言,并且他只听懂得普通话,但是会说各种方言,这好像有点奇怪,所有想要跟广东、四川和天津打交道的人都跟汪涵说普通话,让他来帮忙翻译,我们说一句他翻译语句,这样的最终目的我们只需要学会普通话就可以跟任何人交流了。这就是Java平台。正是因为多了中间翻译人这么一个过程,所以很明显我说普通话跟广东人交流显得很慢,需要等汪涵来翻译,肯定是没有我直接说广东话来的直接。这也就是为什么Java比C/C++慢的原因,虚拟机需要解释执行。虽然速度慢,但是换来的是我们只需要说普通话就能跟所有人交流,这样的代价是值得的,而且虚拟机性能和各种Java技术的发展,这个解释执行的过程越来越快,以后说不定就追上C/C++了,也就是汪涵的语速会变得和好声音华少的语速,甚至再快,到了周杰伦唱歌速度那么快,我们和不同地区的人交流就更快了。当然现在的JVM不仅仅是逐行解释执行,还有部分JIT技术和其他很多各方面的提升。
javac 编译器 将.java文件编译成.class字节码文件
java 解释器

java基本数据类型4种(整数类型,小数(浮点类型),布尔类型,字符类型)

数据在计算机中存储是以补码的方式在内存中存储的,计算机计算加减乘除其实都是按照加法来进行运算的。
人为规定:在计算机中
1 Byte=8bit【即8位】
1KB=1024Byte
1MB=1024KB
1GB=1024MB
1TB=1024GB
1PB=1024TB
1EB=1024PB

image.png

原码,反码,补码的运算方式:

[原码]:计算机中将一个数字转换为二进制,并在其最高位加上符号的一种表示方法。
[反码]:根据表示规定,正数的反码就是本身,而负数的反码,除符号位外,其余位依次取反。
[补码]:根据表示规定,正数的补码就是本身,而负数的补码,是在其反码的末位加1。

image.png

image.png

image

强制转换的作用对象是变量,强制转换的方向是从高精度转换成低精度,转换后可能会丢失数据精度。一般在开发中尽量少用。

拓展:在java中当我们定义一个变量后如果没有赋值则会被系统赋予初始值,初始值结果如下

byte short int long的初始值为0

char的初始值为' '空格

float和double是0.0

boolean的初始值是false

引用类型是null


image.png

①、所有的逻辑运算符,只能运算布尔类型的数据
②、&& 短路与 规则:全真为真 一假则假
③、|| 短路或 规则:全假为假 一真则真
④、^异或 规则:相同为假 不同为真
⑤、! 非,取反 注意:只能操作一个布尔值 规则:真变假 假变真

三目运算符的结构
布尔表达式?值1:值2;流程是:如果布尔表达式的判断为true则返回值1,否则返回值2.

for(①初始化语句;②循环条件;④自增(减)循环计数器){
③循环体
}

①初始化语句
while(②循环条件){
③循环体;
④自增(减)循环计数器
}

①初始化语句
do{
③循环体
④步进语句
}while(②循环条件);

死循环: 永不停止的循环
Java中最简单的死循环:
while(true);
for(;;);

关键字: Java预先定义好的,具有特殊含义的单词(如上方的public 、static 、void 、main、return、int 、float、等)详见>>****内容扩展模块⑩<<
标识符: 由程序员自己定义的单词

类名,变量名,方法名

标识符的命名规则和规范

规则:

a.必须由数字,字母,_,$组成
b.数字不能开头
c.不能和关键字重名

规范:

a.见名知义
b.驼峰式命名法
类名:所有单词的首字母大写(大驼峰)
变量名,方法名:第二个单词开始首字母大写(小驼峰)
关键字都是小写的
称为大神,第二步: 严格遵循规则和规范

| 关键字 | 含义 |
| abstract | 表明类或者成员方法具有抽象属性 |
| assert | 断言,用来进行程序调试 |
| boolean | 基本数据类型之一,布尔类型 |
| break | 提前跳出一个块 |
| byte | 基本数据类型之一,字节类型 |
| case | 用在switch语句之中,表示其中的一个分支 |
| catch | 用在异常处理中,用来捕捉异常 |
| char | 基本数据类型之一,字符类型 |
| class | 声明一个类 |
| const | 保留关键字,没有具体含义 |
| continue | 回到一个块的开始处 |
| default | 默认,例如,用在switch语句中,表明一个默认的分支 |
| do | 用在do-while循环结构中 |
| double | 基本数据类型之一,双精度浮点数类型 |
| else | 用在条件语句中,表明当条件不成立时的分支 |
| enum | 枚举 |
| extends | 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口 |
| final | 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量 |
| finally | 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块 |
| float | 基本数据类型之一,单精度浮点数类型 |
| for | 一种循环结构的引导词 |
| goto | 保留关键字,没有具体含义 |
| if | 条件语句的引导词 |
| implements | 表明一个类实现了给定的接口 |
| import | 表明要访问指定的类或包 |
| instanceof | 用来测试一个对象是否是指定类型的实例对象 |
| int | 基本数据类型之一,整数类型 |
| interface | 接口 |
| long | 基本数据类型之一,长整数类型 |
| native | 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的 |
| new | 用来创建新实例对象 |
| package | 包 |
| private | 一种访问控制方式:私用模式 |
| protected | 一种访问控制方式:保护模式 |
| public | 一种访问控制方式:共用模式 |
| return | 从成员方法中返回数据 |
| short | 基本数据类型之一,短整数类型 |
| static | 表明具有静态属性 |
| strictfp | 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1] |
| super | 表明当前对象的父类型的引用或者父类型的构造方法 |
| switch | 分支语句结构的引导词 |
| synchronized | 表明一段代码需要同步执行 |
| this | 指向当前实例对象的引用 |
| throw | 抛出一个异常 |
| throws | 声明在当前定义的成员方法中所有需要抛出的异常 |
| transient | 声明不用序列化的成员域 |
| try | 尝试一个可能抛出异常的程序块 |
| void | 声明当前成员方法没有返回值 |
| volatile | 表明两个或者多个变量必须同步地发生变化 |
| while | 用在循环结构中 |

方法的重载(overload)的定义:在同一个类中,方法名一样,参数列表不一样,这些方法称为方法的重载,作用是在同一类中同一方法的不同实现方式,具体调用那个方法取决于接收的参数。
参数列表不一样有三种情况 a .参数个数不一样 b.参数类型不一样 c.参数顺序不一样.

public int test(int a);/方法的声明,注意大括号也没有/ 方法的声明

构造方法:
①、方法名和类名相同

②、构造方法没有返回值

③、主要作用是完成对新对象属性的初始化,严重鄙视在构造方法中执行一些方法操作,如连接数据库等

④、在一个类中可以有多个构造方法,即构造方法可以被重载

⑤、每个类都有一个默认的构造方法

this代词的应用场景

this关键字主要有三个应用:
(1)this调用本类中的属性,也就是类中的成员变量;
(2)this调用本类中的其他方法;
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。

你可能感兴趣的:(2019-12-28)