此内容皆为本人集大众而所想,可能有误,希望路过的朋友指点出来,也欢迎各位和我共同交流,共同进步!
一、何为java?Java的运行过程以及分类?如何在电脑中编写并运行一个Java程序?Java有何特点?
一、
1、何为Java?
①一种和计算机沟通的一种工具;能够帮我们解决问题。
②编程语言分为机器语言,高级语言;计算机只能识别1和0两种编码,即为二进制,即为机器语言;而高级语言,计算机不能直接识别;让人类直接编机器语言,则太过复杂,成本高;因此人类发明了高级语言,Java即为高级语言中的一种。
③其中,显然计算机不能直接识别高级语言,因此需要编译器将高级语言编译为机器语言。
2、Java的运行过程?
①编程语言按对编译器的使用方法的不同,可分为编译型语言、解释型语言、以及编译解释型语言;
②编译型语言 :将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。(即整个程序代码全部完成后才通过编译器执行每一条语句的编译,运行效率高,但特别依赖编译器,因此跨平台性差)
③解释型语言 :和编译型语言不同的时,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。(即程序的源代码只要完成一句,编译器即刻翻译,错误则终止此句以下的编译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好)
③编译解析型语言:既有编译过程,也有解释过程;Java就是这种语言的代表;
Java的运行过程:
由上图可知,Java程序源代码完成后,通过Java编译器生成了字节码文件(.class文件),再通过Java虚拟机,根据对应计算机的系统,运行对应的虚拟机解释运行;由此可以知道,Java的一个特点,Java虚拟机使得跨平台性;
3、Java分类
JavaSE:
Java的基本版本,包含java的基本语法,Java中的类库。可以做桌面APP开发。几乎没有使用。JavaEE:
企业级服务器框架,在JavaSE的版本上完成了扩展。使其更加适用于服务器的开发。淘宝天猫的后台,qq微信的后台,银行的后台。JavaME
:Java精简版,在JavaSE的版本上进行精简,使其能够更好的适应嵌入式设备。机顶盒。使用的比较少。
4、电脑中如何编写一个Java程序?
①安装JDK:
JDK:
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。
JVM
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
②配置环境变量:(告诉计算机Java相应文件的位置)此处需要告诉计算机几个文件夹的位置
Ⅰ、Path: PATH是计算机名词,功能是设备可执行文件的搜索路径。
Ⅱ、JAVA_HOME:电脑中JDK的安装路径
Ⅲ、CLASS_PATH:在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包
Ⅳ、配置完成后可于命令提示符里输入“javac -version”
检查是否安装成功和Java版本;
③编写Java文件;
④用javac xx.java
:编译源代码,生成xx.class文件;此处xx为类名;
⑤ java xx:执行xx.class文件;
5、Java有什么特点?
- 跨平台性
- 面向对象
- 垃圾回收机制
- 多线程
二、Java中的关键字、标识符和变量?以及标识符的命名规则?数据类型又有哪些?
1、关键字:Java中事先定义的,有特别意义的标识符,有时又叫保留字。系统定义了以下关键字:
2、标识符:标识符包含类名、方法名、变量名,为开发者自己定义的一些具有特殊意义的字符段。
3、标识符的命名规则:
-
标识符必须由 数字、字母、_、$ 构成。
-
标识符不能以数字开头。
-
标识符严格区分大小写,a1, A1是不同的,是两个变量。
-
标识不能是关键字。
-
标识符要做到见名知意。标识符要具有语义化。
-
我们在定义名称的时候请使用英语,不要使用拼音!!!
-
因为定义标识符的过程中需要具有语义化,所以可能用到多个单词:String username;
- 类名(接口):大驼峰命名规则:定义类名/接口名时从第一个单词开始首字母大写:
UserName
- 方法名、变量名:小驼峰命名规则:定义变量名/方法名从第二个单词开始首字母大写:
userName
- 类名(接口):大驼峰命名规则:定义类名/接口名时从第一个单词开始首字母大写:
4、变量:开发者自主定义的一些,可以存储数据的变量,在执行期间可以改变数值;
编写的定义语法:
-
数据类型 变量名;
-
数据类型 变量名=数据值;
-
数据先定义后使用;
-
局部变量试用前需先初始化
5、数据类型:(八种基本数据类型,3种引用数据类型)
基本数据类型:
①整型(四种):用于保存整数,不带小数点的数;在计算机中采用补码的形式保存数值;
默认为int
;(即一些整数常亮默认为int
,因此Java会把比int
类型小的整形转为int
进行运算)
Ⅰ、字节型byte:1个字节,八位二进制,首位为字符位,控制数值正负,因此范围为128127;
Ⅱ、短整型short:2个字节,-32768~32767
Ⅲ、整型int
:4个字节:-231~231-1
Ⅳ、长整形long:8个字节:-263~263-1
②字符:char:可为三种数值,一为Unicode编码,二为数字,三为单引号内的一个字符;
③布尔:boolean
,判断真假的数值,只有两个数值,真为true,假为false;
引用数据类型:String,数组,类;
数据类型之间的转换规则:
-
大类型转小类型时,发生强制类型转换:小类型 变量名 = (小类型) 大类型数据;
-
小类型转大类型时,发生自动类型转换(隐式转化)。
-
浮点数转整数时,可能发生精度丢失,所以也要发生强制类型转换。
-
整数转浮点数时,因为保存方式不同,浮点数的范围远远大于整数,所以不会发生错误,可以直接转换。发生自动类型转换(隐式转化)
三、何为表达式?表达式中有哪些运算符?他们之间有何规则与规律?
1、表达式:多个运算数参与运算就组成了一个表达式: b + c
- 在参与运算的过程中,存在不同的数据类型,最终的结果类型为其参与运算中最大的那个数据类型。
- 在表达式中使用整型时,Java会把小于int类型的数据转为int类型后再参与运算。( + - * /)
2、运算符:
-
分割符:, ; {}
-
赋值运算符: =
-
算术运算符: +,―,*,/,%,++,― ―
①++以及–的使用:
Ⅰ、++和–在前则先进行自身的递增,再将递增或递减后的结果赋值于表达式中
Ⅱ、++和–在后则先将自身的结果代入表达式,再进行自身的递增或递减。
-
关系运算符: >,<,>=,<=,==,!=
此处结果为
boolean
类型之中的任一数值,true或false; -
布尔逻辑运算符: !,& , | , ^ , &&,||
与:两式有一假即为假,两式都为真才为真;
&:-即使左边式子的操作结果为false,也不会结束右边式子的运算;
&&:-左边式子的操作结果为false,则输出最终结果为false,而右边的式子不参与操作; 或:-两式有一真即为真,两式都为假则为假;
|:-即使左边的式子的操作结果为true,也不会结束右变式子的运算;
||:-左边式子的操作结果为true,则输出去最终结果为false,而且右边式子不会参与操作;
非: ! -非假即为真,非真即为假; -
位运算符: &,|,,~ , >>,<<,>>>
位运算符:输出结果为整型数据的操作,主要为二进制的运算
与&:按位比较,都为1才为1,0&0=0,0&1=0,1&0=0,1&1=1;
或|:按位比较,有1才能为1,都为0则0, 0|0=0,0|1=1,1|0=1,1|1=1;
非~:自身按位取反; 异或:按位比较,相同为0,不同为1,00=0,11=0,10=1,0^1=1;
有符号左移位<<:将整型数据转换成二进制,整体向左移动,低位用0补齐。
有符号右移位>>:将运算数的二进制整体右移指定位数,整数高位用0补齐,负数高位用1补齐(保持负数符号不变)。
无符号右移位>>>:不管正数还是负数,高位都用0补齐(忽略符号位) -
扩展赋值运算符:+=,―=,*=,/=, %=
-
字符串连接运算符: +
-
造型操作符:()
-
三目运算: ?:
语法定义:条件 ? 结果1 : 结果2 若条件为true则执行结果1,若为假,则执行结果2;
3、运算符的优先级
四、何为分支结构?分支结构中的if_else?switch语句?
1、分支结构:分支结构主要用于处理判定或选择问题。
2、if…else有三种结构
①单if结构:
//语法定义
if(条件块){
代码块
}
//条件块:为Boolean的值或判断语句,若成立(true)则执行代码块;若不成立(false)则不执行代码块;
②if…else结构:
//语法定义:
if(条件){
代码块1;
}esle{
代码块2;
}
//若条件为true,则执行代码块1;若条件为false则执行代码块2;
//两个代码块中只能其中一个,且必须执行其中一个;
③if…else if…else结构:
//语法定义:
if(条件1){
代码块1;
}else if(条件2){
代码块2;
}else if(条件3){
代码块3;
}...{
...
}else {
代码块4;
}
//条件1为true,则执行代码块1;否则进入下一语句条件2的判定;
//条件2为true,则执行代码块2;否则依次进入下一语句的判定,并执行对应代码块或下一判断;
//所有判断都不成立,则执行代码块4;
//所有代码块只能执行一个,也必须执行其中一个;
3、switch语句:用于对某个确定值的判断并选择;
//语法定义:
switch(变量表达式){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
case 常量3:
代码块3;
break;
...
default:
代码块4;
break;
}
//变量表达式:变量表达式可以为某个变量,数据类型可以为:int、short、byte、char、String和枚举;
//常量数值类型必须和变量表达式相同;
//switch终止的条件,再未能有条件与case相呼应,则执行defau的代码块,后遇到break终止switch分支
//若执行代码块后,未有break终止符,则不再参与任何筛选,自上而下的顺序执行代码,直到遇见break或终止符};
五、何为循环结构?有哪几种?for、while和do…while的用法?
1、循环结构:需要反复执行某个功能而设置的一种程序结构;
2、for
//语法结构:
for(变量的初始值;循环条件;循环执行一次后变量的变化){
//代码块;循环体
}
例子:
for(int i=1;i<10;i++){
代码块
}
//变量初始值为开发者根据需求定义,循环条件成立则执行代码块;
//代码块结束后,进行变量的变化,进行第二次判断;
//判断若为false,则不执行循环体,终止循环,跳出循环。
3、while
//语法结构:
while(判断条件){
//代码块;循环体
}
例子:
while(i<10){
代码块
}
//与for相比,while循环并不会在一次循环后进行自设变量的变化,
//它只会进行判断条件的判定,若为true,则继续执行代码块,否则跳出循环;
4、do…while
//语法结构:
do{
代码块;
}while判断条件)
例子:
do{
代码块;
}while(i<10)
//该结构为whle的另一种改变,和while不同的时,此处先执行一次,后再进行判断;
//若为true,则继续执行代码块,否则跳出循环;
5、循环体中break和continue的应用
①break:不执行break以下的代码,并完全跳出该循环
②contine
:终止此次循环,进行下一次循环;
并不会在一次循环后进行自设变量的变化,
//它只会进行判断条件的判定,若为true,则继续执行代码块,否则跳出循环;
4、do...while
```java
//语法结构:
do{
代码块;
}while判断条件)
例子:
do{
代码块;
}while(i<10)
//该结构为whle的另一种改变,和while不同的时,此处先执行一次,后再进行判断;
//若为true,则继续执行代码块,否则跳出循环;
5、循环体中break和continue的应用
①break:不执行break以下的代码,并完全跳出该循环
②contine
:终止此次循环,进行下一次循环;