第1章 Java语言基础知识,第1章续 习题讲解视频
第1章 Java语言基础知识
1.0 导学
- 安装JDK、文本编辑并使用命令行编译运行、eclipse安装配置;
JDK安装时:复制位置,高级系统设置-环境变量-新建JAVA_HOME+路径,Path加%JAVA_HOME%bin;(classpath JDK5以后可以不配置)
验证: javac -version;java -version - Eclipse字体设置:font
Eclipse:可设置保存时自动编译成字节码;
Eclipse代码模板:template - 文档注释:/**…./,内容可以生成类的官方文档,不可嵌入
多行注释:/….*/,不可导出文档,不可嵌入
单行注释://可以独立或加在语句后 - 复制语句:ctrl+alt+下箭头;单行注释:ctrl+?/;
多行注释:ctrl+shift+/?;去掉多行注释:ctrl+shift+
Ctrl + shift + F:自动排版 - Java区别大小写;
长语句写在多行,不加;即认为是一行; - 字节码文件与类数量对应;一般不建议在一个源代码文件中声明多个class。
1.1 Java与面向对象程序设计简介
- 程序设计语言发展历程:机器语言、汇编语言、高级语言、面向对象的语言;
- 面向对象的思想:将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类;
面向对象技术给软件发展带来的益处:可重用性、可靠性;
面向对象语言的基本特征:抽象和封装、继承、多态; - Java程序编译执行的过程:.java——compiler——.class——interpreter(一次编写,各处运行)
1.2 基本数据类型与表达式
- 文字量:直接出现在程序中并被编译器直接使用,也称为文字常量;
标识符:一个名称,与内存中的某个位置(地址)相对应;
变量:一个由标识符命名的项,每个变量都有类型,值可以被改变; - 数值类型、字符类型(转义字符:某些特殊字符型常量不可显示)、布尔类型;
字符串:String类(JDK标准类一部分),每一个字符都可以用转义序列表示; - 算术运算符、赋值运算符、关系运算符(特色:类型比较运算符instanceof)、逻辑运算符、条件运算符;
- 类型转换:扩展转换(损失精度)、窄化转换(丢失信息);
隐含转换:赋值转换、方法调用转换、字符串转换
显式转换(强制转换)
1.3 数组
- 数组是对象:动态初始化,可以赋值给Object类型的变量,调用方法;
- 数组的创建和使用:
声明(无需指明个数、不分配空间、不能直接使用)
创建(用new构成创建表达式)(声明和创建可一并执行、可同时多个)
初始化、使用; - 数组名是一个引用;
- 二维数组的长度:行数;每一行的长度:列数,可以不同。(二维数组是由一维数组构成的数组)
1.4 算法的流程控制
- If语句(简单的if-else可以用条件运算替代)
switch语句(开关语句,每个case后面要有break语句)
for语句(循环语句,可以嵌套)
增强for循环:对数组或集合对象进行遍历
while语句(循环体可能不执行)
do-while语句(至少执行一次循环体)
Break语句:跳出循环(最内层/标号所在循环)、跳出代码块
Continue语句:停止本次迭代,回到循环起始处
1.5 习题讲解
- Float:6-7位有效数字,double:15位有效数字;默认的为double,double速度更快;
Char:0-65535 - 整数默认的类型是int类型,超出范围时需加对应后缀L;
八进制:0开头;十六进制:0x开头;二进制:0b(Java7以后支持);
长数字:除开始和结束位,可以加下划线作为分隔符,便于阅读(Java7以后支持) - 浮点型默认类型是double类型,作为float时加f;
浮点型0.x可以省略0(一般不用);
十六进制浮点数:只能科学记数法,E改为P; - 字符类型只能表示单个字符,可以赋值0-65535内数字(对应unicode编码);
转义符\n换行,\r回车,\b退格,\t水平制表,\f换页;
\数字:八进制,\u数字:十六进制; - 浮点强制转换成整数:丢失小数后部分;
强制转型超出范围:原始数据取余后的值;
表达式中数据类型的自动提升; - Int[] a:在栈中开空间;
new int[5]:在堆中开空间;
=:将堆中空间地址引用赋值给a;
数组理论最大容量:length为Int类型,即int最大值2147483647;
一般数组大小受虚拟机容量限制;
数组长度可以为0。 - 二维数组:可理解为由一维数组组成的数组,在堆中多开一个数组引用各一维数组的首地址,再传给栈空间变量;
二维数组每行个数可不一致; - 推荐一行只声明一个变量,提高可读性;
基本数据类型变量:虚拟机栈(容量小,速度快);
变量作用域:声明的代码块(大括号)内;
常量:final - 命令行参数:
Eclipse中运行时选run configurations,可以作为main中的字符串args输入; - 命令行中java xxx 后面直接加参数。
编程练习题
1. 字符串排序
题目
用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入
3
Abc
Abe
Abd
输出:
Abc
Abd
Abe
思路
最基础的排序,暂不考虑复杂度要求,可写一个简单的冒泡排序。
用到的主要方法:
输入 Scanner,分别使用 nextInt() 和 nextLine() 读取时注意光标位置,前者不会自动换行,直接继续读取会导致第一个字符串是输入的数字;
排序可直接用 compareTo()。