java易错题型(复习必看)

java易错题型:


  1. 下列符号中,哪个用于分隔throws关键字抛出的多个异常 逗号,

  2. Java中用来声明一个方法可能抛出某种异常的关键字是throw

  3. 对于catch子句的排列,下列哪种是正确的:子类异常在先,父类异常在后(先子类后父类)捕获到父类便不会在捕捉子类

  4. throws关键字用于对外声明方法可能发生的异常,这样调用者在调用方法时,可以明确知道该方法有异常,并进行相关处理

  5. this关键字可以用来调用构造方法,不能在普通方法中使用,只能写在构造方法中,而且必须写在第一条语句

  6. 静态变量用于共享数据,例如班级,每个人的名字可以不同,但是班级一定相同,这是后就可以使用static来输入班级:static string classname;然后就可以在创建对象前student.classname=“三年级”,这时候当创建其他对象就不需要另外赋值

  7. 子类继承父类,要想在子类中修改父类变量,需要在子类的构造方法中修改,例如,不过调用父类的方法,可以在任何方法中调用,但是不能在非方法外调用

    class Fu{
        public int num=20;
    }
    class Zi extends Fu{
        Zi(){
         //无参构造
            super.num=2;
        }
        
    
  8. 是的,你完全正确。在Java中,如果一个类(包括接口)被声明为public,那么它必须被定义在与其类名(包括大小写)完全相同的.java文件中。这是Java编程语言的一个基本规则。

    例如,如果你有一个公共接口叫做E,那么它应该被定义在一个叫做E.java的文件中。同样地,如果你有一个公共类叫做MyClass,那么它应该被定义在一个叫做MyClass.java的文件中

  9. 一个类继承了接口的抽象方法就必须实现这个接口的所有抽象方法

  10. 向上转型是指将子类对象转换为父类类型。向上转型是自动且安全的,因为子类对象本质上也是一种父类对象。向上转型的主要目的是利用多态性,使得父类引用可以指向子类对象。向下转型是指将父类对象转换为子类类型。向下转型是显式的,并且需要进行类型检查,以确保父类引用实际上指向的是子类对象。向下转型如果不正确,会抛出 ClassCastException 异常。

  11. 问题:匿名内部类

  12. string类属于java.long 包

  13. 构造方法的重写与重载:重载是方法名相同参数不同,重写是指子类写了与父类同方法名同参数数量的方法

  14. substring截取字符串:一个参数,直接从该参数索引到字符串结束,两个参数:包头不包尾:包含起始下标字符不包含结尾下标字符

  15. 抽象方法是没有方法体的方法,包含抽象方法的类必须声明为抽象类,但是抽象类可以不包含任何抽象方法,只需使用abstract关键字修饰即可,另外抽象类也可包含具体方法

  16. 构造方法和普通方法的区别:

    1. 构造方法的方法名与类名相同
    2. 构造方法没有返回值类型
    3. 没有return语句
  17. 在java中如何处理异常

    1. 使用try{}catch(){}finally{}语句
    2. 在方法名后边使用throws Exception语句
  18. byte类型的数据在进行运算的时候会自动提升为int类型,需要加一个byte a=(byte)(b+c)

  19. java的IO操作

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    
    public class starct{
        public static void main(String args[]) throws Exception{
            FileReader reader=new FileReader("abc.txt");
            BufferedReader aa=new BufferedReader(reader);
            FileWriter write=new FileWriter("cba.txt");
            BufferedWriter bb=new BufferedWriter(write);
            String str;
            while((str=aa.readLine())!=null{
                bb.write(str);
                bb.newLine();//生成换行符
            }
            aa.close();
            bb.close();
        }
                  }
    

在这里插入图片描述

import javafx.stage.DirectoryChooserBuilder;

import javax.swing.*;
import javax.xml.bind.Unmarshaller;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public  class  starct extends JFrame{
    JTextArea area;
    JTextField tf;
    public starct(){
        setLayout(new GridLayout(3,1));//设置构造方法直接生成窗体
        JLabel label=new JLabel("姓名");//设置姓名标签
        tf=new JTextField(15);
        JLabel lb1=new JLabel("选课");
        JCheckBox cb1=new JCheckBox("英语");
        JCheckBox cb2=new JCheckBox("数学");
        JCheckBox cb3=new JCheckBox("计算机");
        area=new JTextArea();
        JPanel panel1=new JPanel();
        JPanel panel2=new JPanel();
        panel1.add(label);
        panel1.add(tf);
        panel2.add(lb1);
        panel2.add(cb1);
        panel2.add(cb2);
        panel2.add(cb3);
        add(panel1);
        add(panel2);
        add(area);
        cb1.addActionListener(listener1);
        cb2.addActionListener(listener1);
        cb3.addActionListener(listener1);
        setSize(300,150);
        this.setVisible(true);
    }
    Set<String> hobbies=new HashSet<String>();
    ActionListener listener1=new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JCheckBox cb=(JCheckBox) e.getSource();
                    if(cb.isSelected()){
                        hobbies.add(cb.getText());
        }else{
                        hobbies.remove(cb.getText());
                    }
                    print();
    }
};
    private void print(){
    area.setText("");
    if(hobbies.size()>0)
        area.append(tf.getText()+"的选课有");
        Iterator<String> it=hobbies.iterator();
        while(it.hasNext()){
            area.append(it.next()+" ");
        }
    }
    public static  void main(String []args){
        new starct();
    }
}

  1. arraylist集合的遍历
import java.util.ArrayList;
import  java.util.*;
public class starct{
    public static void main(String[] args) {
        ArrayList st=new ArrayList();
        st.add("shix");
        st.add("hhh");
        Iterator it=st.iterator();
        while(it.hasNext()){
            Object o=it.next();
            System.out.println(o);
        }
    }
}

另一种遍历方法:foreach循环

for(Object o:st){
    System.out.println(o);
}

foreach循环的局限性:不能修改数组中的元素

  1. hashmap的遍历;
import jdk.nashorn.internal.runtime.arrays.IteratorAction;

import java.util.ArrayList;
import  java.util.*;
public class starct{
    public static void main(String[] args) {
        HashMap aa=new HashMap();
        aa.put(1,"shix");
        aa.put(2, "噢噢噢噢、");
        System.out.println(aa.get(2));
        System.out.println(aa.get(1));//根据键获取值
        Set keyset=aa.keySet();//从一个aa映射中获取键的集合keyset
        Iterator st=keyset.iterator();//然后创建一个迭代器来遍历这些键
        while (st.hasNext()){
            Object hh=st.next();//hh获取键
            Object value=aa.get(hh);//value获取该键值的value
            System.out.println(hh+":"+value);
        }
    }
}
  1. 两种实现多线程的方式
import jdk.nashorn.internal.codegen.OptimisticTypesPersistence;
import jdk.nashorn.internal.runtime.arrays.IteratorAction;

import java.util.ArrayList;
import  java.util.*;
class Ticket extends Thread{
    private int tickets=100;
    public void run(){
        while(true){
            if(tickets>0){
                Thread th=Thread.currentThread();//获取当前线程
                String th_name=th.getName();//获取当前线程的名字
                System.out.println(th_name+"正在发售"+ tickets--+"票");
            }
        }
    }
}
public class starct{
    public static void main(String[] args) {
       new Ticket().start();
       new Ticket().start();
       new Ticket().start();

    }
}
import jdk.nashorn.internal.codegen.OptimisticTypesPersistence;
import jdk.nashorn.internal.runtime.arrays.IteratorAction;

import java.util.ArrayList;
import  java.util.*;
class Ticket implements Runnable{
    private int tickets=100;
    public void run(){
        while(true){
            if(tickets>0){
                Thread th=Thread.currentThread();//获取当前线程
                String th_name=th.getName();//获取当前线程的名字
                System.out.println(th_name+"正在发售"+ tickets--+"票");
            }
        }
    }
}
public class starct{
    public static void main(String[] args) {
        Ticket tw=new Ticket();
       new Thread(tw,"窗口").start();
       new Thread(tw,"shix");

    }
}
  1. 多态,异常
  2. 匿名内部类
import jdk.nashorn.internal.codegen.OptimisticTypesPersistence;
import jdk.nashorn.internal.runtime.arrays.IteratorAction;

import java.util.ArrayList;
import  java.util.*;
interface animal{
    void shot();
}
public class starct{
    public static void main(String[] args) {
       String name="笑话";
       animalshot(new animal(){
           public void shot(){
               System.out.println("喵咪爱哦");
           }
       });

    }
    public static void animalshot(animal an){
        an.shot();
    }
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/748217.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决“Duplicate keys detected: ‘ ‘.This may cause an update error.”问题

问题原因 出现“Duplicate keys detected”的错误&#xff0c;通常表示在v-for指令中使的:key绑定值有重复。 如果前端是静态数据&#xff0c;一般能自我避免:key绑定值有重复。如果前端是绑定的动态数据&#xff0c;那么需要另外提供一个唯一的键。 在这个例子中&#xff0c…

CV每日论文--2024.6.26

1、StableNormal: Reducing Diffusion Variance for Stable and Sharp Normal 中文标题&#xff1a;StableNormal&#xff1a;减少扩散方差以实现稳定且锐利的法线 简介&#xff1a;本文介绍了一种创新解决方案&#xff0c;旨在优化单目彩色输入&#xff08;包括静态图片与动态…

糖与蛋白质的“隐秘对话”:DeepGlycanSite如何揭示生命之谜

在生命的复杂舞台上&#xff0c;糖类与蛋白质之间的相互作用犹如一场精心编排的舞蹈&#xff0c;其背后的每一个细微动作都可能对生物体的生理与病理过程产生深远影响。然而&#xff0c;糖类分子的多样性和复杂性&#xff0c;使得科学家们对糖-蛋白质结合位点的识别和研究充满了…

数据预处理功能教程,上传文件生成知识库 | Chatopera

如何快速的生成高质量的知识库&#xff1f; 数据预处理功能教程 | Chatopera 云服务低代码定制聊天机器人 关于 Chatopera Chatopera 云服务重新定义聊天机器人&#xff0c;https://bot.chatopera.com 定制智能客服、知识库、AI 助手、智慧家居等智能应用&#xff0c;释放创新…

图形化用户界面-java头歌实训

图形化用户界面 import java.awt.*; import javax.swing.*; public class GraphicsTester extends JFrame { public GraphicsTester() { super("Graphics Demo"); setSize(480, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void paint…

Node.js 个人博客

关于该博客 这是一个自己搭建的简易的博客&#xff0c;用于记录一些学习笔记和技术分享。在大四毕业时完成了第一个版本&#xff0c;后续会不断完善和更新。欢迎大家提出宝贵意见和建议。 详细介绍在 blog/posts/博客/博客搭建.md 中: https://github.com/ximingx/blog/blob/m…

php goto解密脚本源码

php goto解密脚本源码 源码下载&#xff1a;https://download.csdn.net/download/m0_66047725/89426171 更多资源下载&#xff1a;关注我。

【Java Web】Servlet控制器

目录 一、Servlet简介 二、Servlet运行流程 三、Servlet开发流程 四、Servlet-api.jar包导入和Content-Type问题 4.1 Servlet-api.jar导入问题 4.2 Http报文头中的Content-Type属性 五、Servlet_url-pattern请求映射路径设置 5.1 url-pattern方式 5.2 注解方式配置servlet 六、…

Linux系统之nice命令的基本使用

Linux系统之nice命令的基本使用 一、nice命令介绍1.1 nice命令简介1.2 进程优先级介绍 二、nice命令基本语法2.1 nice命令的help帮助信息2.2 nice命令选项解释 三、nice命令的基本使用3.1 查看进程优先级3.2 使用nice启动进程3.3 提高优先级 四、注意事项 一、nice命令介绍 1.…

【unity笔记】七、Mirror插件使用

一、简介 Mirror 是一个用于 Unity 的开源多人游戏网络框架&#xff0c;它提供了一套简单高效的网络同步机制&#xff0c;特别适用于中小型多人游戏的开发。以下是 Mirror 插件的一些关键特点和组件介绍&#xff1a; 简单高效&#xff1a;Mirror 以其简洁的 API 和高效的网络…

操作系统面试篇一

很多读者抱怨计算操作系统的知识点比较繁杂&#xff0c;自己也没有多少耐心去看&#xff0c;但是面试的时候又经常会遇到。所以&#xff0c;我带着我整理好的操作系统的常见问题来啦&#xff01;这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如 用户态和内核态、系统…

在OPenFast中.fst文件,.sum文件,.ech文件,.out文件,.outb文件的功能和作用

在OpenFAST中&#xff0c;5MW_Land_DLL_WTurb目录下的这些文件分别有不同的作用&#xff0c;它们用于不同的模块和目的。以下是每个文件的总结及其作用&#xff1a; 5MW_Land_DLL_WTurb.fst 作用&#xff1a;这是OpenFAST主输入文件。内容&#xff1a;该文件包含了整个仿真所需…

.NET 一款支持8种方式维持权限的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

80年代怀旧动画片大全集,90年代老动画片大全集视频少儿经典下载

观看动画片时&#xff0c;儿童注意力的一般都比较稳定&#xff0c;习惯于跟随动画片的变化而变化。所以&#xff0c;动画片可以从儿童熟悉的事物入手&#xff0c;引起儿童的兴趣&#xff0c;调动儿童的积极性&#xff1b;通过动画片的感染力把情感传达给儿童&#xff0c;把儿童…

Vue-Ci搭建项目

项目创建 vue-cli 官方提供的一个脚手架,用于快速生成一个vue的项目模板;预先定义 好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个 骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速; 主要的功能 ● 统一的目录结构 ● 本地调试 热部署 ● 单元…

Vue原生写全选反选框

效果 场景&#xff1a;Vue全选框在头部&#xff0c;子框在v-for循环内部。 实现&#xff1a;点击全选框&#xff0c;所有子项选中&#xff0c;再次点击取消&#xff1b;子项全选中&#xff0c;全选框自动勾选&#xff0c;子项并未全选&#xff0c;全选框不勾选&#xff1b;已选…

数据恢复篇:如何恢复丢失的Android短信?

许多用户发现自己处于重要短信意外从Android手机中删除的情况。幸运的是&#xff0c;有一些行之有效的方法可以在没有root的情况下恢复已删除的短信Android&#xff0c;这可以成为救命稻草。这些技术不需要深厚的技术知识&#xff0c;也不需要损害设备的安全性。为了帮助您摆脱…

vscode中的字符缩进问题

问题描述&#xff1a; 如图当一行代码中出现不同类型的字符时&#xff0c;使用tab缩只是插入了固定数量&#xff08;默认4&#xff09;的空格或制表符&#xff0c;仍然无法对齐。 解决方法&#xff1a; vscode找到设置&#xff0c;搜索fontFamily&#xff0c;对应输入框写入mon…

DVWA 靶场 File Upload 通关解析

前言 DVWA代表Damn Vulnerable Web Application&#xff0c;是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序&#xff0c;旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…

华三中小企业组网

一、组网需求 在中小园区中&#xff0c;S5130系列或S5130S系列以太网交换机通常部署在网络的接入层&#xff0c;S5560X系列或 S6520X系列以太网交换机通常部署在网络的核心&#xff0c;出口路由器一般选用MSR系列路由器。 核心交换机配置VRRP保证网络可靠性。园区网中不同的…