Day_01随堂笔记
Java课程大纲
JavaSE -> Java基础 web阶段 MySQL -> 数据库 Tomcat -> 服务器 .... 框架阶段 ssm 项目 高阶框架 Spring 全家桶 ..
JavaSE课程大纲
JavaSE课程大纲 : 基础语法(6天) 面向对象思想(4天) 常用API(2天) 集合板块(4-5天) IO板块(3天) 多线程(2天) 网络编程(1天) 反射,注解,枚举(1天) JDK8的新特性-Lambda,方法引用,Stream流(1天)
Java语言发展史
语言 : 沟通 编程语言: 和计算机进行沟通交流(下指令)的语言 编程语言的种类特别多: C,C++,C#,Python,Java,Go,易语言... Java语言发展史 : 诞生于1995年,1996年第一个版本发布; (JDK1.0) 创始人 : 詹姆斯.高斯林 (高司令,搞死你) 隶属公司 : SUN(斯坦福大学网络公司) -被收购-> Oracle (甲骨文)
Java的版本发展史
发行版本 | 发行时间 | 备注 |
---|---|---|
Java | 1995.05.23 | Sun公司在Sun world会议上正式发布Java和HotJava浏览器 |
Java 1.0 | 1996.01.23 | Sun公司发布了Java的第一个开发工具包 JDK |
Java 1.1 | 1997.02.19 | |
Java 1.2 | 1998.12.08 | 拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版) |
Java 1.3 | 2000.05.08 | |
Java1.4 | 2004.02.06 | |
Java 5.0 | 2004.09.30 | ①版本号从1.5改为5.0;②平台更名为JavaSE、JavaEE、JavaME |
Java 6.0 | 2006.12.11 | 2009.04.20 Oracle宣布收购SUN公司,收购价74亿美金 |
Java 7 | 2011.07.02 | |
Java 8 | 2014.03.18 | 5.0版本以来最大变化的版本,长期支持版 |
Java 9 | 2017.09.22 | ①每半年更新一次;②Java 9开始不再支持windows 32位系统 |
Java 10 | 2018.03.21 | |
Java 11 | 2018.09.25 | JDK安装包取消独立JRE安装包,长期支持版 |
Java 12 | 2019.03.19 | |
Java 13 | 2019.9.18 | |
Java 14 | 2020.3.17 |
特点:
高版本的JDK向下兼容(内容)
版本之间不通融
Java语言平台
系统平台 : windows -> 最常用 MacOS -> 最推荐 -> pro Linux -> 服务器最常用的操作系统 Java语言平台 : JavaSE : Java基础 JavaME : 嵌入式开发 -> Android(Android SDK) JavaEE : 企业级开发(后台开发)
Java语言特性
1. 跨平台特性 : Java程序可以一次编写到处运行 //到处 : 各个系统平台都可以运行Java 2. 强类型的编程语言 : 对数据类型的划分有严格的要求 3. 面向对象的编程语言 : 自己的事情别人做 4. 开源 : 开放源代码
JVM,JRE,JDK
JVM : Java虚拟机 -> Java virtual Machine -> 土壤 //程序运行的载体 -> JVM实现了Java程序的跨平台性 JRE : Java运行环境 -> Java Runtime environment -> 植物的生长环境 //程序运行的环境 -> 有了JRE程序就可以正常运行 JDK : Java开发工具集 -> Java Development Kit -> 铁锹,锄头,肥料... //程序的开发工具 -> 有了JDK才能开发程序 JDK 中包含 JRE , JRE 中包含 JVM --> 只需要安装JDK
DOS命令(了解)
DOS命令(了解) : 操作windows系统的命令 如何打开DOS命令窗口 : win + r -> 输入cmd 命令 : 1. 切换盘符 -> 盘符名称: 2. 查看文件,文件夹 -> dir 3. 进入文件夹 cd 文件夹名称\文件夹名称\... 4. 退出一级文件夹 : cd.. 退出到盘符的根目录 : cd\ 5. 清屏 : cls 6. 退出 : exit
配置Path环境变量
为什么要配置Path环境变量 : -> 重点 为了能在windows的任意路径下访问JavaJDK中bin目录下的命令
Java程序的运行过程
1. 编写Java代码 -> 计算机还是看不懂的 2. 把Java代码进行 编译 , 编译成为 二进制文件(字节码文件 [后缀为 .class]) 编译 : 把Java代码翻译成计算机能读懂的语言 3. 运行字节码文件
HelloWorld案例
编写HelloWorld案例步骤 1. 创建一个文本文档 [后缀名 : .txt] 2. 修改此文件的文件名和后缀名 -> [HelloWorld.java] 3. 使用记事本工具打开文件,在文件内编写代码 编写代码的步骤 : //定义一个类 : Java程序的最小单位 public class HelloWorld{ //类名 : HelloWorld要和文件名一模一样 //在类中编写程序的入口 : 主方法 [没有主方法程序无法执行] public static void main(String[] args){ //在主方法内编写代码 //编写输出语句 System.out.println("HelloWorld"); //[双引号内编写需要打印的内容] } } 执行Java程序 1. 命令行找到代码所在的位置 2. 编译 : javac HelloWorld.java //生成一个HelloWorld.class字节码文件 [程序没有问题] 3. 运行 : java HelloWorld //在窗口查看程序的结果
Notepad++软件的安装使用
同类软件 : Editplus,sublime...
注释
注释 : 文字对代码的解释说明 //写代码要写注释,先写注释再写代码[提供写代码的思路] 注释的分类 : 1. 单行注释 // 后面一整行的内容全都是单行注释 2. 多行注释 /* 这里 全是 多行 注释 */ 3. 文本注释,文档注释 /** 这里 全是 文档 注释 文档注释的内容可以在自动生成API文档时,出现在api文档中 @version 版本号 @author 谈斌 */ 注释的特点 : 代码不会执行注释,注释不会影响代码的执行
关键字
关键字 : 被Java程序赋予了特殊含义的单词 -> "交通标识" 特点 : 1. 组成关键字的单词全部小写 2. 关键字不可以作为命名的符号[标识符] 3. 在高级的开发工具中,对关键字有特殊颜色的标识 -> 紫色,蓝色 //目前见过的关键字 : public : 公共的 -> 访问权限修饰符[最高级别] class : 类 -> Java中的一种引用数据类型 static : 静态的 -> 状态修饰符 void : 无返回值 -> 方法执行完毕后无结果返回 true : 常量 -> 正确 false : 常量 -> 错误 保留字 : 未来可能成为关键字的单词
标识符
标识符 : 命名的符号 需要命名的板块 : 项目名,模块名,类名,包名,方法名,变量名... 标识符的分类 : [有且仅有] 1. 英文字母大小写 2. 数字 3. _ [下划线] 4. $ [美元符号] 5. 中文 使用标识符的注意事项: 1. 不能使用关键字 2. 不能数字开头 3. 建议不使用_和$命名 _ : 自定义常量 $ : 内部类的类名 Outer$Inner 4. 不要使用中文 [兼容性不好]
字面值常量
字面值常量 : 在程序的执行过程中,值不会发生改变的量 -> 100 字面值常量的分类 : 1. 整数常量 : 负整数,0,正整数 2. 浮点数常量[小数常量] : 负小数,0.0,正小数 3. 字符常量 : 单引号引起来的单个内容 [单引号内只能有一个] a . 数字字符 '0' - '9' b . 字母字符 'a' - 'z' , 'A' - 'Z' c . 符号字符 '!' , '$' , ' ' .... d . 汉字字符 '我','你','她'.... e . 空字符 '\u0000' [Unicode] 4. 字符串常量 : 双引号引起来的内容是字符串常量 [字符串常量内可以有任意个] "想写什么就写什么,双引号可以引一切内容!!!" , 空字符串 "" 字符和字符串的关系 : 羊肉和羊肉串 字符串的本质 : 一堆字符 [一个字符数组] 5. 布尔常量 : true , false 6. 空常量 : null -> 关键字 : 对象无地址,无地址的对象无法使用 字面值常量的作用 : 给相应类型的变量赋值 [没学变量之前,只能拿着常量进行输出]
变量的概念
变量 : 在程序执行的过程中,其值可以在一定范围内发生改变的量 一定范围内 -> 变量的类型 鸡蛋的价格是5元每斤 -> 变量 : 鸡蛋的价格 变量的定义格式 : 数据类型 变量名 = 初始化值; = : 赋值运算符 作用 : 把等号右边的值赋值给等号左边的变量
数据类型
Java是一种强类型的编程语言,对数据有明确的类型划分 -> 数据类型 Java中数据类型分为两大类 : 1. 基本数据类型 2. 引用数据类型 : a. 类 : class [String 是类中的一种,只要是自己定义类那么就是一种引用数据类型] b. 接口 : interface c. 数组 : array d. 注解 : Annotation [@Override] e. 枚举 : enum
基本数据类型
基本数据类型 : 四类八种基本数据类型 基本数据类型的名称全都是关键字!!
数据类型名称 | 数据类型的范围 | 数据类型所占字节数 |
---|---|---|
整型 | ||
byte | [-128,127] | 1 |
short | 比byte大,但是没有int大 | 2 |
int | 正负21个亿左右 [默认整数类型] | 4 |
long | 比int大,但是没有float大 | 8 |
浮点型 | ||
float | 比long大,但是没有double大 | 4 |
double | 最大的数的表示范围类型 [默认小数类型] | 8 |
字符型 | ||
char | [0,65535] | 2 |
布尔型 | ||
boolean | true,false | 1 |
计算机中的单元
计算机中最小的存储单元 : 字节 -> byte -> B //计算机硬盘中一切皆字节; 计算机中最小的信息单元 : 比特位 -> bit -> b //比特位 : 就是0,1这样的二进制数 换算单位 : 1 B = 8 b; // 一个字节有8位 1 KB = 1024 B 1 MB = 1024 KB 1 GB = 1024 MB 1 TB = 1024 GB 1 PB = 1024 TB .... 软盘 -> 光盘 -> U盘 -> 移动硬盘[1T] (西部数据,希捷)[机械硬盘 80MB/S] [SSD 固态硬盘 300MB/S]
命名规范
命名规范 : 见名知意 [满足标识符的要求] 1. 项目名,模块名 : 跟着公司的习惯来 2. 包 : 全部小写,多级包之间使用 小数点 进行分割 com.atguigu.variable 习惯 : 域名的反写 -> 域名 : www.baidu.com 包名 : com.baidu. 3. 类 : 大驼峰命名 -> 每个单词的首字母大写 4. 变量,方法 : 小驼峰命名 1. 单个单词 : 全部小写 变量 : age 方法 : show(); 2. 多个单词 : 第一个单词全部小写,从第二个单词开始每个单词的首字母大写 变量 : bigCount 方法 : getAge() 阿里巴巴公司的代码命名规范 -> <码出规范>
变量使用的注意事项
变量的定义格式 : 数据类型 变量名 = 初始化值; 注意事项: 1. 整数变量优先选择 int 类型定义 , 浮点数变量优先选择 double 类型定义; 2. 如果要定义 long 类型的变量, 请在常量值的后面加 大写的 L; [如果常量值没有超过int的范围,那么常量后面的L是可以不加的 -> 常量的优化机制] 3. 如果要定义 float 类型的变量, 请在常量值的后面加 大写的 F; 4. 变量未赋值不可以使用 5. 变量可以先定义,后赋值 -> 第二种变量的定义格式 数据类型 变量名; //在使用之前,一定赋值 6. 一行可以同时定义多个同类型的变量 格式 : //先定义 数据类型 变量名1,变量名2,变量名3; //后赋值 变量名1 = 初始化值1; 变量名2 = 初始化值2; 变量名3 = 初始化值3; ----------------------------- //在定义时赋值 数据类型 变量名1 = 值1,变量名2 = 值2,变量名3 = 值3; 7. 变量只在其定义的大括号内有效,出了大括号就无效了 [作用域] 8. 在一个作用域下,不可以出现同名变量