基础JAVA学习(一)
1.计算机语言分类
例:Python javaScript
例: C C++
例:Java
2.java跨平台原理
- java中的jvm本身不能跨平台。
- 不同的操作系统使用不同版本的jdk,jdk中包括jre(java runtime environment)——java运行时环境,jre中包含jvm,所以可以通过不同版本的jdk中的jvm进行对java源代码的编译,编译为.class结尾的字节码文件,并使其在jvm上运行。
- jvm是面向系统进行操作的,他会将.class结尾的字节码文件解释成当前系统能够识别的机械指令,同时负责运行时内存管理
3.JDK
-
SDK
- 里面有开发人员所要使用的工具,是帮助开发人员简化工作的
- javac.exe 程序编译
- java.exe 程序运行
- 解释:java development kit——java开发工具包
-
JRE
- java runtime environment——java运行时环境
*没有jre是无法运行java程序的 - JVM
java virtual machine java虚拟机(核心)
- java runtime environment——java运行时环境
4.从源文件到执行的过程
1.编译
- 将源代码编译为JVM可以解释的.class字节码文件
- 编译过程中会对源代码进行‘语法分析’‘语义分析’和‘注释处理’等,最后才生成
2.加载
- 将编译后的java文件加载到jvm中
*细化:装载——>连接——>初始化 - 把字节码文件转化为系统可以识别的指令
3.解释
两种方式转化为机械指令
- 字节码解释器
- 即时解释器(jit)
- jvm会对热点代码直接做编译
- 非热点代码直接进行解释
*当某段代码或方法运行特别频繁时,可以定义其为热点代码
4.执行
操作系统把解释器解析出来最终执行
5.标识符的命名标准
- 含义
标识符就是类,方法,变量等起的名称 - 不能用关键字及系统的核心类来命名标识符
*关键字包括但不限于- 修饰关键字 例:public private static
- 申明关键字 例:class extends implements
- 命名可使用的字符仅包括英文字母的大小写,数字以及_和$
- 不允许数字开头,且不允许有空格出现
- 驼峰命名法
多个单词之间的连接需要用空格大小写以及下划线进行区分 - 见名知意
标识符起的名称需要有具体的含义
6.变量
-
含义
一个值会发生具体变化的量 -
使用方法
声明——>赋值
*= 赋值符号,该符号会将后面的值赋值到前面的数据上
例:
即是将”oiiaioiiai“这个值赋值给cat变量String cat = "oiiaioiiai";
-
先声明后赋值
数据类型 数据名;
数据名 = 数据值;例:
int a; a = 114514;
-
声明赋值同时进行
数据类型 数据名 = 数据值;
例:
int a = 114514;
-
-
数据类型
-
引用数据类型
例:String 字符串类型 -
基础数据类型
四类八种数据种类 包含的数据类型 整数类型 byte short int long 浮点类型 float double 布尔类型 boolean 字符类型 char -
整数类型
(数值由小到大的排序)
byte short int long
如果是long类型数据的赋值,需要在后面加上一个L,例:long a = 114514L;
-
浮点类型
单精度浮点类型 float
双精度浮点类型 double
float类型数据赋值时需要在结尾加上F,例:float a = 114.514F;
-
布尔类型
boolean
值仅包括true 和 false -
字符类型
char
赋值时只能将单个字符的值写入,且需要在字符的旁边加上’’ 例:char a = '寄';
-
-
数据类型转换
- 隐式转换
小的数据类型转为大的数据类型赋值时直接转换 - 强制转换
- 大的数据类型转为小的数据类型赋值时需要进行操作才能转换
- 小数据类型 变量名 = (小数据类型)大数据类型或大数据类型的值; 例:
*该方法不能对所有种类不同的数据进行转化int a = (int)114.514;
- 隐式转换
-
7.运算符
-
算术运算符
+ - * / 取余符号%,得到一个数被另一个数除之后剩下的余数
例: 5 % 2 等于1
-
赋值运算符
= += -= *= /= %=
例:a += b实际上就是得到 a + b 的结果
-
比较运算符
符号 | > | < | >= | <= | == | != |
---|---|---|---|---|---|---|
解释 | 大于 | 小于 | 大于等于 | 小于等于 | 等于 | 不等于 |
-
关系运算符
- &(与符号)和&&(短路与)符号
- 相同:两边的条件都符合返回true,否则返回false
- 不同:短路与在判断有false时就会停止对下一个条件的判断
- |(或符号)和||(短路或符号)
- 相同:两边的条件都不符合返回false,否则返回true
- 不同:短路或在判断有true时就会停止对下一个条件的判断
- ^ 亦或符号
两个条件中有一个false即为true - ! 非符号
返回与原条件相反的布尔值,即true变false false变true
- &(与符号)和&&(短路与)符号
8.代码的执行顺序
-
顺序执行
按正常的代码顺序从上到下,从左到右的进行执行
-
条件执行
if(判断条件1(一个布尔类型的值)){
条件1满足后执行的代码;
}else if(判断条件2(一个布尔类型的值)){
条件2满足后执行的代码;
}else{
以上条件都不满足时执行的代码;
}*其中,条件2不能与条件1一致
switch(进行匹配的变量){
case 匹配条件1:
匹配上之后执行的代码;
break;
case 匹配条件2:
匹配上之后执行的代码;
break;
default:
变量匹配不上值之后执行的代码;
break;
}*case穿透现象:当case下的代码没有写break,变量会向下继续判断是否匹配其他条件,并执行匹配后执行的代码
-
循环执行
-
for循环语句
- 基础for循环
for (初始条件; 判断条件;条件变化(内部代码执行后执行)) {
当满足判断条件时执行的代码;
}- foreach循环(准对于数组进行操作)
for(数组中数据对应的类型 数据名 : 数组名){遍历期间执行的代码}
-
while循环语句
while(判断条件){满足判断条件后执行的代码;}
do{满足判断条件执行的代码;}while(判断条件)
*与while循环的区别在于,循环中的代码会先执行一次之后再进行判断看是否进入循环
-
*9. 键盘录入的使用
- 导入键盘录入类Scanner的包
- 创建键盘录入对象
- Scanner 键盘录入对象的名称 = new Scanner(System.in);
- 调用方法即可返回键盘录入的值
- *常用的方法
next();
nextInt();
*附图:
希望这篇文章可以帮助到你。
——weakest