《Java基础与案例开发详解》笔记(一)

我们都知道学习java,必不可少的就是jdk,jdk也经过了一系列的发展。

这里写图片描述

这里写图片描述

由上图可见,整个jdk的版本经过3次变化。jdk-j2se-javase

java命令行

在cmd下,找到对应的java文件,通过以下两个程序进行编译、运行

javac 是用来进行编译的

这里写图片描述

java是用来进行执行的
javac hello.java
java hello

在这里需要注意的是源文件的名字一定要和java类的名字一致

java注解

  1. 单行注解 // 这种注解不会被编译
  2. 多行注释 /* */ 这种注释不会被编译
  3. 文档注释 /* / 这种会被编译器编译成文档

java跨平台

java跨平台原理图

java程序之所以能在不同的操作系统上运行,是因为不同平台度安装了jvm(java虚拟机,万能翻译机)

java虚拟机

java虚拟机位置

java虚拟机可以理解成一个可运行java字节码的虚拟的计算机系统软件,它有一个解释器组件,可以实现java字节码和计算机操作系统之间的通信。对于不同的运行平台,有不同的java虚拟机。java虚拟机屏蔽了底层运行平台的差别。

java运行过程图

我们首先通过编译工具软件javac.exe将源代码编译成.class字节码文件,java虚拟机会根据设定好的classpath路径找到对应的.class文件进行装载,在进行校验、解释。最后交给操作系统控制硬件执行。或者通过JIT(just in time)编译器将.class文件快速交给操作系统控制硬件执行。

解释器与JIT区别
  1. 解释器:每扫描一行,执行一句翻译,执行效率低
  2. JIT代码生成器:将整个代码一次翻译,然后一次性执行。

java垃圾回收器

程序在运行期间,不在使用的内存空间应当进行垃圾回收。jdk对此就提供了一个垃圾回收器(Garbage Collection,gc)。java虚拟机提供了一种系统线程跟踪存储空间的分配情况,并在java虚拟机空闲时,检查并释放可以释放的存储空间,垃圾回收器在java程序运行过程中,自动启用,我们不能进行过多干预。

java数据类型

数据类型分类

命名规则

命名规定的约定俗成

常量的书写规则

常量一般采用大写字母单词命名,单词与单词之间用_分割。

三目运算

x?y:z
//注意x是boolean表达式,x正确就是y,否则就是z

switch

switch(){
     case 取值1:
     break;
      case 取值2:
     break;
     default :break;
}
//需要注意的是switch后面的表达式必须是int byte char short,case后面的取值必须是常量,如果在case分支,不写break,就一直执行下一个case

continue与break

continue是程序执行过程中,继续执行

break是程序执行过程中,停止执行

两种都是配合循环和if条件使用的

数组

java数组中只能存放相同的数据类型

数组的申明

数据申明需要指定分配空间

数据类型[] 数组名 = new 数据类型[大小]
int[] a = new int[]{11,16,18}//这样的数组是边申明和赋值

冒泡算法

就是比较相邻的两个值来排序的

冒泡算法解析

需要注意的是在每一趟结束后,最大或者最小都确定,下面的趟中,就不需要与之比较。

这是列举5个数的规律总结

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a1 = 0;
    int temp = 0;
    int a[6];
    int i = 0 ,k =0 ,m = 0,j = 0;
    printf("请输入排序的原数据:\n");
    for(k=0;k<6;k++){
        scanf("%d",&a1);
        a[k] = a1;
    }

   for(i=0;i<5;i++){
        for(j = 0;j<5-i;j++){
              if(a[j]>a[j+1]){
            temp = a[j];
            a[j] = a[j+1];
            a[j+1] = temp;
                }
        }
    }
printf("排序后的数据:\n");
 for(m = 0;m<6;m++){
    printf("%d \n",a[m]);
 }

}

上述的冒泡是基于c语言写的,其他的也类似,自己完善。

插入算法

主要是通过两两相比,把比较大或者小的放在前面。

插入算法图解

 int a1 = 0,k = 0,i = 0,m = 0;
  int a[6];

   printf("请输入排序的原数据:\n");
    for(k=0;k<6;k++){
        scanf("%d",&a1);
        a[k] = a1;
    }
    printf("排序之后的数据:\n");
    for(i=0;i<6;i++){
        if(a[i]>a[0]){
            a[0] = a[i+1];
            a[i+1] = a[i];
        }

    }

    for(m = 0;m<6;m++){
    printf("%d \n",a[m]);
 }

上述代码是基于c语言的,java差不多。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 MyEcilpse工具介绍JavaSE环境安装和配置15 1.6 本章练习16 第2章 2.1 什么是程序18 2.2 计算机中的程序18 2.3 Java程序19 2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33 3.2 数据的分类34 3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 优先级和结合性问题52 3.6 选择结构54 3.6.1 顺序语句54 3.6.2 选择条件语句54 3.6.3 switch结构59 3.6.4 经验之谈-常见错误的分析与处理65 3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组常见错误97 4.2 常用算法98 4.2.1 平均值,最大值,最小值98 4.2.3 数组排序102 4.2.3 数组复制103 4.3 多维数组105 4.3.1 二重循环105 4.3.2 控制流程进阶107 4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值