java易错题型(复习必看)

news2025/6/24 21:03:06

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();
    }
}


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙NEXT开发知识:工具常用命令—ohpm config

设置ohpm用户级配置项。 命令格式 ohpm config set <key> <value> ohpm config get <key> ohpm config delete <key> ohpm config list 说明 配置文件中信息以键值对<key> <value>形式存在。 功能描述 ohpm 从命令行和 .ohpmrc 文件中…

Android SurfaceFlinger——动画进程销毁(十七)

在动画播放完成后&#xff0c;对动画相关资源释放的同时还需要销毁动画进程。这里我们就来分析一下动画进程的销毁流程。 一、动画进程销毁 动画进程的销毁一般是在桌面进程准备显示的时候&#xff0c;而桌面准备显示是在桌面 Activity 的 Resume 生命周期&#xff0c;我们来看…

江科大—读写内部闪存FLASH读取芯片ID

读写内部闪存FLASH 右下角是OLED&#xff0c;然后左上角在PB1和PB11两个引脚&#xff0c;插上两个按键用于控制。下一个代码读取芯片ID&#xff0c;这个也是接上一个OLED&#xff0c;能显示测试数据就可以了。 STM32-STLINK Utility 本节的代码调试&#xff0c;使用辅助软件…

Sparse4Dv2

Sparse4D: Multi-view 3D Object Detection with Sparse Spatial-Temporal Fusion 相关内容&#xff1a;总览&#xff0c;Sparse4D v1&#xff0c;Sparse4D v3&#xff0c; 单位&#xff1a;地平线(Sparse4D v1 原班人马) GitHub&#xff1a;https://github.com/HorizonRobo…

计算机网络之数据通信原理(中)

上节内容传送口&#xff1a;数据通信原理基础 1.数据传输方式 1.1并行传输 并行传输: 字符编码的各个比特同时传输 特点&#xff1a; 一个比特时间内可传输一个字符&#xff0c;传输速度快&#xff0c;每个比特传输要求一个单独的信道支持&#xff0c;通信成本高&#xf…

基于单片机和 Arduino 平台的六自由度可控机械手臂

摘 要 : 为了降低机械手臂的设计开发难度 &#xff0c; 并使之尽早地投入应用 &#xff0c; 设计一种基于单片机和 Arduino 平台的六自由度可控机械手臂 。提出六自由度可控机械手臂的控制方案&#xff0c; 给出机械手臂控制系统的结构框图 。 详细设计六自由度可控机械手臂…

《UDS协议从入门到精通》系列——图解0x35:请求上传

《UDS协议从入门到精通》系列——图解0x35&#xff1a;请求上传 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 三、通信示例 Tip&#x1f4cc;&#xff1a;本文描述中但凡涉及到其他UDS服务的&#xff0c;将陆续提供链接跳转方式以便快…

Power BI可视化表格矩阵如何保持样式导出数据?

故事背景&#xff1a; 有朋友留言询问&#xff1a;自己从Power BI可视化矩阵表格中导出数据时&#xff0c;导出的表格样式会发生改变&#xff0c;需要线下再手动调整&#xff0c;重新进行透视组合成自己想要的格式。 有没有什么办法让表格导出来跟可视化一样&#xff1f; Po…

pd虚拟机 Parallels Desktop 19 for Mac 破解版小白安装使用指南

Parallels Desktop 19 for Mac 乃是一款适配于 Mac 的虚拟化软件。它能让您在 Mac 计算机上同时运行多个操作系统。您可借此创建虚拟机&#xff0c;并于其中装设不同的操作系统&#xff0c;如 Windows、Linux 或 macOS。使用 Parallels Desktop 19 mac 版时&#xff0c;您可在 …

编译正则表达式模式re.compile

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 编译正则表达式模式 re.compile [太阳]选择题 根据给定的Python代码&#xff0c;哪个选项是正确的&#xff1f; import re pattern re.compile(r\d) print(f"【显示】pattern{patter…

eBPF 如何塑造 Linux 和平台工程的未来

当Docker 于 2013 年突然出现时&#xff0c;Linux 容器似乎一夜成名。但容器&#xff08;以及微服务和Kubernetes&#xff09;的演变实际上是基于 Linux 操作系统中的内核原语而进行的&#xff0c;历时数十年。 Docker 使用这些原语&#xff08;即 cgroups 和命名空间&#xf…

前端框架中的前端安全性(Front-end Security)

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端框架中的前端安全性&#xff08;Front-end Security&#xff09;1. 引言2. 常见的前端安全威胁2.1 跨站脚本攻击&#xff08;XSS&#xff09;2.1.1 防御措施 2.2 跨站请求伪造&#xff08;CSRF&#xff09;2.2.1 防御措施 2.3 …

YOLOv8改进 | 添加注意力篇 | 结合Mamba注意力机制MLLA助力YOLOv8有效涨点(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是结合号称超越Transformer架构的Mamba架构的最新注意力机制MLLA&#xff0c;本文将其和我们YOLOv8进行结合&#xff0c;MLLA&#xff08;Mamba-Like Linear Attention&#xff09;的原理是通过将Mamba模型的一些核心设计融入线性注意力…

【毛毛虫案例-拖拽 Objective-C语言】

一、这个毛毛虫案例啊,是这个样子的, 1.首先,你这个脑袋,这个蓝色的脑袋,它是可以拽起来的, 下面的红色球,一个一个中心点之间,相互去附着, 其他的红色球,是拖不起来的, 只有这个蓝色的东西,可以拽起来,这个蓝色的View,还有重力, 这个蓝色的View,我在拖动它…

Spring底层原理之proxyBeanMenthod实例 动态代理 反射 Bean的拦截

proxyBeanMenthod 假设我们要进行一个系统的二次开发 然后第一次开发我们实用的是XML声明bean 二次开发的时候要用注解 我们如何把bean都加载上来呢 我们首先创建一个全新的配置类 package com.bigdata1421.config;public class SpringConfig32 { } 我们创建一个APP 加载…

R语言数据分析案例37-旅游景点聚类分析

一、研究背景 近年来&#xff0c;随着旅游业的迅猛发展&#xff0c;旅游景点的竞争日益激烈。如何在众多景点中脱颖而出&#xff0c;吸引更多游客&#xff0c;成为各大景点管理者关注的焦点。通过对旅游景点进行深入的数据分析&#xff0c;可以帮助管理者更好地了解景点的优势…

HashMap第5讲——resize方法扩容源码分析及细节

put方法的源码和相关的细节已经介绍完了&#xff0c;下面我们进入扩容功能的讲解。 一、为什么需要扩容 这个也比较好理解。假设现在HashMap里的元素已经很多了&#xff0c;但是链化比较严重&#xff0c;即便树化了&#xff0c;查询效率也是O(logN)&#xff0c;肯定没有O(1)好…

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程

最新MDYS14源码影视视频网站模板/苹果CMS系统/附搭建教程 基本介绍&#xff1a; 1、后台增加自定义参数&#xff0c;对应会员升级页面&#xff0c;以及积分充值 2、视频&#xff0c;演员&#xff0c;专题&#xff0c;收藏&#xff0c;会员系统模块齐全&#xff0c;支持子分类…

本地读取classNames txt文件

通过本地读取classNames,来减少程序修改代码,提高了程序的拓展性和自定义化。 步骤: 1、输入本地路径,分割字符串。 2、将className按顺序放入vector容器中。 3、将vector赋值给classNmaes;获取classNames.size(),赋值给CLASSES;这样,类别个数和类别都已经赋值完成。…

阀门盘根的介绍

盘根&#xff08;编制盘根&#xff09;&#xff08;packing&#xff09;也叫密封填料&#xff0c;通常由较柔软的线状物编织而成&#xff0c;通常截面积是正方形或长方形、圆形的条状物填充在密封腔体内,从而实现密封。填料密封最早是以棉麻等纤维塞在泄漏通道内来阻止液流泄漏…