第一章:Java的环境

Java是一种计算机编程语言,编程语言有很多,例如:c、c++、html/css、js、python(人工智能、爬虫)等

不同编程语言等价于 不同国家的语言;每个编程语言的语法不同的;不同的编程语言应用场景不同;

Java是应用在后端开发的一个编程语言。

                                      

一、Java的历史

1、1955年,sun公司推出的一款面向对象的编程语言

2、jdk是Java开发的必要工具

97  jdk1.1

98  jdk1.2

....

2004:jdk1.5版本,更名为:jdk5.0

         推出新特性:泛型,增强的for等

          ....

         jdk6.0

         ...

         jdk8.0 ->企业很多使用(Labda表达式,stream流)

         ....

         jdk18.0

         ....

2009年sun被 Oracle(甲骨文)收购

Java发展方向分为:【记】

        JavaSE:Java语言核心基础

        JavaEE:企业级开发应用

        JavaME:通讯相关

二、Java语言的特点

1.简单性:相对c、c++等

2.开源性:开放源代码

3.资源广泛

4.跨平台:可以在不同的操作系统上运行Java程序

windows+macOS+Linux等

5.面向对象性:后续会讲解

三、Java运行机制

1.Java为先编译后解释运行

(1)编译:将Java源文件通过 ->编译器->生成对应的 .class文件(字节码文件)

                                                                                    java的源代码是 以 .java结尾

  (2) 运行:直接通过 解释器 ->逐行的翻译并运

2. 注意:

.java文件 一次编译之后,可以被多次运行

(.class)

四、环境搭建

1. 名词

(1) JVM:java虚拟机,作用:屏蔽不同操作系统 之间差异性

(2) JRE:Java运行环境,JRE = 解释器+ JVM

(3) JDK:Java开发工具,JDK = 编译器+JRE+类库+工具

2. 安装JDK:

点击软件 -> 下一步 默认存储在 C盘中;JDK安装之后没有可视化界 面;

DOS命令窗口:

  (a) 在 搜索中输入 cmd,回车即可  

  (b) 系统键 + R ,输入 cmd;回车即可

  (c) 盘符中的 输入框中 输入 cmd,回车即可

3. 配置环境变量:

(1) java_home:jdk的根目录    

C:\Program

Files\Java\jdk1.8.0_131

  (2) path:jdk的bin目录    

C:\Program

Files\Java\jdk1.8.0_131\bin

(3) classpath:.;代表告知jvm去哪找对应

的.class文件

五、Java的第一个程序

1. Java源文件:.java结尾

2. class代表类容器

class 类名{  

public static void main(String[ ] args){  

      }

}

注意:main函数也被称为主函数,程序的入口,一 个类中最多只能有一个main函数; System.out.println();// 控制台打印输出信 息,并换行

class Hello{

public static void main(String[] args){

System.out.println("HelloWorld!!");

     }

}

3. 编译和运行

编译指令:javac 源文件名.java

运行指令:java 类名

4. 细节:

(1) 一个源文件中可以定义多个类;类与类之间不 能同名

(2) 编译之后,每个类都会生成对应的 .class文件

5. 公开类:

(1) 公开类:被public修饰的类称为公开类、公 共类

(2) public :公开的、公共的

(3) 语法:   public class 类名{ }

(4) 要求:公开类的类名必须和源文件保持一致

(5) 一个源文件中最多只能定义一个公开类

六、package 包 

1. 作用:类似于文件夹,分门别类的进行管理文件

2. 语法:

package 包名; package 包名

1.包名2; // 多级包结构

3. 细节要求:

(1) package语句必须定义在第一行有效语句

(2) 一个源文件中最多只能定义一个 package语句

4. 带包的编译和运行

(1) 编译:javac -d . 源文件名.java

(2) 运行:java 包名.类名

创建一个源文件:TestStudent.java,定义包结 构为

demo.zmj;源文件中要求定义公开类:

打印信息为:大家好我叫 自己的名字

编译 和 运行 打印输出结果

七、编码规范

1. 标识符命名规范

标识符:起名字的地方统称为 标识符

语法要求:

(1) Java中标识符只能以数字、字母、_、$组 成,不能以数字开头

(2) java中标识符没有长度限制

(3) java中标识符严格区分大小写

(4) 不能使用Java中关键字、保留字、特殊符号 (true/false/null)进行

建议要求:

(1) 望文生义,Student / Teacher / name

(2) 包名全小写: demo

(3) 变量名、函数名、方法名:第一个单词首字母 小写,其余单词首字母大写(驼峰命名)         ageAndName

(4) 类名:每个单词首字母大写,TestStudent 

(5) 常量:全大写,PI

2. 格式规范:

(1) 建议一行只写一句代码

(2) 层级之间要有严格的缩进

3. 良好的注释习惯:

(1) // :单行注释,只能写一行注释内容

(2) /*

多行注释:可以写多行内容  

*/  

  注意:单行注释不能嵌套多行注释,但是多行注释 可以嵌套单行注释

注意2:注释内容不会被编译

第二章:变量、数据类型、表达式、运算符

一、变量

  1. 概念:计算机中一块内存空间,存储数据的基本单元
  2. 组成部分:数据类型 、变量名、数据
  3. 语法:

(1) 先声明,再赋值  

        数据类型 变量名; // 声明  

        变量名 = 数据 ; // 赋值    

  (2)  声明的同时并赋值:   

        数据类型 变量名 = 值;  

        int a = 8;     

  (3) 同时定义多个同类型的变量:

       数据类型 变量名1,变量名=值,变量名;

 二、数据类型

1. 基本数据类型

B(Byte-字节) 1B = 8b(bit-位)

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

10.24号 称为程序猿节日

(1) 整数类型  

byte    1B   -128~127  

short   2B   -32768~32767  

int       4B   -2147483648~2147483647  

long    8B   -922京~922京-1      

注意:long字面值后面需要加L/l(建议L,区 分数字1)

(2) 小数类型  

float:4B,单精度,字面值后面必须加F/f  

double:8B,双精度      

注意:float和double采用科学计数法的存 储方式

(3) 字符类型  

char 2B  

字面形式如下:    

a. 直接使用 单引号引起来一个字符      

char c = 'A';  

b. 采用整数类型的形式进行存储:0~6553 

char c2 = 65;  

c. 转义字符:    

  '\n':换行      

  \t':水平跳格    

  '\' ':单引号    

  '\" ':双引号

(4) 布尔类型: 

 boolean :字面值 true/false      

 true:关系成立  

 false:关系不成立

 2. 对象数据类型

(1) 类、接口、数组等称为对象类型

(2) 以 String(字符串)为例:

  a. 以双引号引起来的一个或是多个字符

  b. 字面值:    

      String s = "hello";

三、数据类型之间转换

1. 自动类型提升

(1) 应用场景:小数据类型 赋值 给 大数据类型

(2) 提升规则:  

  byte->short->int->long->float- >double    

  char-> int -> long -> float ->double

四、表达式

1. 理解:表达式通常由 字面值、运算符、变量组 成式子,一般会有一个结果

 2. 表达式结果规则如下:

(1) 如果表达式中有double,则结果为double;

(2) 没有double,如果有float,则结果为 float

(3) 没有double\float,如果有long,则结果

为long

(4) 其余结果为 int

五、运算符

1. 算术运算符

+   -     *(乘法)   /(除法)   %(取余 数/取模)

Java中的+两种用法:

(1) 加法运算:如果+两端都为数值类型,则为加 法运算

(2) 字符串拼接:如果+两端只要有一端为字符 串,则结果为字符串的拼接

2. 赋值运算符

=     +=   -=   *=   /=

3. 比较运算符

>   >=   <   <=   ==     !=(不等于)

注意:关系运算符连接表达式结果类型为布尔类 型,

所以被关系运算连接的表达式称为布尔表达式 (结果:true/false)

4. 逻辑运算符

&&:逻辑与,表达式两端结果都为true,最终才为 true

||:逻辑或,表达式两端只要有一端为true,最终 结果为true

!:逻辑非,在结果上进行取反

5. 一元运算符

++(自增)           --(自减)

a++ 或是 ++a;两种写法都会让 a 自身加1

a-- 或是 --a;两种写法都会让 a 自身减1

以上开发应用足以,以下内容作为考试/面试应用:

int c = a++; // 先使用再加1

int c = ++a; // 先加1再使用

6. 三元运算符(三目运算符)

(1) 语法:  

布尔表达式?表达式1:表达式2

(2) 原理:判断布尔表达式的结果是否为true,

是-执行表达式1,否则执行表达式2

六、Scanner扫描仪

1. 作用:提高人机交互

2. 使用步骤:

(1) 导包:  

import 包名1.包名2.类名;  

import 包名1.包名2.*;

注意:import语句定义在package语句的后面, 所有类的上面

(2) 创建Scanner对象:  

Scanner sc = new Scanner(System.in);    

(3) 使用:  

int a = sc.nextInt();//输入一个整数  

double d = sc.nextDouble();//输入 一个小数  

String str = sc.next();//输入一个字 符串  

char c = sc.next().charAt(0);//入一个字符

第三章:分支结构

一、if分支

1. 基本语法:

if(判断语句){  

// 语句1

}

如果()中判断结果为true,执行{}中的语句1;否 则不执行

2. 基本语法2:

(1) 语法:  

if(判断语句){    

// 语句1

  }else{  

    // 语句2

  }

(2) 执行原理:如果判断条件成立,结果为 true,则执行语句1,否则执行语句2

3. 多重的if结构:

(1) 语法:

  if(判断语句){      

    // 语句1  

}else if(判断条件2){    

    // 语句2  

}else if(判断条件3){  

    // 语句3  

}else{    

    // 语句n  

}

4. if嵌套结构

(1) 语法:  

if(判断条件1){    

  if(判断条件2){      

    // 语句    

  }else if(判断条件){              

    }else{}  

}else{    

  if(){}else        

  }

(2) 执行原理:先判断外层的if条件,再判断内层

二、等值分支结构

1. 语法:

switch(表达式){  

case 值1:语句1;break;

case 值2:语句2;break;  

case 值3:语句3;break;  

...  

default:语句n; break;

}

2. 细节:

(1) 表达式的结果类型:

byte/short/int/char/String

(2) break:终止swtich结构,防止case穿透

三、局部变量

1. 概念:定义在函数/方法内部的变量

2. 特点:

(1) 必须是先赋值,再使用

(2) 作用范围:从定义位置开始,到定义它的代码 块结束

(3) 在重合的作用范围内不允许命名冲突

第四章:循环结构

一、循环

1. 理解:通过某个条件,重复并且有规律的执行一 段代码

2. 组成的部分:循环变量的初始化、循环条件、循 环变量的改变、循环体

3. 循环分类:

while循环、do..while循环、for循环

二、while循环

1. 语法:

// 循环变量的初始化

while(循环的条件){  

// 循环体  

// 循环变量的改变

}

2. 特点:先判断,再执行,执行的次数 0~n次

3. 注意:如果条件或是初始化给的不合适,可能出 现死循环

4. 执行原理:

先执行循环初始化语句,进入到while进行条件判 断-满足条件,结果为true,则执行{}中的循环 体,接着执行循环变量的改变,再次判断循环条 件,满足,继续执行循环体,执行循环变量改 变....直到循环条件不满足,结果为false,终 止、跳出当前循环结构,执行后续内容....

三、do..while循环

1. 语法:

// 循环变量的初始化

do{  

// 循环体  

// 循环变量的改变

}while(判断条件);

2. 特点:先执行,再判断,执行的次数为1~n次

四、for循环【重点:考试+开发应用】

1. 语法:

for(循环变量的初始化;循环条件;循环变量的改 变){  

// 循环体

}

2. 特点:先判断,再执行,执行的次数为 0~n次

3. 执行原理:

先执行循环变量的初始化,再判断循环条件,满足结果为true,则执行循环体,再执行循环变量的改 变;然后再次的判断循环条件....直到循环条件结 果为false,终止、结束循环结构

4. 细节:

(1) 如果循环条件没有写,则默认为true

(2) 如果条件或是循环变量的初始化不合理,可能 会出现死循环

五、循环控制语句

1. break:终止、结束当前循环

2. contiune:中止、结束本次循环,从而进入下一 次循环

六、循环嵌套

1. 理解:在循环结构中定义完整的循环结构

2. 利用外层循环控制控制行,内层循环控制列

第五章:函数

一、理解

1. 函数:执行特定功能的一段代码,并且可以通过 名字进行反复的使用

2. 函数的使用流程:

(1) 函数的定义:确定函数的功能和函数名字

     函数的声明:确定函数的名字  

     函数的实现:确定函数的功能

(2) 函数的调用:通过名字进行反复的使用

3. 函数的定义为:定义在类以内,其他函数以外 (与main函数并列的位置)

二、函数的基本定义及应用

1. 函数的语法:

public static void 函数名(){

  // 函数的实现

}

注意:函数名,望文生义,驼峰命名法(第一个单词 首字母小写,其余单词首字母大写)

2. 函数的调用:通过函数名使用

函数名();

3. 函数的参数:通常函数调用时,需要调用者和函 数之间有数据的交互,用户传递的数据,被视为 参数

(1) 形式参数:函数定义时,用于约定函数和调用 者之间传递的数据类型、个数、顺序  

a. 定义: (数据类型 参数名,数据类型 参数 名)  

b. 使用:形式参数就相当于函数内部的局部变 量  

(2) 实际参数:调用者进行函数调用时,传递的数 据  

  a. 语法:函数名(数据,数据2);

  b. 注意:实际参数的个数、顺序、类型必须形 参一致  

  c. 作用:实参用于给形参赋值

三、函数的返回值

1. 理解:函数和调用者之间的一种约定,约定函数 必须给调用者返回对应的数据

2. 语法:

public static 返回值类型 函数名(形参){  

// 函数体

}

3. 函数返回值的分类:

(1) 无返回值:void,代表函数无需给调用者返 回值任何数据

(2) 有返回值:返回值类型为8种基本数据类型或 是对象类型,代表函数必须给调用者返回对应数 据,必须有:return xxxx;

4. 返回值的处理:

(1) 不处理:对返回值结果不进行任何接收处理

(2) 定义同类型的变量,进行接收处理

5. return作用:

(1) 结束当前函数

(2) 将函数的结果进行返回

四、函数的执行机制

程序以main函数作为程序的入口,从上往下执行,遇 到函数调用,则优先执行被调用函数内部代码,执行 完毕之后,返回值到调用位置,继续往后执行 一个函数内部调用自身,此调用被称为递归调用

第六章:数组

一、理解

1. 数组:一次性定义多个相同类型的变量,存储多 个数据,并且可以对多个变量进行统一管理

2. 数组的定义:

(1) 先声明:   数据类型[] 变量名 ;

(2) 分配空间:   变量名 = new 数据类型[长度];

3. 数组的语法细节:

(1) 数组的下标从0开始,依次为:0、1、2...长 度-1

(2) 数组的访问,通过数组名+下标:数组名[下 标]

(3) 如果访问数组时,超过了数组的有效下标,则 编译通过,运行报错,错误信息为: java.lang.ArrayIndexOutOfBoundsExcept ion(数组得的下标越界)

(4) // 数组的遍历  

for(int i=0;i<5;i++){ System.out.println("i="+i+",下标 对应的数据为:"+ages[i]);

}

(5) 获取数组的长度:数组名.length

4. 数组具有默认值: 

整数类型:0

小数类型:0.0

布尔类型:false

字符类型:空字符

对象类型:null 

5. 数组的不同定义方式:

(1) 先声明,再分配空间  

数据类型[] 数组名;  

数组名 = new 数据类型[长度];

(2) 声明的同时,并分配空间:  

数据类型[] 数组名 = new 数据类型[长 度];

(3) 声明的同时并初始化:

  数据类型[] 数组名= {值1,值2,值3};

(4) 声明的同时并初始化:

  数据类型[] 数组名=new 数据类型[]{值1, 值2};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值