Java学习笔记01

    科技2025-05-31  85

    一、概述与环境搭建

    1.1 Java的由来 1.1.1 JavaSE:Java Platform Standard Edition (Java平台标准版) CoreJava 1.1.2 JavaEE:Java Platform Enterprise Edition(Java平台企业版)企业级开发 1.1.2.1 C/S(Client / Server)结构的应用程序(需要下载安装本地客户端的软件QQ、大型游戏) 1.1.2.2 B/S(Browser / Server)结构的应用程序(通过浏览器,输入域名可直接访问的软件)淘宝 1.1.3 JavaME:Java Platform Micro Edtion(Java平台微小版)Java最初的定位(机顶盒)

    1.2 Java的语言特点 1.2.1 面向对象 我们为什么要学习软件? 软件行业还不错,发展前景好 “找对象” – new 兴趣爱好 模拟现实世界、解决现实问题。(抓现实的痛点),每一个软件、每一个产品,都有存在的意义和价值

    淘宝解决了什么问题? 买东西 -- 出门 -- 逛街 -- 付款 -- 带着东西回家(累,多了样商品,少了些钱) 买东西 -- 足不出户的逛 -- 付款 -- 快递送货上门(累,多了样商品,少了些钱)节约一些时间 痛点:商品很沉很重,机会成本(8小时投入到买东西,现在投入1小时,节约7个小时) 淘宝买家 -- 淘宝卖家 无法建立陌生人信任(支付宝公信平台),改变生活方式(扫一扫) 1.2.2 简单 Java有虚拟机,内置了垃圾收集器(GC),自动完成内存空间的管理,规避的可能因人为导致的问题。相对而言,更安全,更有保障 1.2.3 跨平台 跨操作系统(Windows、Unix- Linux、MacOS、Solaris) 微软C#(Sharp -- 尖锐)

    1.3 计算机执行机制: 1.3.1 编译执行:在具体的环境中(windows)执行一次翻译工作(源代码–>二进制),执行时,执行的是二进制文件。执行效率高、但是不能跨平台 什么叫编译执行,先翻译,然后执行的是翻译后的文件,执行效率高,但不能跨平台

    1.3.2 解释执行:在具体环境中一行一行解释并执行,不同环境都有自己的解释器。可以跨平台,执行效率低。 火星人来到地球,与地球人签署一份友好条约(火星文)。 翻译(文件)给中国人看,由中国科学家语言学家进行翻译,翻译之后是中文。 火星文,给美国人(边翻译,边理解),火星文,给韩国人(边翻译,边理解) 1.3.3 Java的执行机制:先编译、再解释 将源文件(.java)先编译成平台中立的字节码文件(.class),再执行跨平台的解释执行。将计算机 的两种执行特点,合二为一。

    1.4 名词解释: 1.4.1 JVM:Java虚拟机 1.4.2 JRE:Java运行环境 1.4.3 JDK:Java开发环境

    1.5 环境搭建: 1.5.1 安装JDK(运行jdk-8uXXX-windows-x64.exe),同时会级联的安装JRE 1.5.2 配置环境变量

    测试环境变量是否配置成功:windows键 + R ,键入cmd ,输入 javac 命令并回车 如果出现“不是内部或外部指令”,则表示环境变量配置存在问题,需要重新配置。 DOS命令中,可以通过 Tab键 完成文件或文件夹名称的自动补全。

    1.6 第一个Java程序: 1.6.1 创建.java,做文件更名是,只有弹出警告框,并电视“是”,才算更名成功。

    1.7 编译与运行 1.7.1 javac 源文件名称.java

    1.8 类的阐述

    1.9 Package包 1.9.1 包的声明:package 包名; 1.9.2 作用:归纳、整理、管理.class文件 1.9.3 为生成的字节码文件,增加一个前缀,进而加以区分可能存在的同名class,达到class文件的管理效果、区分效果。 1.9.4 加入了package的声明之后,可以有效的区分同名的.class文件。

    1.10 命名规范: 1.10.1 类名:HelloWorld、TestPackage、MyPack、TestAnnotation、ToolsA、ToolsB(帕斯卡命名法) 1.10.2 函数名、变量名:main、run、testMethod、getElementById(驼峰命名法) 1.10.3 包名:com.qf.teach; com.qf.teach.bj;(全小写、不以.开头或结尾) 1.10.4 常量:HELLO_WORLD GET_ELEMENT_BY_ID

    NodePad++的设置: I. 菜单栏 --> 语言–> J --> Java 设置开发语言(自动识别语言的关键字) II. 编辑完文件之后,记得Ctrl + S 进行保存(在编辑器的左上端,有一颗 * 表示当前文件未保存) III. 菜单栏 --> 设置 --> 语言格式设置 --> 可调整字体、字体大小,注意:点击“使用全局字体”、“使用全局字体大小” IX. 菜单栏 --> 设置 --> 首选项 --> 新建 --> 右侧的编码选项下,选中GB2312 (中文的字符编码) 一、语言基础

    前置知识: I. 什么是内存? 内存即是一块瞬时状态的存储空间,有一定的容量。

    II. 内存与硬盘的区别? 内存的造价比较高,整个的计算机硬件资源是比较稀缺的。(内存得省着点用) 工业上的瓶颈,多数大容量的内存都是由多个内存条组成的。

    III. 计算机给Java程序大多的内存空间? Java虚拟机(Java程序),默认分配的物理内存容量是计算机1/8。(省着点用)

    IX. 计算机存储容量的基本单位? bit(位-8位等于1个字节) - Byte(1字节) - KB - MB - GB - TB - PB - EB - ZB - YB - BB - NB - DB - CB - XB(都是1024的进制关系)

    变量: I. 概念:计算机内存中的一块存储空间,是存储数据的基本单元。 II. 组成:数据类型、变量名、值。

    III. 注意: = 代表的是赋值运算符(将等号右边的值,赋值给等号左边的变量) IV. int = Integer(整数)

    V. 强类型编程语言:要求变量的类型与值的类型要一致。 等号左边:int money(存储整数的,所以只能存整数) 等号右边:100(本身就是整数,只能存到整数的变量里)

    不是当前重点:JavaScript前端脚本编程语言(弱类型编程语言),变量是通用的,存什么都可以

    数据类型: I. 基本数据类型: a). 整数 byte short int long 注意:Java中任何一个整数,默认的类型是int,如果书写的数字超过int的取值范围,即被视为过大的整数。

    b). 小数(浮点数): float 单精度浮点型 占用内存4个字节 ,小数类型默认为double,如需存入至float变量中,请追加F。 double 双精度浮点型 占用内存8个字节 Java中的小数支持科学计数法的 2E3 5E8 c). 布尔 boolean 取值范围只有 true / false ,非真即假,常用来表达判断的结果。 d). 字符(character) char 每一个字符的背后,都有一个数字做代表(对照、参照表---ASCII美国标准信息交换码、Unicode万国码) char类型有多种赋值方式: char c1 = 'A'; //字符,直接赋值 char c2 = 65;//整数,对应ASCII编码赋值 char c3 = '\u0041';//整数,十六进制整数赋值 注意:char类型也支持整数表现形式,但char类型是无符号数,其实中所有值,均为正数。取值范围:0~65535 char类型是支持 \ 转义 使用 \ 将“本身具有特殊含义的字符” 转换成 “普通字符”。 使用 \ 将“普通字符” 转换成 “本身具有特殊含义的字符”。 \' \" \\ \t 缩进 \n 换行 e). String字符串 任何" "之间的内容都是字符串,包括空格。 String str = "HelloWorld";

    类型转换: I. 自动类型转换:两种类型相互兼容,目标类型大于源类型。

    II. 强制类型转换:两种类型相互兼容,目标类型小于源类型。 通过在源类型前面,加上 (目标类型) ,达到强制转换的目的,但是,有可能失去精度 如:小数强转为整数,则失去精度,小数点之后的值,无法保留。

    作业: 重中之重:课堂案例,敲个2~3遍 课后习题:讲到哪里,做到哪里。 随堂留作业。

    增加节点的方式:按Enter增加同级别,按Tab增加子级别节点,在节点中文本换行Alt + Enter ProcessOn的知识回顾思维导图地址:https://www.processon.com/view/link/5e3b71b0e4b085b5f2154784

    课后习题:

    JDK提供的类库位置:C:\Program Files\Java\jdk1.8.0_121\jre\lib 当前使用java.util.Scanner; Ctrl + C 可以强制停止正在控制台中运行的程序

    三、选择结构与分支结构

    基本if选择结构 语法: if(布尔表达式){ 代码块 //当表达式结果为true,则执行该代码块 }

    if else选择结构 语法: if(布尔表达式){ //代码块1 }else{ //代码块2 }

    多重if选择结构 语法: if(布尔表达式){ 代码块1 }else if(布尔表达式){ 代码块2 }else if(布尔表达式){ 代码块3 }else{ 代码块4 } 注意:相互排斥,当有一个条件为true时,其他均不再执行,使用与区间判断(区间条件,遵循从大到小或从小到大)。

    嵌套if选择结构 语法: if(外层布尔表达式){ if(内层布尔表达式){ 内层代码块1 }else{ 内层代码块2 } }else{ 代码块2 } 注意:选择结构中,可以嵌套另一个选择结构,可任意组合(if、if else、多重if),嵌套结构可能存在因没有缩进而导致的书写串行,进而执行有问题。

    分支结构: switch(变量|表达式){ //byte short int char String case 1: 逻辑代码1; break;

    case 2: 逻辑代码2; break; default: 逻辑代码3; break;

    } 注意:switch的case被选中后,不会主动退出这个结构,需手工追加break,跳出整个switch。

    局部变量: I. 概念:声明在函数内部的变量,必须先赋值,再使用。 II. 作用范围:从定义行开始,到所在的代码块结束。 III. 注意:多个变量,在重合的作用范围内,不允许重名。

    作业: I. 敲随堂案例 II. Question 1,7、8、9、10

    四、循环结构

    1. 通过某个条件,使一段代码周而复始的执行 2. 循环的组成部分: I. 初始部分:循环用以判断的变量 II. 循环条件:决定是否继续循环的依据 III. 循环操作:单次执行的逻辑代码或任务(一次循环要做的事情) IV. 迭代部分:控制循环条件改变的增量 3. while循环 I. 语法: while(布尔表达式){ } II. 特点:首次即有入口条件,先判断、再执行;适用于循环次数明确的情况。 4. do while循环: I. 语法: do{ }while(布尔表达式); II. 特点:首次没有入口条件,先执行、再判断;适用于循环次数不明确的情况。 5. for循环: I. 语法: for( 1.初始部分 ; 2.循环条件 ; 4.迭代部分){ 3.循环操作 } II. 特点:首次即有入口条件,先判断、再执行;适用于循环次数明确的情况。 6. 流程控制语句: I. break:中止、跳出switch、以及所有的循环结构。 II. continue:结束本次,进入下一次循环。 作业:课堂案例 课后练习:1~5必做题,6~8选做题 思维导图:5天的知识内容,自己归纳整理 7. 嵌套循环: I. 概念:在一个完整的循环当中,嵌套另一个完整的循环结构。 II. 经验: 1). 图形:外层控制行数、内层控制列数。 2). 其他:外层控制循环次数、内层控制单次循环操作。
    Processed: 0.013, SQL: 8