java期末复习

简答题

抽象类与接口的异同

相同点

  • 都不能被实例化
  • 接口的实现类或抽象类的子类只有实现了接口或抽象类中的方法后才能实例化

不同点

  • 接口只有定义,不能有方法的实现,而抽象类可以有定义与实现
  • 接口强调特定功能的实现,而抽象类强调所属关系

JDBC数据库操作步骤

  1. 加载数据库驱动程序
  2. 建立数据库连接
  3. 创建SQL语句
  4. 执行SQL语句
  5. 处理结果集
  6. 关闭连接和释放资源

什么是匿名类,它的含义与定义形式?

匿名类是定义一个没有显示命名的类,它可以用作一个单独的实例或作为其他类的

定义形式:

new <父类或接口> {

};

预处理(PreparedStatement)和Statement的区别?

Statement接口在创建语句对象时,不带参数,进行查询更新操作时,再传入完整的SQL语句。

PreparedStatement接口创建预处理语句对象时,传入带通配符?的SQL语句,查询更新操作时不带参数

Super关键词的作用

  1. 访问父类被隐藏的成员变量
  2. 调用父类中被重写的成员方法
  3. 调用父类的构造方法

实例变量和类变量的区别

  1. 不同对象的实例变量互不相同
  2. 所有对象共享类变量
  3. 直接类名访问类变量

算法题

购物小票:
import java.util.*;
public class FoundPrice {
 public static void main(String args[]) {
 String s=" 牛奶 :89.8 元,香肠 :12.9 元 啤酒 :69 元 巧克力 :132 元";
 String regex="[^0123456789.]" ; // 匹配非数字的正则表达识
 String digitMess=s.replaceAll(regex,"*");
 StringTokenizer fenxi=new StringTokenizer(digitMess, "*");// 创建 fenxi, 用* 做分隔标记解析 digitMess 中的单词
 int number=fenxi.countTokens(); //fenxi 调用 countTokens() 方法返回单词数量
 double sum=0;
 while(fenxi.hasMoreTokens()) {
 String str=fenxi.nextToken(); //fenxi 调用 nextToken() 方法返回单词
 System.out.println(str);
 sum=sum+Double.parseDouble(str);
 }
 System.out.println(" 购物小票中的商品种类: "+number+" 种");
 System.out.println(" 购物小票中的价格总额: "+sum+"元");
 }
} 

字符输入输出流:
import java.io.*;
public class FileDemo {
    public static void main(String args[]) {
    File sourceFile =new File("A.txt");
    File targetFile =new File("B.txt");
    char c[]=new char[19];
    try{
        Writer out =new FileWriter(targetFile,true);
        Reader in =new FileReader(sourceFile);
        int n=-1;
        while((n=in.read(c))!=-1){
            out.write(c,0,n);
        }
        out.flush();
        out.close();
    }catch(IOException e){
        System.out.println("Error"+e);
    }
    }
}
把错别字替换为正确用字的字符串:
import java.util.regex.*;
public class ReplaceErrorWord {
    public static void main(String[] args) {
        String str = "忘记密码,不要惊慌失错,请登陆www.yy.cn或www.tt.cc";
        Pattern pattern;
        Matcher matcher;
        String regex = "登陆";
        pattern = Pattern.compile(regex); //使用regex初始化模式对象pattern
        matcher = pattern.matcher(str); //得到检索str的匹配对象matcher
        while (matcher.find()) {
            String s = matcher.group();
            System.out.print(matcher.start() + "位置出现:");
            System.out.println(s);
        }
        System.out.println("将\"登陆\"替换为\"登录\"的字符串:");
        String result = matcher.replaceAll("登录");
        System.out.println(result);
        pattern = Pattern.compile("惊慌失错");
        matcher = pattern.matcher(result);
        System.out.println("将\"惊慌失错\"替换为\"惊慌失措\"的字符串:");
        result = matcher.replaceAll("惊慌失措");
        System.out.println(result);
    }
}
猜大小:
import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
    public static void main(String args[]) {
        Scanner reader = new Scanner(System.in);
        Random random = new Random();
        System.out.println("给你一个1-100之间的整数,猜测这个数");

        //[0,100)间的随机整数
        int realNumber = random.nextInt(100)+1;
        int yourGuess = 0;
        System.out.print("输入你猜的数");
        yourGuess = reader.nextInt();
        while (yourGuess != realNumber) {
            if (yourGuess > realNumber){
                System.out.println("猜大了,再猜一次:");
                yourGuess = reader.nextInt();
            }
            else {
                System.out.println("猜小了,再猜:");
                yourGuess = reader.nextInt();
            }
        }
        System.out.println("猜对了!");
    }
}

综合题

1)设计接口Phone代表传统手机,在接口中定义receiveMessages()call()抽象方法。
2)设计接口SmartPhone代表智能手机,在接口中定义faceTime()方法,并使用extends关键字继承Phone接口,使其具有Phone接口的所有功能。
3)设计类MIPhone表示小米手机,类中定义useMIUI()方法,并实现SmartPhone接口的所有方法。
4)编写测试类Example11,测试类中对MIPhone进行实例化,并访问小米手机具有的各种功能。
 
代码:
interface Phone {
    void receiveMessages();
    void call();
}
interface SmartPhone extends Phone {
    void faceTime();
}
class MIPhone implements SmartPhone {
    @Override
    public void receiveMessages() {
        System.out.println("接收短信");
    }    
    @Override
    public void call() {
        System.out.println("打电话");
    }
    @Override
    public void faceTime() {
        System.out.println("进行FaceTime视频通话");
    }   
    public void useMIUI() {
        System.out.println("使用MIUI操作系统");
    }
}
public class Example11 {
    public static void main(String[] args) {
        MIPhone miPhone = new MIPhone();
        miPhone.receiveMessages();
        miPhone.call();
        miPhone.faceTime();
        miPhone.useMIUI();
    }
}
设计一个广告牌,希望所设计的广告牌可以展示许多公司的广告词。
(1)设计一个接口Advertisement ,有两个方法 showAdvertisement()getCorpName(),实现接口的类重写方法,给出各个公司的广告词和公司名称。
(2)设计广告牌类AdvertisementBoard,该类有一个show(Advertisement adver)方法,该方法的参数adver可以存放Advertisement接口的实现类的对象,同时,通过adver可以调用Advertisement接口中的两个方法 showAdvertisement()getCorpName(),显示公司的广告词和公司名称。
(3)分别创建WhiteCloundBlackLandCorp 两个Advertisement接口实现类。
(4)编写主类,输出两公司的广告词。
广告牌:
 interface Advertisement {//接口
    public void showAdvertisement();
    public String getCorpName();
}
 class AdvertisementBoard {
    Advertisement adver;   //声明接口变量

    public void setAdver(Advertisement adver) {
        this.adver = adver;   //adver接收对象的引用
    }
    public void show() {
        if(adver==null) {
            System.out.println("广告招商中");
        }
        else {
            adver.showAdvertisement();
        }
    }
}
 class WhiteClound implements Advertisement{
    public void showAdvertisement() {
        System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@");
        System.out.println("飞机中的战斗机,哎yes!");
        System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@");
    }
    public String getCorpName() {
        return "白云有限公司";
    }
}
 class BlackLandCorp implements Advertisement{
    public void showAdvertisement() {
        System.out.println("****************");
        System.out.println("劳动是爹\n土地是妈");
        System.out.println("****************");
    }
    public String getCorpName() {
        return "黑土集团";
    }
}
public class Show {
    public static void main(String[] args) {
        AdvertisementBoard board = new AdvertisementBoard();
        board.show();
        board.setAdver(new BlackLandCorp());
        board.show();
        board.setAdver(new WhiteClound());
        board.show();
    }
}
  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java 期末复习资料包括以下几个方面: 1. Java基础知识:掌握Java的基本语法、数据类型、运算符、流程控制语句等。 2. 面向对象编程:掌握Java的面向对象编程思想、类与对象、封装、继承、多态、抽象类和接口等。 3. 异常处理:掌握Java的异常处理机制,包括异常类的层次结构、异常处理语句(try-catch-finally)、throw和throws关键字等。 4. 集合框架:掌握Java的集合框架,包括List、Set、Map等集合容器,以及它们的特点和使用方法。 5. IO流:掌握Java的IO流,包括字节流和字符流,文件操作等。 6. 多线程编程:掌握Java的多线程编程,包括线程的创建和启动、线程同步、线程间通信等。 7. 数据库编程:掌握Java的数据库编程,包括JDBC API的使用、连接数据库、执行SQL语句等。 以下是一些Java期末复习资料的推荐: 1. 《Head First Java》:这是一本非常适合初学者入门的Java书籍,内容浅显易懂,同时又不失深度,适合用来巩固Java基础知识。 2. 《Java核心技术》:这是一本全面深入的Java教材,可以帮助你系统地学习Java的各种知识点,适合用来提高Java技能水平。 3. 《Java编程思想》:这是一本讲述Java编程思想和技巧的经典书籍,涵盖了Java的基础知识、面向对象编程、异常处理、集合框架、IO流、多线程编程和数据库编程等方面的内容。 4. MOOC网站上的Java课程:例如国大学MOOC网站上的《Java程序设计》和Coursera网站上的《Java程序设计与软件工程专项课程》,这些课程都提供了免费的在线学习资源和相关练习。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值