Java基础(四)

南京邮电大学电工电子基础B实验六(组合逻辑电路) 南京邮电大学电工电子基础B实验五(组合逻辑电路);电工电子;南京邮电大学;计算机学院;实验报告;电路图; 阅读详情

一、重写和重载的区别?
1 重载发生在同一个类中, 方法名相同, 参数类型/列表个数不同,和方法签名的其他任何关键字无关.
2 重写发生在子类继承父类的关系中, 方法名相同, 参数类型/列表也要相同,权限访问修饰符不能比父类更严格(小);返回值类型必须和父类相同或是父类返回值类型的子类/实现类.声明的异常不能比父类更大。
二、instanceof的作用?
判断某个变量是否为某种类型.
应用场景: 不同的子类拥有不同的行为方法.
当使用父类作为变量引用子类对象的时候,要调用子类独有的方法,要先做
instanceof判断, 再强转回对应的子类调用该子类的独有方法…
如果不判断直接强转,可能会抛出ClassCastException(类型转换异常)
三、try中有return, finally会不会执行
1 必须执行
2 在return的中间执行
3 return的值会在临时空间, 然后去执行finally
4 如果finally中没有新的return, 那么最终返回的还是try里面的值
5 如果finally中有新的return, 那么会覆盖临时空间的值, 最终返回
finally里面的值

四、异常的理解?
一. 结构:
java中异常的基类为
Throwable
Exception
RuntimeException运行时异常:
ClassCastException(类转换异常)
IndexOutOfBoundsException(数组越界异常)
NullPointerException(空指针异常)
ArrayStoreException(数据存储异常,操作数组时类型不一致)
BufferOverflowException(还有IO操作的,缓冲溢出异常)
!Runtime…(CheckedException)检查性异常
Error
错误
指编译错误的代码,内存溢出,硬件故障…等不可抗力错误.
程序自身一般无法修复.

2. 运行时异常RuntimeException
  2.1 该异常在程序运行的时候可能会抛出的异常,该异常jvm不要求一定处理.
  (程序员可以选择处理或不处理)
3. 检查性异常"CheckedException"
  3.1 该异常要求程序员必须处理的异常. 否则编译不通过.
番外: 什么是处理? 处理的意思trycatch或继续往外声明throws

五、throws和throw的含义?
throws声明异常: 告诉调用方,我这个方法可能会抛出(报错)一个这样的异常.
当抛出的异常为检查性异常,那么调用方必须处理,或继续往外声明.

throw抛出异常 程序本来不报错的,手动让它报一个我们指定的异常

六、什么是构造方法
构造方法没有返回值类型, 但是可以有参数(和普通方法一样)
构造方法的名字不能随便取,只能且必须和类名一致.
构造方法是类在被构造为实例的时候调用的
(new Class的时候调用的.)
构造方法如果不写, 默认有一个public的. but如果写了
那么默认的就没有了.
七、访问修饰符有哪些, 区别?
public 自己, 同包, 子类, 其他任意包任意类
protected 自己, 同包, 子类
default/friendly(不写) 自己, 同包
private 自己

八、多态的表现形式有?
1、父类引用指向子类对象
2、方法的重载,在调用的时候,是多态的表现如,System.out.println(?类型);
3、方法的重写,在使用父类变量调用会自动调用子类重写的方法.
4、可变参数…

九、try,catch
1、try中的代码如果正常不报错, 那么catch不会执行.
2、try中如果报错, 那么会从报错的位置直接跳到catch中执行
(该报错位置后面的代码没有机会执行,被跳过了),
catch中可以做一些记录,打印等操作(程序员自己选择).
catch执行完成后,程序不会结束, 而是已经修复好,继续往下执行…
3、catch可以有多个,从上往下匹配, 匹配后,则修复了, 则不会在进入其他同级catch.
若所有的catch都没有匹配到, 那么程序的异常没有被处理,程序就结束了(死亡)
4. try可以单独使用, 也可以和catch使用, 也可以和finally使用
也可以和catch和finally使用
十、抽象类和接口的区别?
1 抽象类有构造器, 接口木有
2 抽象类可以有普通方法和静态方法, 接口木有,接口中只有抽象方法
3 抽象类只能被单继承, 接口可以多实现
4 抽象类可以有普通属性, 接口木有, 接口的属性都为静态常量
5 抽象类可以使用4个访问修饰符, 接口只有public

代码案例积累:

//枚举类型的简单模型!
public enum DogPet {
    labrador("聪明的拉布拉多犬"),
    schnauzer("酷酷的雪娜瑞");
    DogPet(String type){
        this.type = type;
    }
    public final String type;
}

简单的抽象工厂案例

public interface Shape {
    void draw();
}
public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Inside Circle::draw() method.");
    }
}
public interface Color {
    void fill();
}
public class Blue implements Color {
    @Override
    public void fill() {
        System.out.println("Inside Blue::fill() method.");
    }
}
public class Red implements Color {
    @Override
    public void fill() {
        System.out.println("Inside Red::fill() method.");
    }
}
public abstract class AbstractFactory {
    public abstract Color getColor(String color);
    public abstract Shape getShape(String shape);
}
public class ShapeFactory extends AbstractFactory {
    @Override
    public Color getColor(String color) {
       return null;
    }

    @Override
    public Shape getShape(String shapeType) {
        if (shapeType == null){
            return null;
        }
        if (shapeType.equalsIgnoreCase("CIRCLE")){
            return new Circle();
        }else if (shapeType.equalsIgnoreCase("RECTANGLE")){
            return new Rectangle();
        }else if (shapeType.equalsIgnoreCase("SQUARE")){
            return new Square();
        }
        return null;
    }
}
public class ColorFactory extends AbstractFactory {
    @Override
    public Color getColor(String color) {
        if (color == null){
            return null;
        }
        if (color.equalsIgnoreCase("RED")){
            return new Red();
        }else if (color.equalsIgnoreCase("GREEN")){
            return new Green();
        }else if (color.equalsIgnoreCase("BLUE")){
            return new Blue();
        }
        return null;
    }

    @Override
    public Shape getShape(String shape) {
        return null;
    }
}
public class FactoryProducer {
    public static AbstractFactory getFactory(String choice){
        if (choice.equalsIgnoreCase("SHAPE")){
            return new ShapeFactory();
        }else if (choice.equalsIgnoreCase("COLOR")){
            return new ColorFactory();
        }
        return null;
    }
}
public class FactoryPatternDemo {
    public static void main(String[] args) {
        AbstractFactory shapeFactory = FactoryProducer.getFactory("SHAPE");
        Shape shape1 = shapeFactory.getShape("CIRCLE");
        shape1.draw();
        Shape shape2 = shapeFactory.getShape("RECTANGLE");
        shape2.draw();
        Shape shape3 = shapeFactory.getShape("SQUARE");
        shape3.draw();
        AbstractFactory colorFactory = FactoryProducer.getFactory("COLOR");
        Color color1 = colorFactory.getColor("RED");
        color1.fill();
        Color color2 = colorFactory.getColor("GREEN");
        color1.fill();
        Color color3 = colorFactory.getColor("BLUE");
        color1.fill();
    }
}

单例模型之懒汉式

public class Singleton {
    private Singleton(){}
    private static Singleton instance;
    public static Singleton getInstance(){
       synchronized (Singleton.class){
           if (instance == null){
               instance = new Singleton();
           }
           return instance;
       }
    }   //这懒汉式
    public void print(){
        System.out.println("哈哈哈哈这是单例模式!");
    }
}

单例模型之饿汉式

public class Singleton {
    private Singleton(){}
    private static Singleton instance = new Singleton();
    public static Singleton getInstance(){
       return instance;
    }  //这是饿汉式
 
    public void print(){
        System.out.println("哈哈哈哈这是单例模式!");
    }
}
SAP_MM模块库存概览俄罗斯报表简介 本文介绍了SAP MM模块中"库存概览俄罗斯报表"的功能与应用。该报表主要用于查看物料在不同库存地点和类型的库存情况,并满足俄罗斯当地法规要求。文章解释了"俄罗斯报表"可能指代本地化合规库存报表或客户自定义报表,详细说明了事务代码J3RFLVMOBVEDH的操作步骤,包括公司代码、物料编码、日期范围等查询条件,并解释了报表中各字段含义如期初期末库存数量与价值。最后强调在物料分类账处理完成后使用该报表可获得实际库存价值,为SAP用户提供了实用的库存管理参考。 阅读详情

相关推荐

【技术拆解】Illumina边合成边测序(SBS)核心流程全解析 | 从文库构建到数据分析

本文深入解析了Illumina边合成边测序(SBS)技术的完整流程。从DNA样本的文库构建(片段化、加接头、扩增),到Flowcell上的簇生成(桥式PCR),再到核心的边合成边测序(SBS)循环(荧光标记、可逆终止),最后简述了从原始数据到生物学洞见的数据分析步骤,为理解这一主流高通量测序技术提供了清晰的框架。

weixin_29201859的博客 535

catch所有提示的异常类型,程序执行异常时却还是没有报错,异常没有被catch到吗[已解决]

有时候调试程序的时候,真的是会让人心态有点崩溃,没有捕获到错误,但是程序运行出来的结果就是不对。按照我同事的话说:“我的代码有它自己的思想”。 今天的情况是,在同步一个订单时,会先同步头表,再同步行表。执行后提示正常,但是只提示同步头表成功,行表没进行同步,程序就结束了。部分代码如下: // 同步ASN到货单头 OmOrderDeliverHeaderSynService omOrde...

Rosen's 1735

VirtualBox安装Win10虚拟机超详细教程(附微软官方镜像下载)

本文提供了一份详细的VirtualBox安装Win10虚拟机教程,涵盖从环境准备、工具下载到系统安装与初始配置的全过程。特别推荐使用微软官方镜像下载,确保系统纯净安全。此外,还分享了性能优化技巧和常见问题解决方案,帮助用户高效搭建稳定的Windows测试环境。

weixin_29243279的博客 918

java catch自定义异常_Java异常、try-catch、自定义异常

一、异常1、异常的概念:异常指的是不正常, 指的是程序中出现了某些问题。在Java中,所有的问题都可以使用一个类来表示,这个类叫做Throwable。Throwable是Java中所有异常和错误的父类。Throwable|-- Error: 表示错误。 指的是不可挽回的严重问题。 相当于人得了绝症。|-- Exception:表示异常, 指的是可以挽回的轻微问题。 相当于人得了感冒,咳嗽。2、异常...

weixin_34902900的博客 2172

用友YonSuite产品实操手把手教学(图文版)

用友YonSuite

ct341688的博客 8158

STM32F030C8烧录实战:用J-Link Commander实现一键批量烧写(附完整脚本)

本文详细介绍了如何使用J-Link Commander工具链实现STM32F030C8的一键批量烧录,包括环境配置、批处理脚本设计、命令脚本解析以及生产环境实战技巧。通过自动化烧录流程,显著提升效率并降低人为错误,特别适合量产和频繁迭代的开发场景。

weixin_30505225的博客 461

Java 异常体系(美团面试)

Java把异常作为一种类,当做对象来处理。所有异常类的基类是Throwable类,两大子类分别是Error和Exception。   系统错误由Java虚拟机抛出,用Error类表示。Error类描述的是内部系统错误,例如Java虚拟机崩溃。这种情况仅凭程序自身是无法处理的,在程序中也不会对Error异常进行捕捉和抛出。   异常(Exception)又分为RuntimeExcep...

554

目标检测 RT-DETR(2023)详细解读

在使用了这个技巧后,显然训练过程中,类别的标签不再是此前的0和1离散值,而是0~1的连续值。关于 Query Selection(查询向量选择),大家应该并不陌生,这个方法可谓在DETR领域大杀四方,如DAB-DETR对查询向量进行重构理解,将其解释为Anchor,DN-DETR通过查询降噪来应对匈牙利匹配的二义性所导致的训练时间长的问题,DINO提出从Encoder中选择Top-k特征进行学习等一系列方法,这都无疑向我们证明,查询向量很重要,选择好的Query能够让我们事半功倍。在RT-DETR中,

qq_51352130的博客 5869

java try catch 异常后还会继续执行吗

java try catch 异常后还会继续执行吗? catch 中如果你没有再抛出异常 , 那么catch之后的代码是可以继续执行的 , 但是try中 , 报错的那一行代码之后 一直到try结束为止的这一段代码 , 是不会再执行的 所以,try块不要写的太大 ...

寒泉 2万+

STM32F4_LCD显示汉字

LCD显示汉字和显示图片、数字、字符的原理是一样的,都是将汉字、图片、数字以及字符转换点阵,进而通过函数扫描点阵在LCD上显示;

light_2025的博客 1万+

AIPex:AI + 自然语言驱动的浏览器自动化扩展

AIPex是一款革命性的Chrome扩展,通过AI技术实现自然语言驱动的浏览器自动化。它支持30多种自动化工具,包括智能标签页管理(分组、切换、批量操作)、页面内容提取(文本、链接、元数据)、交互元素操作(点击、滚动)以及表单智能填写等功能。用户只需用自然语言下达指令,即可快速完成复杂的浏览器操作,大幅提升工作效率。AIPex特别适合需要处理大量重复性网页操作的用户,如数据分析师、产品经理等。

blues_C的博客 1127

Java基础练习四

Java基础练习四

bao_14440的博客 220

使用菱FX5U系列PLC实现以太网通信的具体方法示例

接下来,我们将创建一个简单的CPU通信功能,以实现与其他设备的以太网通信。在上述代码中,我们首先设置访问号,然后创建一个数据读取命令(M_READ)和一个数据写入命令(M_WRITE)。此外,在实际应用中,您还需要确保PLC和其他设备之间的网络连接正常,并且遵循相应的通信协议。在上述代码中,我们执行了数据读取命令,并将接收到的响应存储在M_RESPONSE变量中。通过简单CPU通信功能,菱FX5U系列PLC可以实现与其他设备的以太网通信。我们将提供相应的源代码和详细的说明,以帮助您轻松实现这一功能。

DevCyberX的博客 1525

java方法四要素_Java基础语法

Free Talk最近在JavaGuide博客里面兜兜转转了几天,一边等华为的实训消息,一边随便看点Java后端开发的知识。但是这一周总感觉看了就忘,而且光看也很容易走神发呆,要不然就是去打王者啥的。决定还要按照直接写的Java后端学习路线一点点走下去,一篇篇写博客敦促自己,上个月的时候写了一些JVM相关的文章,现在把之前鸽的Java语言基础先补上。这边Java基础语言主要参照菜鸟教程和JavaG...

weixin_29170089的博客 865

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java基础四

Java基础 数组操作常见问题 数组脚标越界异常(ArrayIndexOutOfBoundsException) int[] arr = new int[2]; System.out.println(arr[3]); 访问到了数组中的不存在的脚标时发生。 空指针异常(NullPointerException) int[] arr = null; System.out.println(arr[0])...

qq_44544866的博客 186

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java基础增加 四

Java基础增加四       了解和入门注解的应用:        注解是JDK1.5的新特性。   基本注解:        @SuppressWarnings               这是用于压缩警告信息        @Deprecated

人王的专栏 2325

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Java基础四】

标准ASCII字符集ASCII(American Standard Code for Information Interchange):美国信息交换标准代码,包括了英文、符号等.标准ASCI使用1个字节存储一个字符,首位是0,总共可表示128个字符,对美国佬来说完全够用.GBK(汉字内码扩展规范,国标)汉字编码字符集,包含了2万多个汉字等字符,GBK中一个中文字符编码成两个字节的形式存储.注意:GBK兼容了ASCII字符集.GBK规定:汉字的第一个字节的第一位须是1。

qq_61915513的博客 851

java基础四

04.01_Java语言基础(循环结构概述和for语句的格式及其使用) A:循环结构的分类 for,while,do…while B:循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } C执行流程: a:执行初始化语句 b:执行判断条件语句,看其返回值是true还是false 如果是true,就继续执行 如果是fal...

weixin_43130532的博客 183

四、Java基础语法

1. 注释(理解) 注释是对代码的解释和说明文字,可以提高程序的可读性,因此在程序中添加必要的注释文字十分重要。Java中的注释分为三种: 单行注释。单行注释的格式是使用//,从//开始至本行结尾的文字将作为注释文字。 // 这是单行注释文字 多行注释。多行注释的格式是使用/* 和 */将一段较长的注释括起来。 /* 这是多行注释文字 这是多行注释文字 这是多行注释文字 */ 注意:多行注释不能嵌套使用。 文档注释。文档注释以/**开始,以*/结束。 /** 这个类绘制一个条形图 * @author r

huangbiaobiao的博客 122

JAVA基础四 函数

JAVA基础四 函数 函数的概念 函数就是定义在类`中的具有特定功能的一段独立小程序**,并能被多次使用。 函数定义格式 ***修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…) { 执行语句; return 返回值;/***/return关键字是用于结束该功能。并将后面的具结果返回给调用者。 //必须有return语句。 } 函数定义举例 public static int getsum(int a,int b) { return a+b; } 函数调用举例 public cl

weixin_43633742的博客 180

(四)Java 基础语法

本文介绍了Java基础语法核心内容,包括程序基本结构、注释、标识符与关键字、数据类型、变量与常量、运算符和流程控制。重点讲解了Java程序的类定义、主方法、输出语句;基本数据类型和变量声明;常用运算符的使用规则;以及条件语句和循环结构等流程控制方式。文章以简洁实用的代码示例说明核心概念,适合Java初学者快速掌握语言基础。

m0_58161223的博客 1408

JAVA实战———java基础四

1、数组数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。目的是便于管理数据和方便声明。2、数组的赋值方法有三种。第一种,直接赋值。第二种,new赋值第三种,赋空值。数组声明的格式是:数据类型  数组名。3、set集合的使用set中不能存储重复的元素,可以存储null元素。如果需要存储多个重复元素,需要使用List。4、TreeSet描述的...

Fly_鹏程万里 423

四、Java基础复习④

字节流与字符流 在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成。 在JAVA中IO操作也是有相应步骤的,以文件操作为例,主要的操作流程如下: A、 使用File类打开一个文件 B、 通过字...

SW丶DYN 152

Java基础之—反射(四)

Java基础之—反射(四) 一、概述 主要介绍通过反射创建具体类的对象。 二、创建具体类对象方法 import java.lang.reflect.Constructor; class User{ public User(){} private User(String name){} public String toString() { return "User对象";...

Bruce小鬼 947
上一篇: Java基础(三)
浚聿
博客等级 码龄6年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值