目录
一、JVM,JDK,JRE三者的关系,分析哪一个是Java程序运行必备的条件。
一、JVM,JDK,JRE三者的关系,分析哪一个是Java程序运行必备的条件。
-
JVM(Java Virtual Machine):Java虚拟机, 真正运行Java程序的地方。
-
核心类库:Java自己写好的程序,给程序员自己的程序调用的。
-
JRE(Java Runtime Environment): Java的运行环境。
-
JDK(Java Development Kit): Java开发工具包(包括上面所有)。
二、数据类型
计算机存储单元
我们知道计算机是可以用来存储数据的,但是无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写的字母”b”表示。而计算机中最基本的存储单元叫“字节(byte)”,
通常用大写字母”B”表示,字节是由连续的8个位组成。
除了字节外还有一些常用的存储单位,其换算单位如下:
1B(字节) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
基本数据类型:4大类8种。
数据类型 | 内存占用(字节数) | 数据范围 | |
整型 | byte | 1 | -128~127 |
short | 2 | -32768~32767 | |
int(默认) | 4 | -2147483648~2147483647 (10位数,大概21亿多) | |
long | 8 | -9223372036854775808 ~ 9223372036854775807 (19位数) | |
浮点型(小数) | float | 4 | 1.401298 E -45 到 3.4028235 E +38 |
double(默认) | 8 | 4.9000000 E -324 到1.797693 E +308 | |
字符型 | char | 2 | 0-65535 |
布尔型 | boolean | 1 | true,false |
说明:
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
在java中整数默认是int类型,浮点数默认是double类型。
引用数据类型
数组、对象、接口、注解、枚举
三、Ascll码
ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。
一般情况下,要记住48-0,65-A,97-a
四、注释(理解)
注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要。Java中的注释分为三种:
单行注释。单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字。
// 这是单行注释文字
在idea里快捷键ctrl+/
多行注释。多行注释的格式是使用/* 和 */将一段较长的注释括起来。
/* 这是多行注释文字 这是多行注释文字 这是多行注释文字 */ 注意:多行注释不能嵌套使用。在idea里快捷键ctrl+shift+/
文档注释。文档注释以/**
开始,以*/
结束。
五、变量和常量
常量(应用)
常量:在程序运行过程中,其值不可以发生改变的量。
Java中的常量分类:
字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、"abc"、"中国"等
整数常量 整数,例如:-10、0、88等
小数常量 小数,例如:-5.5、1.0、88.88等
字符常量 用单引号括起来的一个字符,例如:'a'、'5'、'B'、'中'等
布尔常量 布尔值,表示真假,只有两个值true和false
空常量 一个特殊的值,空值,值为null
除空常量外,其他常量均可使用输出语句直接输出。
变量的介绍(理解)
变量的定义格式:
数据类型 变量名 = 数据值;
数据类型:为空间中存储的数据加入类型限制。整数?小数?
变量名:自己要为空间起的名字,没有难度
数据值: 空间中要存储的数值,没有难度
六、标识符(理解)
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则:
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)。
Java中标识符的命名约定:
小驼峰式命名:变量名、方法名
首字母小写,从第二个单词开始每个单词的首字母大写。
大驼峰式命名:类名
每个单词的首字母都大写。
另外,标识符的命名最好可以做到见名知意
例如:username、studentNumber等。
七、类型转换
在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。
隐式转换(理解)
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。例如:
double num = 10; // 将int类型的10直接赋值给double类型 System.out.println(num); // 输出10.0
类型从小到大关系图:
说明:
-
整数默认是int类型,byte、short和char类型数据参与运算均会自动转换为int类型。
byte b1 = 10; byte b2 = 20; byte b3 = b1 + b2; // 第三行代码会报错,b1和b2会自动转换为int类型,计算结果为int,int赋值给byte需要强制类型转换。 // 修改为: int num = b1 + b2; // 或者: byte b3 = (byte) (b1 + b2);
-
boolean类型不能与其他基本数据类型相互转换。
强制转换(理解)
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;
例如:
double num1 = 5.5; int num2 = (int) num1; // 将double类型的num1强制转换为int类型 System.out.println(num2); // 输出5(小数位直接舍弃)
类型转换案例(理解)
案例代码:
byte a = 3; byte b = 4; byte c = a + b; //错误。因为两个byte变量相加,会先提升为int类型 byte d = 3 + 4; //正确。常量优化机制
常量优化机制:
在编译时,整数常量的计算会直接算出结果,并且会自动判断该结果是否在byte取值范围内,
在:编译通过
不在:编译失败
八、运算符
基本的算术运算符
符号 | 作用 | 说明 |
+ | 加 | 参考小学一年级 |
- | 减 | 参考小学一年级 |
* | 乘 | 参考小学二年级,与“×”相同 |
/ | 除 | 与“÷”相同,注意:在Java中两个整数相除结果还是整数。 |
% | 取余 | 获取的是两个数据做除法的余数 |
注意:
1. /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
2. 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
+ 除了做基本数学运算,还有哪些功能?
与字符串做+运算时会被当成连接符,其结果还是字符串。
识别技巧:能算则算,不能算就在一起。
自增自减运算符
符号 | 作用 |
自增:++ | 放在某个变量前面或者后面,对变量自身的值加1 |
自减:-- | 放在某个变量前面或者后面,对变量自身的值减1 |
注意:
基本赋值运算符
关系运算符
符号 | 例子 | 作用 | 结果 |
> | a>b | 判断a是否大于b | 成立返回true、不成立返回false |
>= | a>=b | 判断a是否大于或者等于b | 成立返回true、不成立返回false |
< | a<b | 判断a是否小于b | 成立返回true、不成立返回false |
<= | a<=b | 判断a是否小于或者等于b | 成立返回true、不成立返回false |
== | a==b | 判断a是否等于b | 成立返回true、不成立返回false |
!= | a != b | 判断a是否不等于b | 成立返回true、不成立返回false |
逻辑运算符
把多个条件放在一起运算,最终返回布尔类型的值:true、false。
注意:在java中, “&” 、 “|”: 无论左边是 false还是 true,右边都要执行
三元运算符(理解)
三元运算符语法格式:
~~~java
关系表达式 ? 表达式1 : 表达式2;
~~~
解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。
举例:
~~~java
int a = 10;
int b = 20;
int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值
~~~