1.1 Java 语言基础

任务一 初识计算机和Java语言

基本概念

  • 主要硬件

    • CPU(中央处理器)最核心的部件,类似大脑
      • 运算和控制核心
      • 功能:解释计算机指令,处理计算机软件中的数据
    • 内存
      • 暂时存放内存数据、效率高
      • 容量小、非永久存储、断电丢失数据
    • ** 硬盘**
      • 存储部件
      • 容量大、永久存储、断电不丢失
      • CPU不能直接访问硬盘,要先加载到内存
    • 输入输出设备
      • 键盘+显示器
  • 主要软件

    • **系统软件 **
    • windows
    • Unix
    • Linux(C语言)
    • IOS
    • Android
    • 应用软件

计算机的体系结构

![[计算机体系结构.jpg]]

  • 计算机语言概述

    • 第一代语言:机器语言,二进制代码,穿孔卡片

    • 第二代语言:汇编语言,助记符表示机器指令,如ADD、SUB

    • 第三代语言:高级语言

      • Java
      • C
      • Python(AI)
      • C++
      • Scala
  • Java语言发展史
    ![[JAVA.jpg]]


  • 20世纪90年代 单片机系统

家电设备
sun 詹姆斯高斯林
C++ 1983年
橡树OAK
爪哇岛 JAVA

  • Java语言发展史

  • 主要版本

    • JAVA SE
      ![[JAVASE 1.jpg]]

    • JAVA EE
      ![[JAVAEE 1.jpg]]

    • JAVAME 已淘汰 使用Android
      ![[JAVAME 1.jpg]]

  • JAVA相关概念

    • JDK Java Development Kit

      JDK11

    • JRE JAVA运行时环境

      提供JAVA应用程序所必须的软件环境,无论是开发还是运行JAVA都必须安装

    • javac.exe

      编译器,将高级Java源代码翻译成字节码文件

    • java.exe

      解释器,主要用于启动JVM对字节码文件进行解释并执行

    • Jdk、jre、jvm
      ![[jdk.jpg]]

    • JAVA开发工具
      ![[开发工具.jpg]]

    • JAVA程序编写流程
      ![[编写流程.jpg]]

    • 注释

    • // 单行注释
    • /* */多行注释 不可嵌套
    • /** */ 多行 /文档注释 支持提取的注释
    • 环境变量的配置
    • 将文件路径配置到环境变量Path中
    • 计算机——属性——高级系统设置——高级——环境变量——系统变量——Path——编辑
    • 跨平台原理
    • 字节码文件通过JVM翻译成具体平台能运行的机器指令

任务二 变量和数据类型

变量的基本概念

  • 变量:记录单个数据内容,申请一个存储单元。

  • 变量的声明方式

    • 数据类型 变量名 = 初始值
      public class 类名 { 类体 }
  • 注意事项

    • Java是强类型语言,使用变量前要声明其数据类型
    • 变量使用之前必须初始化
    • 变量不能重复声明
  • 标识符的命名法则

  • 由数字、字母、下划线以及$等组成,其中数字不能开头。
  • 不能使用的关键字![[关键字.jpg]]
  • 区分大小写
  • 长度不宜过长
  • 见名知意 支持中文 不推荐使用
  • 案例题目
  • 输入年龄和姓名打印出来

  • 步骤
    变量声明
    输入变量
    打印变量

  • 优化
    在使用变量的时候在进行声明
    减少重复的代码

数据类型

  • 整数类型
  • byte、short、int、long
  • Long是long的包装类,区分大小写
  • 7 15 31 63范围1 2 4 8字节
  • 默认为int类型,超过long使用java.math.BigInteger类型
  • 笔试考点
  • 数字不能开头,无法确定是否为赋值的量还是标识符本身。

  • 固定值可以检测,变量不能检测。

  • ** 浮点类型**
  • float 4个字节 单精度浮点数 7位有效数字 符号位 指数位 小数
  • double 8个字节 双精度浮点数 15位有效数字 更准确
  • int 整数
  • 小数数据默认直接量为double。
  • 浮点数计算不准确
  • 布尔类型
  • boolean 数值TRUE FALSE
    描述真假
  • 字符类型
  • 2个字节 无符号位
  • String 字符串
  • 存的图 给一个ASCII码
  • ASCII
  • 0=48
  • A=65
  • a=97
  • 空格=32
  • 换行符=10
    ![[ASCLL.png]]
  • Unicode字符集编码 所有字符都为16位
  • "
  • \
  • \t横向制表
  • \n换行
  • \f换页
  • 基本数据类型之间的转换

![[基本数据类型转换.png]]

  • 强制类型转换
    目标类型 变量名 = (目标类型)源类型变量名;
  • 总结

![[任务一总结.png]]

任务三 运算符

运算符

  • 算术运算符
  • / % + *
  • 注意事项:

两个整数相除只留整数部分。只要其中一个数不是整数就行。

0不能做除数

  • 案例题目

7199 时分秒
字符串连接运算符+,+两边有一个字符串就是字符串连接符。

  • 比较/关系运算符

< > >= <= == !=

  • 自增减运算符
  • ++自增 ia++ = ia +1后加加
  • ++ia 先加加
  • 自减

  • 笔试考点

    • 逻辑运算符 Boolean 连接多个关系运算符
    • &&逻辑与 并且
    • ||逻辑或 或者
    • !逻辑非 取反
    • 短路特性
    • 逻辑与 第一个为假 则跳过第二个

  • 条件/三目运算符
  • 条件表达式?表达式1:表达式2
  • 条件成立,执行1,不成立执行2.
  • 赋值运算符

变量 = 数据;
复合赋值
ia += 2; 意思为 ia = ia + 2;

  • 笔试考点1

    • byte+byte=int
    • byte b1 = 10; b1+=2;等价于b1 = (byte)(b1+2);
  • 笔试考点2

    =是赋值 ==才是等于

  • 移位运算符

    • "<<"左移运算符,二进制向左,右侧补充0。
    • ">>"右移运算符,二进制向右,左侧补充符号位。
    • ">>"逻辑右移运算符,二进制向右,左侧补充0。
  • 位运算符

    • & 按位与,二进制计算,同1为1。
    • | 按位或
    • ~ 按位取反
    • ^ 按位异或,同0,异为1。
  • ** 负数二进制转换**

  • 原码、反码、补码
  • 运算符的优先级

![[运算符优先级.png]]

  • 总结

![[总结.png]]

任务四 流程控制语句

分支结构

  • if分支结构

if(条件表达式){语句块;}

  • 案例题目
  • 寻找最大值

  • if esle分支结构
    ifesle ifelse分支结构

  • if(“军人”.equals(Str))等价于识别输入文字是否为军人。

案例1

  • 局部变量 从声明开始一直方法体结束,块变量从声明开始一直到当前语句块结束。

  • cls清屏

案例2

  • 出租车计费方式
  • switch case分支结构

switch(变量/表达式){
}
default
case穿透,必须要有break,否则会全部执行。
switch case模拟菜单结果

循环结构

  • for循环
  • for(初始化表达式;条件表达式;修改初始值表达式){
    循环体;
    }
  • throws Exception{}

    • throws Exception{
      Thread.sleep(5000);
      }
  • 案例题目

案例1

  • 水仙花数 153=13+53+3^3

  • continue关键字,提前结束本次循环,进行下一次的循环。

案例2

  • 打印1~20之间的所有整数,跳过5的倍数。

break,退出循环体。
for(;;)无线循环,死循环
案例聊天案例,bye结束。

案例3

  • 猜数字

随机生成: import java.util.random;
Random ra = new Random();
int temp = ra.nextInt(100) + 1;
System.out.println("temp = "+ temp);

  • 双重for循环 多行多列
  • 5行5列,字符串内容
    star
    乘法表 外行内列

标号退出
outer:
break outer;

  • 判断是否是质数

  • 计算平方根 Math.sqrt(i)

  • while循环

案例

  • 打印调和数列的和
  • for和while的区别
  • while用于条件明确,但是次数不确定
  • for明确次数
  • 案例题目

案例

  • 反向输出
  • do while 循环
  • do{
    循环体
    }
    while(条件表达式);
  • 案例合格检查,至少执行一次。
  • 笔试考点
    十动然拒
  • ;的位置很重要,;用于延时,空语句
  • 总结

![[模块一任务四总结.png]]

任务五 数组以及应用

数组 Array

  • 多个类型相同的数据内容
  • 一段连续的存储空间
  • 相同数据类型的多个元素的容器,元素按线性顺序排序
  • 引用数据类型
  • 数组的声明方式
  • 数据类型[] 数组名称 = new 数据类型[数组的长度];
  • 注意事项:
  • 调用数组的length属性可以获取数组的长度;

  • 通过下标访问数组的每一个元素,数组的下标是从0开始。

数组初始化

  • 静态方式
  • 数据类型[] 变量名 = {初始值1,初始值2,…};
  • 动态方式
  • 数据类型[] 变量名= new 数据类型[长度];

  • 给了长度但是没有初始值

  • 内存结构分析
  • 栈区都是局部变量

  • 堆区存储new关键字创建的数组和对象

  • 基本数据类型放的是变量,引用放的地址

  • 数组的增删改查
  • for循环 if 来实现
  • 数组的优缺点
  • 查找速度开
  • 元素类型要相同
  • 长度不能改变
  • 增删改查,效率低
  • 案例题目

案例

  • 数组元素的拷贝

  • 定义
    public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

  • 方法含义
    从源数组src取元素,范围为下标srcPos到srcPos+length1,取出共length个元素,存放到目标数组中,存放位置为下标destPos到destPos+length1。

  • 过程
    public class SystemArrayCopy {
    public static void main(String[] args) {
    int[] src = {1, 2, 3, 4};
    int[] dest = new int[5];
    System.arraycopy(src, 0, dest, 1, 4);

     for (Object o : dest) {
          System.out.println(o);
       }
    

    }
    }
    /0 1 2 3 4/

  • 数组赋值,给的地址信息

  • 案例题目

案例

  • 学生人数的考试成绩,总分+平均分,打印
  • 数组的工具类概念
  • java.util.Arraays类可以实现对数组中元素的 遍历、查找、排序等操作
  • Arrays.toString(arr1); 打印arr1数组中的元素
  • Arrays.fill(arr1,10);将10赋值给arr1中所有元素
  • Arrays.equals(arr1,arr2); arr1和arr2中的元素顺序和内容是否相同
  • Arrays.sort(arr1); 将arr1中的元素从小到大排序;
  • Arrays,binarySearch(arr1,53); 查找数组arr1中元素53的下标位置
  • 二维数组
  • 声明方式
    数据类型[][] 数组名称 = new 数据类型[行数][列数];

  • 初始化
    int[][] arr1 = {{10,12,13,14},{22,33,44,77}}

  • arr.length 代表一维数组长度,元素的个数

  • brr.length 代表二维数组长度,一维数组的个数,就是行数

  • brr[0].length 代表二维数组中第一个元素的长度,代表一维数组的列数

  • 考点
    ![[考点.png]]

  • 案例
    杨辉三角

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值