javaEE第一阶段知识点

day01

一 : 第一阶段基础语法

1. 基础语法(Java基本概述、注释、关键字、标识符、注释、变量、常量、数据类型、数据类型转换、流程控制、方法、数组)(周考)

2. 核心部分:面向对象(周考)

3. API应用:String、集合体系(数据结构)、IO流(周考)

4. 多线程、线程池、网络编程(聊天室)、Java8新特性(月考)

 JAVA语言的发展:

1. 诞生:1994年由詹姆斯·高斯林组建的开发团队开始研发(绿色计划),研发的目的是想要开发一种能够在电子移动设备上使用的框架,最终研发出Oak语言。后面改名成Java

2. 发展: 1996年由sun公司发布 Jdk1.0

 2004年发布 JDK1.5,这个是一个里程碑式的版本,这个版本中将Java分为三个不同的体系;目的是:让编程人员使用不同的版本去完成不同的编程需求

JavaSE: 桌面级应用开发(桌面安装程序)

JavaEE:PC端互联网开发(网站开发)

JavaME: 移动应用开发(安卓、IOS开发)

2006年发布6版本(sun公司发布的最后一个版本)

2009年sun公司被收购(甲骨文 Oracle),市值74亿美元

2011年由 oracle 发布 jdk 7

2014年由 oracle 发布 jdk 8(目前市场上主流版本,提供很多提升开发效率的新特性;兰姆达表达式、函数式接口、Stream流等等) ···········

目前最新版本已经是 jdk 16

JAVA语言的特点

1. 开源、开发源代码(免费使用)

2. 跨平台

3. 面向对象

4. 编译性

5. 动态性

JAVA语言的应用:

1. 数据分析(爬虫技术)

2. 游戏开发(我的世界—java)

3. app开发

4. 网站开发(服务端开发、后台开发)

 

Java跨平台的原理:

原理:在Java代码编译成字节码后,针对不同的操作系统营造出相同的运行环境,使得同一套代码可以在不同的操作系统上运行,从而达到跨平台效果

原理:在Java代码编译成字节码后,针对不同的操作系统营造出相同的运行环境,使得同一套代码可以在不同的操作系统上运行,从而达到跨平台的效果JDK:(Java development kit)Java的开发工具包,给编程人员编程中使用的工具就放在这里;例如:编译源码时用的工具 javac.exe;运行代码是使用工具 java.exe;将代码编译成文档时使用工具 javadoc.exe. JRE:(Java Runtime Evrinoment)Java的运行环境,是 Java 程序运行时必须的一个条件JVM:(Java Vitrual Machine)运行 Java 代码时的一个虚拟的计算机,这一块时 Java 实现跨平台的根本

DOS命令的使用

1. 人机交互方式:

① 通过计算机指令实现:复杂、有难度,上手不易;需要记忆大量的计算机指令

② 通过图形化界面实现:简单、方便、操作易上手2.

DOS命令操作方式

① 打开命令提示符: window + r –> cmd –> 回车 开始菜单 –> 搜索 cmd –> 点击命令提示符JDK的安装 JDK安装目录介绍 Java程序的开发 开发的步骤 HelloWorld案例  直接在磁盘地址栏输入 cmd 回车

② 常用的 DOS 命令

切换磁盘路径:盘符 + 冒号

显示当前目录下所有的文件:dir

进入某个目录:cd 目录的名字

清空dos命令:cls

创建新目录:md + 目录的名字 或者 mkdir + 目录的名字

删除目录:rd + 目录的名字 或者 rmdir + 目录的名字

删除文件:del + 文件名

退出dos命令:exit

创建文件:echo > 文件名

JDK的安装

1. 下载:www.oracle.com,需注册

2. 安装:尽量不要装在系统盘(尤其是win10系统),安装过程中可以选择安装路径,还有提示是否需要安装独立的JRE,只需按照指示点击安装即可

3. 验证安装是否成功:找到 JDK 的 bin目录打开cmd,在cmd中输入命令 java -version;如果在dos中显示了当前jdk的版本信息表示安装成功;否则就需要卸载重装

4. JDK卸载:控制面板 –> 程序 –> 卸载 –> 重装

JDK安装目录介绍

① bin目录:各类开发工具,都是可执行文件,常见javac、java这些都在此目录下

② db目录:java 自带的一个很小的数据库

③ include目录:c语言头文件,支持Java开发的接口

④ jre:运行环境

⑤ lib:可执行的工具,或者jar包存放的地方

⑥ javafx-src-zip:fx源码

⑦ src.zip:JDK的源码

Java程序的开发步骤

① 创建源文件,用来些 Java 代码的文件

② 写代码

③ 源码编译,将源文件编译为字节码文件;(.java –> .class)使用 javac 命令实现编译 使用方式:javac 源文件名(带后缀)

④ 运行字节码文件;使用 java 命令实现运行 使用方式:java 字节码文件名(不含后缀)

② 写代码

③ 源码编译,将源文件编译为字节码文件;(.java –> .class)使用 javac 命令实现编译 使用方式:javac 源文件名(带后缀)

④ 运行字节码文件;使用 java 命令实现运行 使用方式:java 字节码文件名(不含后缀)

HelloWorld案例
① 在 JDK 的 bin目录中创建源文件

② 写代码

a.先声明一个类:

public class HelloWorld{
     }

b.程序执行的入口(main方法):

public class HelloWorld{  public static void main(String[] args) {  

System.out.println(“hello world”);

 }  

}

③ 编译:当前目录下打开cmd,输入命令 javac HelloWorld.java;之后会在当前目录下自动新建一个文件 叫做:HelloWorld.class

④ 运行:直接在当前cmd中,输入命令 java HelloWorld ; 执行程序

环境变量的配置

① 需要找到jdk的bin目录,比较麻烦(配置环境变量来解决)

② 如果代码出现错误,不好发现,不易操作(通过更换编程软件来解决)

③ 格式上不好看。需要手动调整

Path环境变量的配置
① 原因:方便在任意的目录下都你能够访问到需要的命令‘

② 配置的方式:

a. 找到环境变量配置: 第一种方式:计算机 –> 属性 –> 高级系统设置 –> 环境变量 第二种方式:开始菜单搜索 path –> 编辑系统环境变量 –> 环境变量

b. 新建系统变量 新建变量名:JAVA_HOME 变量值:JDK安装路径(不带bin目录)例如与:D:javajdk1.8

c. 配置 path 变量

Win7系统:找到系统变量中的 path 变量 –> 双击 –> 按下键盘上的 home 键 –> 鼠标的光标会出现在变量值得最前面,此时添加一个分号“;” –> 在分号的前面添加两个百分号“%” –> 在两个百分号的中间写上 JAVA_HOME –> 在第二个百分号的后面加上“bin”,配置完成,点击确定  

Win10系统:找到系统变量中的 path 变量 –> 双击 –> 选择新建 –> 输入%JAVA_HOME%bin –>完成配置,点击确定

Path环境变量配置检测
检测方式:任意的地址打开 cmd ,输入命令 java 或者 javac  

① 如果出现目录显示,表示成功;

② 如果出现不是内部或者外部命令,则表示配置失败配置失败的处理方式:

在 cmd 中输入 path 命令,查看结果中去查看 jdk 的路径是否正确,然后找到对应的位置进行修改配置成功后:

如果再进行JAVA程序的开发,不需要找 jdk 的 bin 目录,再任意的目录下都可以实现程序的开发

开发软件的安装

软件的介绍
1. 原始的开发软件:记事本、notepad++、Editplus

2. 集成的开发软件:Eclipse(扩展性强、免费)、MyEclispe(自带一些插件、收费)、IDEA(比较人性化、更多的模板、收费、此次选择的软件)

IDEA简介
1. 全名叫做 Intellij IDEA,是 JetBrains 公司研发的供与 java 语言的开发软件,是目前公认Java最好的开发工具,尤其是针对只能代码助手、代码自动提示、代码重构、J2EE的支持、测试单元、Maven、CVS整合等功能更加强大。

2. 下载:官网(正版)、或者百度搜索(破解版)

3. IDEA版本:

a. 旗舰版:功能更全、付费

b. 社区版:免费、功能不够齐全

day02

Java注释

① 功能:使用中文对程序中的代码进行解释说明,让编程人员可以更好的理解程序,更好的去梳理程序

② 注释的分类: a. 单行注释:符号为 // , 表示注释当前行符号后面的内容,不能换行

b. 多行注释:符号为 /* ····· */ ,注释的是两个星号中间的内容,可以换行(建议使用这个)

c. 文档注释:符号为 /** ···· */ ,注释的是两个星号中间的内容,可以换行;多用于对类的说明或者对方法的说明

③ 注意: 单行注释和多行注释不参与程序的编译和运行,是写给编程人员自己看的。

文档注释,如果是简单执行程序,那么更多行注释是一样的;如果需要将程序编译成文档时,文档注释就会参与编译 文档注释在编译文档时再来细讲

Java的关键字

① 概念:在当前jdk版本中被赋予了特殊含义或者具有某个特殊功能的英文单词

② 当前具有 48 个关键字,2个保留字(const / goto),所有的关键字英文单词都是小写的,在以后对于变量或者类···等等在进行命名的时候需要避免使用

Java的标识符

① 概念:就是一个不为空的字符序列,用来给类、接口、项目、包、变量、常量、方法进行命名

② 标识符的组成:

a. 可以使所有的大小写英文字母

b. 0 – 9的数字

c. 特殊符下划线“_”、和美元符号“$”

d. 不能以数字开头、也不能组成的英文单词是关键字或者保留字

③ 标识符的命名规范(见名知意)

a. 小驼峰式:一个单词的时候全部小写,2个或者2个以上单词时,从第二个单词开始首字母大写;针对变量、方法

b. 大驼峰式:所有的单词首字母大写其余字母小写;针对接口、类、枚举

c. 全部大写:所有的英文字母都大写;针对常量

d. 使用下划线:如果有2个或者2个以上的单词时,可以使用下划线进行单词之间的区分

 Java常量

① 概念:在程序执行过程当中不允许发生改变的数据

② 常量的分类

a. 根据表现形式分类

字面值常量:表示数据本身

符号型常量:表示的是另外一个具体的数据,

在写得时候可能不会知道数据是多少,只有程序运行后才知道符号型常量具体的值;需要先定义才能使用

b. 根据数据类型分类

整型常量:所有的整数

浮点型常量:所有的小数

字符串常量:所有用双引号引起来的字符序列,

字符序列允许为空

布尔型常量:true/false

字符型常量:所有用单引号引起来的单个字符,不能为空

空常量:null,表示当前对象没有分配内存空间

③ 区分以下常量 “”、”true”、”1.0″、5、’56’

 符号型常量的定义
① 格式: final 数据类型 常量名 = 值;

final:可译为最终的、终态的,不允许进行修改

② 符号型常量在定义的时候,必须赋值

java变量

① 概念:用来表示程序中那些可以发生改变的数据

② 变量的定义 第一种方式:声明和赋值同时进行 数据类型 变量名 = 值;

第二种方式:先声明,再赋值      数据类型 变量名;      变量名 = 值;  

一次性定义多个变量(所有的变量必须是同一个类型)  数据类型 变量名1,变量名2,变量名3;

③ 变量的使用:

a. 直接使用变量名来代替内存中的数据,也可以用变量名来修改内存中的数据

b. 没有定义的变量,不允许使用

④ 变量的本质 使用一个固定不变的名字,去表示内存中某个空间,空间内的数据允许修改

⑤ 内存分析 

 Java的数据类型

① 因为Java属于强类型的语言,在使用内存空间的时候,必须事先声明使用空间的大小,就使用java中预定义好的数据类型来进行空间的声明

② 数据类型的分类 基本数据类型:简单的数据(四类八种)

整型:建议使用 int,因为在 java 内存中整数默认都是 int 类型

浮点型:建议使用 double,因为在 java 内存中浮点数默认都是 double 类型

引用数据类型:数组、对象、类等等复杂的数据 都是存放在堆内存中

           
  

类型 名字  占的字节 储存空间
整型  byte     一个字节 -128 到 127
short  两个字节    -2^15 到 2^15-1
int  四个字节   -2^31 到 2^31 -1
long  八个字节  – 2^63 到 2^63 -1
浮点型  float  四个字节 1.4E-45 到 3.4028235E38
double   八个字节      4.9E-324到1.7976931348623157E308
布尔型 boolean    未知 true /false
字符型   char     两个字节  -2^15 到 2^15-1

变量定义问题处理方案

① 出现问题的原因:都是因为数据超出了范围

② float类型变量定义:需要在数据的后面加上一个F/f

③ long类型变量定义:如果数据超出 int 的范围则需要在数据的后面加上L/l 

 数据类型的转换
① 出现数据类型转换的原因:数据在运算的时候,不能保证所有的数据都是同一个类型,在运算的时候就需要必要类型之间进行转换

② 类型转换的方式

a. 自动转换:由小范围的数据到大范围数据转换时;无需编程人员操作,由系统自主完成 byte

b. 强制转换:从大范围类型到小范围类型的转换;就需要编程人员手动操作 格式:目标数据类型 变量 = (目标数据类型)数据;

注意:强制转换可能会得到错误的数据

③ 注意: 在有 int 或者 int 以下的类型参与运算时,会直接将数据类型变成 int 后再计算, 如果有 int 以上的类型参与运算,会将数据类型变成较大的数据类型再运算;

 字符类型的转换
① 计算机中数据在储存和运算时都是二进制补码,如果是字符那么在进行储存或者运算时,会自动的将字符解码;在计算机中进行显示的时候又会进行编码;

② 解码:安照一定的规则进行字符到数字的转换

③ 编码:按照一定的规则将数字转换成字符

④ 最开始的规则是由美国研发的一张表,叫做 ascll 表,能够将键盘上的字符转换成对应的数字

⑤ 每个国家自己的编码码都兼容 ascll 表,前 128 个和 ascll 是一样的

 字符串类型
① 属于引用数据类型,表示是一个不可变的字符串常量,

一旦对该字符串进行操作,实际上并没改变原有的字符串,而是会在内存中重新创建新的字符串

② 定义字符串格式: String str = “ashdahdakhdkahsd%汉字”;

day03

运算符

① 概念:用于变量(常量)运算的符号

② 运算符分类:

a. 算术运算符

b. 赋值运算符

c. 比较运算符

d. 逻辑运算符

e. 位运算符(进制的转换,原码、反码、补码)

f. 三元运算符

 算术运算符

符号  名称  运算规则   备注
+  加 加法运算,字符串拼接,表示整数 如果符号的两边任意一边是字符串就是在拼接,拼接后的结果任然是一个字符串
 减  减法运算,表示负数 
*  乘法运算
 /  除  除法运算
% 取余 取余数 余数的正负只与被除数有关;判断某个数的奇偶;取某个整数的各个位数上的数字;判断是否被整除
++   自增 在原有的基础上自增1  符号可以在变量的前面也可以在变量的后面
– –   自减  在原有的基础上自减1  符号可以在变量的前面也可以在变量的后面

       
自增自减符号位置不同时区别

① 符号可以卸载变量的两边: a++、++a、a–、–a

② 如果自增、自减作为一个独立的表达式,符号的位置在前和在后对于结果没有影响;都在实现自增或者自减

③ 如果在自增或者自减的过程中有参与了其他的运算,这个时候就需要看符号的位置

④ 符号在变量前面的时候,需要先进行自增或者自减再参与运算

⑤ 符号在变量的后面,需要先将值拿出来运算,运算完成后再进行自增或者自减

 代码演示

赋值运算符

符号 名称  运算规则
 赋值 将符号右边的数据赋值给左边的变量
+=   加,再赋值   先进行左边两边数据加法运算,再将运算的结果赋值给符号左边的变量
-=  减,再赋值   先进行左边两边数据减法运算,再将运算的结果赋值给符号左边的变量
*=  乘,再赋值   先进行左边两边数据乘法运算,再将运算的结果赋值给符号左边的变量
/=  除,再赋值   先进行左边两边数据除法运算,再将运算的结果赋值给符号左边的变量
%=   取余,再赋值   先进行左边两边数据取余运算,再将运算的结果赋值给符号左边的变量

  
 比较运算符

符号 名称  运算规则
==  等于  判断符号两边的数据是否相等;如果符号两边都是基本数据类型,比较的是数据值;如果是引用数据类型,比较的是数据的地址
!=  不等于
>,>=    大于,大于等于 只能用于能够自动转换成数字的类型进行比较,比较的是数值的大小
 小于,小于等于   只能用于能够自动转换成数字的类型进行比较,比较的是数值的大小

   
逻辑运算符

符号  名称 运算规则 备注

&,

&&

逻辑与  全真为真,否则为假 &&具有短路的效果,一旦遇到条件结果为false,会直接返回结果为false,后面的条件不在计算

|,

||

逻辑或    全假为假,否则为真   ||具有短路的效果,一旦遇到条件结果为true,会直接返回结果为true,后面的条件不在计算
!   逻辑非 取反 

代码演示

三元运算符

① 符号::

② 格式: 表达式1 表达式2 :表达式3

③ 运算流程:

先计算表达式1,计算结果要么是true,要么是false

如果表达式1结果为true,就选择计算表达式2,并且将表达式2的结果作为三元运算最终的结果

如果表达式1结果为false,就选择计算表达式3,并且将表达式3的结果作为三元运算最终的结果

④ 注意:

表达式1,必须是 boolean 表达式;通常使用比较运算符来实现

表达式2、表达式3,没有要求类型,但是它俩必须是同一个类型

三元运算的结果需要处理,处理方式:一是直接打印(结果不需要二次使用),而是存储到新的变量中(结果可能被反复使用)

⑤ 案例:比较2个整数的大小,输出较小值;

a. 定义2个整数型变量,值任意给

int a = 10,b = 20;

b. 比较2个数的大小,使用三元运算符来选择比较的结果

a > b b : a; c.

直接输出三元运算的结果,或者将结果存到一个新的变量中,再打印变量

// sout( a > b b : a )

int min = a > b b : a;

sout(min);

 进制
常见进制

① 生活中常见的进制:逢XX重新开始计算 十进制 七进制 六十进制 24进制

② 计算机中常见进制

十进制:逢十进1;0,1,2,3,4,5,6,7,8,9,10,11,····19,20······

二进制:逢二进1;0,1,10,11,100,101,······

八进制:逢八进1;0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20········

十六进制:十六进1:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10,11········

 十进制与其他进制之间的转换
① 公式:除基倒取余 基:目标进制

② 案例:将十进制的数88,分别以八位的二进制、八进制、十六进制表示

二进制:以88作为被除数,循环除以2,一直除到商为0时,将所有余数倒着写出来;0101 1000

八进制:以88作为被除数,循环除以8,一直除到商为0时,将所有余数倒着写出来:130

十六进制:以88作为被除数,循环除以16,一直除到商为0时,将所有余数倒着写出来:58

③ 注意: 当十进制转换为16进制时,10 – 15 之间的数字需要用 a — f 字母来表示

④ 练习: 将十进制 99 分别以八位的二进制、八进制、十六进制表示出来  

二进制:0110 0011

八进制:143

十六进制:63

 其他进制转换为十进制
① 公式:系数乘以基数的权次幂,再求和

系数:当前进制数上的每一位上的数字

基数:当前进制数 权:当前进制数,从右到左,从0开始计数

② 案例:二进制 0100 1001 ,八进制 56 ,十六进制 6d,用十进制数表示出来

0100 1001:1*2^6 + 1*2^3 + 1*2^0 = 73

56:5*8^1 + 6*8^0 = 40 + 6 = 46

 6d:6*16^1 + 13*16^0 = 96 + 13 = 109

③ 练习:二进制 0110 1101 ,八进制 76 ,十六进制 dd,用十进制数表示出来

0110 1101 —> 109

76 —> 62

dd —> 221

 二进制转其他进制(其他进制转二进制刚好是逆过程)
① 二进制转十进制(系数乘以基数的权次幂,再求和)

② 二进制转八进制

规则:将二进制从右往左,3个为一组,计算出数值;不够为时用0补位

案例:0100 1001 –> 001 001 001 –> 111

③ 二进制转十六进制

规则:将二进制从右往左,4个为一组,计算出数值;不够为时用0补位

案例:0100 1111 –> 0100 1111 –> 4f

 原码、反码、补码
① 计算机中关于数据的存储和运算使用的都是二进制的补码,原码和反码不是真实存在的,这两个只是为了方便编程人员计算负数的补码臆想出来的;数据有正有负,为了区分,就将二进制的最高位规定位符号位,如果最高位是1则表示负数,最高位为0表示正数。

② 正数的原码、反码、补码都是一样的(除基倒取余的方式)

③ 一个负数(默认用8为二进制表示)

传统的方式:      

原码:取负数绝对值,再使用除基倒取余的方式算出原码,不够为时最高位补1,其余位补0

 反码:原码取反,符号位(最高位不变),其余为1变0,0变成1      

补码:反码 + 0000 0001  

快速的方式:

 牢记 -1 的补码为 1111 1111,负数的补码就在此基础上减去负数的(绝对值-1)

④ 案例:用八位二进制表示十进制数 120(-120) 的原码、反码、补码

 二进制补码的运算
① 二进制补码运算时,不要做减法,通通用加法

② 例如:实现计算机底层 30 – 50 的过程;

如果使用减法运算:0001 1110 – 0011 0010 会发现不够减,没法借位

使用加法运算: 0001 1110 + 1100 1110 = 1110 1100

 位运算

符号  名称  运算规则
>> 右移  每移动一位,数值变成原来的1/2;正数最小到0,负数最大到-1
左移 每移动一位,数值变成原来的2倍;不能超出当前数据的范围
>>>  无符号右移 跟右移一致;不能用来操作负数
按位与 全真为真,否则为假;1为真,0为假
|     按位或  全假为假,否则为真;1为真,0为假
 按位异或  相同为假,不同为真;1为真,0为假

    
键盘录入

① 在程序的执行过程中动态的添加数据,让程序更加灵活,让数据的来源更加灵活

② 键盘录入的步骤

a. 导包:在类的声明上面,使用关键字 import java.util.Scanner

b. 创建键盘录入的对象:Scanner sc = new Scanner(System.in);

c. 来点提示:sout(“请输入数据:”);

d. 接受录入的数据:根据录入数据的类型选择合适的方法来获取数据 整型:int i = sc.nextInt(); 浮点数:double d = sc.nextDouble(); 字符串:String string = sc.next();

e. 对于录入数据的处理

 案例:随机录入两个正整数,比较大小,将较大的数据控制台打印

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91764 人正在系统学习中

来源:星辞随风

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月15日
下一篇 2021年9月15日

相关推荐