Java学习------第一周知识点总结

此内容皆为本人集大众而所想,可能有误,希望路过的朋友指点出来,也欢迎各位和我共同交流,共同进步!


一、何为java?Java的运行过程以及分类?如何在电脑中编写并运行一个Java程序?Java有何特点?

一、
1、何为Java?
①一种和计算机沟通的一种工具;能够帮我们解决问题。
②编程语言分为机器语言,高级语言;计算机只能识别1和0两种编码,即为二进制,即为机器语言;而高级语言,计算机不能直接识别;让人类直接编机器语言,则太过复杂,成本高;因此人类发明了高级语言,Java即为高级语言中的一种。
③其中,显然计算机不能直接识别高级语言,因此需要编译器将高级语言编译为机器语言。
2、Java的运行过程?
①编程语言按对编译器的使用方法的不同,可分为编译型语言、解释型语言、以及编译解释型语言;
编译型语言 :将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。(即整个程序代码全部完成后才通过编译器执行每一条语句的编译,运行效率高,但特别依赖编译器,因此跨平台性差)
解释型语言 :和编译型语言不同的时,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。(即程序的源代码只要完成一句,编译器即刻翻译,错误则终止此句以下的编译,每个语句都是执行的时候才翻译。效率比较低,依赖解释器,跨 平台性好)
编译型语言和解释性语言

③编译解析型语言:既有编译过程,也有解释过程;Java就是这种语言的代表;

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,数组,类;

数据类型之间的转换规则:

  • 大类型转小类型时,发生强制类型转换:小类型 变量名 = (小类型) 大类型数据;

  • 小类型转大类型时,发生自动类型转换(隐式转化)。

  • 浮点数转整数时,可能发生精度丢失,所以也要发生强制类型转换。

  • 整数转浮点数时,因为保存方式不同,浮点数的范围远远大于整数,所以不会发生错误,可以直接转换。发生自动类型转换(隐式转化)

    自动
    自动
    自动
    自动
    自动
    type
    short/char
    int
    long
    float
    double

三、何为表达式?表达式中有哪些运算符?他们之间有何规则与规律?

1、表达式:多个运算数参与运算就组成了一个表达式: b + c

  • 在参与运算的过程中,存在不同的数据类型,最终的结果类型为其参与运算中最大的那个数据类型。
  • 在表达式中使用整型时,Java会把小于int类型的数据转为int类型后再参与运算。( + - * /)

2、运算符:

  1. 分割符:, ; {}

  2. 赋值运算符: =

  3. 算术运算符: +,―,*,/,%,++,― ―

    ①++以及–的使用:

    Ⅰ、++和–在前则先进行自身的递增,再将递增或递减后的结果赋值于表达式中

    Ⅱ、++和–在后则先将自身的结果代入表达式,再进行自身的递增或递减。

  4. 关系运算符: >,<,>=,<=,==,!=

    此处结果为boolean类型之中的任一数值,true或false;

  5. 布尔逻辑运算符: !,& , | , ^ , &&,||

    与:两式有一假即为假,两式都为真才为真;
    &:-即使左边式子的操作结果为false,也不会结束右边式子的运算;
    &&:-左边式子的操作结果为false,则输出最终结果为false,而右边的式子不参与操作; 或:-两式有一真即为真,两式都为假则为假;
    |:-即使左边的式子的操作结果为true,也不会结束右变式子的运算;
    ||:-左边式子的操作结果为true,则输出去最终结果为false,而且右边式子不会参与操作;
    非: ! -非假即为真,非真即为假;

  6. 位运算符: &,|,,~ , >>,<<,>>>

    位运算符:输出结果为整型数据的操作,主要为二进制的运算
    与&:按位比较,都为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补齐(忽略符号位)

  7. 扩展赋值运算符:+=,―=,*=,/=, %=

  8. 字符串连接运算符: +

  9. 造型操作符:()

  10. 三目运算: ?:

    语法定义:条件 ? 结果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:
            代码块1break;
        case 常量2:
            代码块2break;
        case 常量3:
            代码块3break;
        ...
        default:
        	代码块4break;
}
//变量表达式:变量表达式可以为某个变量,数据类型可以为: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:终止此次循环,进行下一次循环;

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页