JVM

Java虚拟机, 简称JVM, 是运行所有Java程序的假想计算机,是Java程序的运行环境之一,也是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在JVM 之上。

JRE

(Java Runtime Environment) :是Java程序的运行时环境,包含JVM 和运行时所需要的核心类库。

JDK

(Java Development Kit):是Java程序开发工具包,包含JRE 和开发人员使用的工具。

数据类型

Java的数据类型分为两大类

基本数据类型:包括 整数、浮点数、字符、布尔。

基本数据类型4类8种

整型类:byte,short,int,long
浮点数类:float,double
字符型:char
布尔型:boolean
引用数据类型:包括 类、数组、接口、Lambda。 (字符串引用数据类型,字符串String是一个系统自带的类)

运算符

算数运算符

+加法运算,字符串连接运算
-减法运算
*乘法运算
/除法运算
%取模运算,两个数字相除取余数
++--自增自减运算

Java中,整数类型使用以上运算符,无论怎么计算,也不会得到小数

=:赋值运算符,就是将符号右边的值,赋给左边的变量。
>,<,>=,<=
比较运算符
,是两个数据之间进行比较的运算,运算结果都是布尔值true或者false 。

||(或),&&(与),!(非)
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值true或者false,逻辑运算符,一个运算中可以重复使用
注意: 逻辑与和逻辑或,有短路问题,当前面已经得出结果,后面的就不再参与运算。

三元运算符格式:

数据类型 变量名 = 布尔类型表达式?结果1:结果2
运算符的优先级:
自增运算符 逻辑非 > 算数运算符 > 比较运算符 > 逻辑&&|| > 三元运算符 > 赋值运算符

三元运算符可以嵌套使用,但不推荐

方法(类似C语言的函数):

我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。

方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。

当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。

示例:

修饰符 返回值类型 方法名 (参数列表){
        代码...
           return ;

修饰符: 目前固定写法 public static 。

  • 返回值类型: 目前固定写法 void ,其他返回值类型在后面的课程讲解。
  • 方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法。
  • 参数列表: 目前无参数, 带有参数的方法在后面的课程讲解。
  • return:方法结束。因为返回值类型是void,方法大括号内的return可以不写。

调用格式:方法名()

方法定义注意事项:

  • 方法必须定义在一类中,方法外
  • 方法不能定义在另一个方法的里面,不能定义,但可以调用
  • 方法不调用不会执行

运算符进行运算时,例如++,+=,虽然逻辑上是二次运算,但实际上只执行一次运算, 并带有强制转换的特点

规范

  • 标识符规则:数字,英文字母,下划线,$符号组成,不能数字开头,不能和关键字重复
  • 标识符规范: 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
  • 方法名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。

注意

  • long类型数据记得加上L结尾
  • float类型数据记得加上F结尾

默认转换(从小到大转换)

byte,short,char→int→long→float→double
byte,short,char相互之间不转换,他们参与运算转为统一转为int,运算中,只要有大的类型,肯定转换为大类型
变量之间相加,会首先转换类型

ASCLL表中下列字符对应:‘a’:97,‘A’:65,‘0’:48
字符串数据和其他出具做+,结果还是字符串类型(这里的加不是加法运算),而是字符串连接符。

强制转换

double 类型内存8个字节,int 类型内存4个字节。1.5 是double 类型,取值范围大于int 。可以理解为double 是8升的水壶,int 是4升的水壶,不能把大水壶中的水直接放进小水壶去。

想要赋值成功,只有通过强制类型转换,将double 类型强制转换成int 类型才能赋值。

强制类型转换:将取值范围大的类型强制转换成取值范围小的类型。

比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
强制类型转换,可能造成数据损失精度。
boolean类型的不能发生强制类型转换
byte \ short \ char 这三种数据类型可以发生数学运算,但是会首先提升到 int 类型

数据类型 变量名 = (数据类型)被转数据值

int i =int(double);
// double类型数据强制转成int类型,直接去掉小数点。

07-18 06:30