java 9-期末复习知识点

《Java程序设计》课程主要知识点

★掌握java应用程序和java小应用程序在jdk环境下的开发步骤

★java的基本顺序结构

1 各种基本类型名称(关键字)、占用内存空间,缺省值等
2 各种基本类型的常量和变量:如何定义
3 Java运算符
4 类型转换
5 字符串 (定义、比较、String提供的常用方法等)
6 基本的输入输出(控制台输出和键盘输入)
7 流程控制
8 一维数组

★对象与类

1 对象
2 类的定义
3 类的构造方法
4 this、final、static 用法
5 方法参数java的值传递
6 方法的重载
7 对象实例化
8 包的创建、import关键字

★继承

1 类继承的实现
2 super、this关键字
3 方法的覆盖(重写)
4 多态性
5 final 关键字修饰类和方法的用法、涵义
6 强制类型转换
7 抽象类和抽象方法
8成员的各种访问控制权限
9 Object 提供的常用方法equals()、toString()、hashCode()
10 泛型数组列表ArrayList

★接口与内部类

1 接口的定义与实现
2 接口的语法特性
3 接口与继承的区别
4 常量接口的定义、使用
5 接口与抽象类的区别
6 Lambda表达式

★图形用户界面设计

1 组件分类
2 能建立简单的窗口程序
3 窗口程序中,组件绘制怎么完成
4 事件处理模型 事件处理的几种基本方式
5 常见的容器布局管理器,使用方式
6 熟悉基本的控制组件对应的类,如何使用

★异常处理

1 异常的概念
2 Java中常见的异常
3 异常的基本语法
4 异常的分类
5 捕获异常 try… catch…finally
6 异常声明 throws
7 异常抛出 throw

★集合与泛型

1 List接口 对应的实现类 ArrayList 及其LinkedList
2 Set接口 对应的实现类HashSet和TreeSet
3 Map接口 对应的实现类HashMap和TreeMap
4 会使用泛型类

★流与文件

1 JavaIO模型
2 处理InputStream
3 处理OutputStream
4 Reader & Writer
5 RandomAccessFile
6 java.io.Serializable(理解序列化接口)

★多线程

1 线程的概念
2 实现线程的2种方式
3 线程的几个重要方法
4 synchronized关键字,wait()和notify()

复习

1 课程内容回顾

本学期《Java程序设计》主要内容
控制结构
顺序、分支、循环
类的定义
构造方法、成员、getter/setter
继承
构造方法调用(super, this)
父类构造方法一定先于子类构造方法
重载与覆盖
toString, equals, hashCode, finalize
抽象类(abstract)
向上转型

多态性理解

主要内容(Cont.)
接口、内部类、Lambda表达式
default, static方法
枚举类型
异常处理
try…catch…finally
throw, throws
自定义异常
集合与泛型
Collection, Set, List, Map
ArrayList, HashMap, Iterator, ListIterator

主要内容(Cont.)
多线程
Runnable, Thread(join, start…)
Synchronized
流与文件
InputStream, OutputStream, Reader, Writer
序列化、反序列化

2 题型

考试题型

一、选择题(10分,每题2分,共5题)
二、程序阅读题(40分,每题5分,共8题)
三、程序设计题(50分,3题)

考试方式:闭卷笔试

3 示例

选择题

Java语言中下面哪个可以用作正确的变量名称( )。
A、3D B、name C、extends D、implements
System类在哪个包中?
A、java.util B、java.io
C、java.awt D、java.lang
下面关于java中类的说法哪个是不正确的( )。
A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造函数是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。

程序阅读题

下列程序的输出结果是___________。(答案:100)

class  A
{public int f(int x){ return x+1; }}
class B extends A
{public int f(int x){ return x*x; }} 
public class E 
{public static void main(String args[]){
  {A a=new B();
   int  m=a.f(10);
   System.out.println(m); 
   } 
}
编程题

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
输出9*9乘法口诀表。

JAVA复习

字符

  • 创造字符串对象
String s1 = new String();
String s2 = new String("Hello World");
char chars[] = { 'a', 'b', 'c', 'd', 'e' };
String s3 = new String(chars);
String s4 = new String(chars, 1, 4);
byte bytes[] = { 97, 98, 99 };
String s5 = new String(bytes);
  • 字符串池
String s7 = new String("Hello");
String s8 = new String("Hello");
String s9 = "Hello";
String s10 = "Hello";

s7 == s8 : false 
s9 == s10: true 
原因:四个都在内存区。后面两个在字符串池(不可变字符串常量)。
  • 字符串拼接
String s11 = s7+s8;
String s12 = s11.concat(s7).concat(s8);
java.util.Data now = new java.util.Data();
String s13 = "日期:" + now;

String str = "There is a string accessing example.";
  • 获得字符串长度
int len = str.length();
  • 获得索引位置16的字符
char ch = str.charAt(16);
  • 查找(从头找,从尾巴找,从下标处找,找子串)
int a1 = str.indexOf('r');
int a2 = str.lastIndexOf('r');
int a3 = str.indexOf("ing");
int a4 = str.indexOf('e', 15);
  • 比较(相等,比较大小,比较前缀后缀)
boolean b1 = s1.equals(s2);
boolean b2 = s1.equalsIgnoreCase(s2);
int b3 = s1.compareTo(s2);
int b4 = s1.compareToIgnoreCase(s2);
boolean b5 = s1.startsWith(s2);
boolean b6 = s1.endsWith(s2);
  • 截取
int start = 1,end = 7;
String s14 = s1.substring(start,end);
String s15[] = s1.split(" ");
  • 追加,插入,删除,替换
StringBuilder s16 = new StringBuilder("Hello");
s16.append("World").append('.').append(false).append(null);
s16.insert(4,s1);
s16.delete(1,2);

常规操作

  • 输入
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
String line = scanner.nextLine();;
  • 随机数
double a = Math.random(); //产生一个[0,1]的随机数
  • ascii转字符
char ch = (char) (number + 97);
  • 字符串、数字转换
int a = Integer.parseInt("1123");
String b = Integer.toString(123);
String c = Integer.valueOf(123);
  • 读入文件
Scanner scanner = new Scanner(new File("myfile.txt"));
while (scanner.hasNextLine()) {
    String line = scanner.nextLine();
    Scanner linescanner = new Scanner(line);//对每一行的内容建立一个扫描器
    linescanner.useDelimiter(" ");//使用空格作为分隔符

    String name = linescanner.next();
    String math = linescanner.next();
    String java = linescanner.next();
    String ds = linescanner.next();
    String avg = linescanner.next();
    String total = linescanner.next();
}
scanner.close();
  • 写文件
PrintWriter printWriter = new PrintWriter(path);
String line = "每行的内容";
printWriter.println(line);
printWriter.close();
  • equal & hashCode 函数
@Override
public boolean equals(Object o)
{
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Triangle triangle = (Triangle) o;
    return Double.compare(triangle.a, a) == 0 && Double.compare(triangle.b, b) == 0 && Double.compare(triangle.c, c) == 0;
}
@Override
public int hashCode()
{
    return Objects.hash(a, b, c);
}
  • 比较
"abc".compareTo("a");
Integer.compare(1,2);
Double.compare(1.1, 1.3);
  • 注意
    • 字符串中的字符不能用下标[i],要用charAt(i)
    • synchronized 拼写

算法

  • 最大公约数(非递归)
private static int gcd(int m, int n) {
    if (m < n) {
        int t = m;
        m = n;
        n = t;
    }
    while (m % n != 0) {
        int yu = m % n;
        m = n;
        n = yu;
    }
    return n;
}
  • 最大公约数(递归)
private static int gcd_recursive(int m, int n) {
    if (m < n) {
        int t = m;
        m = n;
        n = t;
    }
    if (m % n == 0)
        return n;
    return gcd_recursive(n, m % n);
}
  • ArrayList 比较器
//ArrayList<String>
strList.sort(new Comparator<String>()
{
    @Override
    public int compare(String o1,String o2)
    {
        ……
    }
})
  • 数组比较器
//String[] strList
Arrays.sort(strList, new Comparator<String>()
{
    @Override
    public int compare(String o1,String o2)
    {
        ……
    }
})
  • Comparable接口
abstract public class Shape implements Comparable{
    public int compareTo(Shape o)
    {
        return Double.compare(this.getArea(), o.getArea());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值