学堂在线—Java程序设计—课程笔记(第1章 Java语言基础知识,第1章续 习题讲解视频)

这篇博客详细介绍了Java语言的基础知识,包括JDK安装、Eclipse配置、基本数据类型、表达式、数组、流程控制以及面向对象的概念。此外,还讲解了三个编程练习:字符串排序、斐波拉契数列和交集问题,提供了思路和代码实现。
摘要由CSDN通过智能技术生成

第1章 Java语言基础知识

1.0 导学

  1. 安装JDK、文本编辑并使用命令行编译运行、eclipse安装配置;
    JDK安装时:复制位置,高级系统设置-环境变量-新建JAVA_HOME+路径,Path加%JAVA_HOME%bin;(classpath JDK5以后可以不配置)
    验证: javac -version;java -version
  2. Eclipse字体设置:font
    Eclipse:可设置保存时自动编译成字节码;
    Eclipse代码模板:template
  3. 文档注释:/**…./,内容可以生成类的官方文档,不可嵌入
    多行注释:/
    ….*/,不可导出文档,不可嵌入
    单行注释://可以独立或加在语句后
  4. 复制语句:ctrl+alt+下箭头;单行注释:ctrl+?/;
    多行注释:ctrl+shift+/?;去掉多行注释:ctrl+shift+
    Ctrl + shift + F:自动排版
  5. Java区别大小写;
    长语句写在多行,不加;即认为是一行;
  6. 字节码文件与类数量对应;一般不建议在一个源代码文件中声明多个class。

1.1 Java与面向对象程序设计简介

  1. 程序设计语言发展历程:机器语言、汇编语言、高级语言、面向对象的语言;
  2. 面向对象的思想:将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类;
    面向对象技术给软件发展带来的益处:可重用性、可靠性;
    面向对象语言的基本特征:抽象和封装、继承、多态;
  3. Java程序编译执行的过程:.java——compiler——.class——interpreter(一次编写,各处运行)

1.2 基本数据类型与表达式

  1. 文字量:直接出现在程序中并被编译器直接使用,也称为文字常量;
    标识符:一个名称,与内存中的某个位置(地址)相对应;
    变量:一个由标识符命名的项,每个变量都有类型,值可以被改变;
  2. 数值类型、字符类型(转义字符:某些特殊字符型常量不可显示)、布尔类型;
    字符串:String类(JDK标准类一部分),每一个字符都可以用转义序列表示;
  3. 算术运算符、赋值运算符、关系运算符(特色:类型比较运算符instanceof)、逻辑运算符、条件运算符;
  4. 类型转换:扩展转换(损失精度)、窄化转换(丢失信息);
    隐含转换:赋值转换、方法调用转换、字符串转换
    显式转换(强制转换)

1.3 数组

  1. 数组是对象:动态初始化,可以赋值给Object类型的变量,调用方法;
  2. 数组的创建和使用:
    声明(无需指明个数、不分配空间、不能直接使用)
    创建(用new构成创建表达式)(声明和创建可一并执行、可同时多个)
    初始化、使用;
  3. 数组名是一个引用;
  4. 二维数组的长度:行数;每一行的长度:列数,可以不同。(二维数组是由一维数组构成的数组)

1.4 算法的流程控制

  1. If语句(简单的if-else可以用条件运算替代)
    switch语句(开关语句,每个case后面要有break语句)
    for语句(循环语句,可以嵌套)
    增强for循环:对数组或集合对象进行遍历
    while语句(循环体可能不执行)
    do-while语句(至少执行一次循环体)
    Break语句:跳出循环(最内层/标号所在循环)、跳出代码块
    Continue语句:停止本次迭代,回到循环起始处

1.5 习题讲解

  1. Float:6-7位有效数字,double:15位有效数字;默认的为double,double速度更快;
    Char:0-65535
  2. 整数默认的类型是int类型,超出范围时需加对应后缀L;
    八进制:0开头;十六进制:0x开头;二进制:0b(Java7以后支持);
    长数字:除开始和结束位,可以加下划线作为分隔符,便于阅读(Java7以后支持)
  3. 浮点型默认类型是double类型,作为float时加f;
    浮点型0.x可以省略0(一般不用);
    十六进制浮点数:只能科学记数法,E改为P;
  4. 字符类型只能表示单个字符,可以赋值0-65535内数字(对应unicode编码);
    转义符\n换行,\r回车,\b退格,\t水平制表,\f换页;
    \数字:八进制,\u数字:十六进制;
  5. 浮点强制转换成整数:丢失小数后部分;
    强制转型超出范围:原始数据取余后的值;
    表达式中数据类型的自动提升;
  6. Int[] a:在栈中开空间;
    new int[5]:在堆中开空间;
    =:将堆中空间地址引用赋值给a;
    数组理论最大容量:length为Int类型,即int最大值2147483647;
    一般数组大小受虚拟机容量限制;
    数组长度可以为0。
  7. 二维数组:可理解为由一维数组组成的数组,在堆中多开一个数组引用各一维数组的首地址,再传给栈空间变量;
    二维数组每行个数可不一致;
  8. 推荐一行只声明一个变量,提高可读性;
    基本数据类型变量:虚拟机栈(容量小,速度快);
    变量作用域:声明的代码块(大括号)内;
    常量:final
  9. 命令行参数:
    Eclipse中运行时选run configurations,可以作为main中的字符串args输入;
  10. 命令行中java xxx 后面直接加参数。

编程练习题

1. 字符串排序

题目

用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入
3
Abc
Abe
Abd
输出:
Abc
Abd
Abe

思路

最基础的排序,暂不考虑复杂度要求,可写一个简单的冒泡排序。
用到的主要方法:
输入 Scanner,分别使用 nextInt() 和 nextLine() 读取时注意光标位置,前者不会自动换行,直接继续读取会导致第一个字符串是输入的数字;
排序可直接用 compareTo()。

代码


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值