java基础必知

参考博文:Java基础常见面试题总结(下) | JavaGuide

目录

参考博文:Java基础常见面试题总结(下) | JavaGuide

异常

error和Exception区别

Throwable 类常用方法

try-catch-finally

什么时候finally中的代码不会被执行

try-with-resources

使用异常时,需要注意什么

泛型

泛型的使用方式

反射

注解

序列化 反序列化

不想序列化怎么办


异常

error和Exception区别

  • error是在程序运行过程中产生的错误,程序本身无法处理,在遇到这些操作时,一般虚拟机会终止运行。Java 虚拟机运行错误(Virtual MachineError)、虚拟机内存不够错误(OutOfMemoryError)、类定义错误(NoClassDefFoundError
  • Exception是指程序可以处理的错误,能够通过try-catch异常捕获。

Throwable 类常用方法

  • String getMessage(): 返回异常发生时的简要描述
  • String toString(): 返回异常发生时的详细信息
  • String getLocalizedMessage(): 返回异常对象的本地化信息。使用 Throwable 的子类覆盖这个方法,可以生成本地化信息。如果子类没有覆盖该方法,则该方法返回的信息与 getMessage()返回的结果相同
  • void printStackTrace(): 在控制台上打印 Throwable 对象封装的异常信息

try-catch-finally

  • try用于捕获异常
  • catch用于处理异常
  • finally,无论是否捕获的异常,finally代码块都会执行

!注意不要再finally语句块中使用return,如果在catch语句块中也有return语句,那么程序在执行的时候,会先将catch语句块中的return语句先暂存起来,然后执行finally语句块,这样会造成在finally语句块中直接执行return语句。

什么时候finally中的代码不会被执行

当程序运行到finally语句之前,虚拟机就因为停止运行时。

什么情况下,虚拟机会停止运行?

  1. CPU的退出
  2. 程序所在线程死亡

try-with-resources

适用范围(资源的定义): 任何实现 java.lang.AutoCloseable或者 java.io.Closeable 的对象

关闭资源和 finally 块的执行顺序: 在 try-with-resources 语句中,任何 catch 或 finally 块在声明的资源关闭后运行

resources关闭资源

try (Scanner scanner = new Scanner(new File("test.txt"))) {
    while (scanner.hasNext()) {
        System.out.println(scanner.nextLine());
    }
} catch (FileNotFoundException fnfe) {
    fnfe.printStackTrace();
}

也可以同时关闭多个资源,只需要在()里面用逗号分割

使用异常时,需要注意什么

  1. 在抛出异常时,需要抛出具体的异常,而不是它的父类
  2. 不能把异常定义为静态变量,这样会导致异常栈信息混乱
  3. 使用日志打印异常之后就不要再抛出异常了(两者不要同时存在一段代码逻辑中)。

泛型

使用泛型可以对传入对象进行判断,且指定对象类型传入

       ArrayList<Integer> list = new ArrayList<>();

泛型的使用方式

泛型类,泛型方法,泛型接口

泛型类

public class A<T>{

    private T key;

    public A(T key) {
        this.key = key;
    }

    public T getKey(){
        return key;
    }
}

泛型接口

public interface B<T> {
    public T method();
}

泛型方法

  public static < E > void printArray( E[] inputArray )
   {
         for ( E element : inputArray ){
            System.out.printf( "%s ", element );
         }
         System.out.println();
    }

反射

通过反射可以调用一个类的所有属性和方法

优缺点:

优:让我们的代码更加灵活

缺:我们可以获取一个类的所有属性方法,增加了安全性问题,比如无视泛型安全检查

在框架中多数使用动态代理,动态代理使用反射。注解也使用了反射

注解

解析方式

  • 在编译时期扫描。扫描相应代码注解并处理
  • 在运行时扫描。如spring框架中的@Value等注解

序列化 反序列化

序列化:需要将Java对象持久化,例如保存在Java文件中。或者在网络中传递Java对象

  • 序列化:将数据结构或者对象转成二进制字节流
  • 反序列化:将序列化生成的二进制字节流转换成数据结构或者对象

不想序列化怎么办

transient关键字可以阻止序列化,但是有几点需要注意

  • 不能用来修饰类和方法,直能修饰变量
  • 被修饰的基本变量在反序列化之后都会变成未被初始化的默认值
  • static 变量因为不属于任何对象(Object),所以无论有没有 transient 关键字修饰,均不会被序列化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《正则表达式必知必会修订版》是一本介绍正则表达式的经典教程,其通过简单易懂的语言和大量实例来讲解正则表达式的基本语法、常用元字符、匹配原理等知识点,适合初学者学习。而此次修订版则在原基础上进行了一定的更新和完善,包括增加了一些新的实例和案例,更加详细地解释了一些重要的概念和技巧,使得读者可以更加准确地掌握正则表达式的使用方法,并且更好地应用到实际的编程工作中。 总的来说,《正则表达式必知必会修订版》是一本非常好的学习资料,无论是从基础入门到深入掌握,都能够满足读者的需求。对于初学者来说,可以通过该书快速掌握正则表达式的基本语法,然后结合实例进行练习,掌握正则表达式的初步应用。对于进阶学习者,可以从更深入的角度去学习正则表达式的应用,探索更加高级的技巧和应用场景,提高编程能力。 总之,《正则表达式必知必会修订版》是一本非常优秀的正则表达式入门教程,它具有简单易懂,知识点全面,实用性强的特点,是广大编程爱好者学习正则表达式的一本不可多得的好书。 ### 回答2: 正则表达式必知必会修订版pdf 是一本非常好的正则表达式教材,适合初学者和进阶者。首先,本书的语言简洁明了,通俗易懂,作者使用了大量实例和练习,帮助读者理解和掌握正则表达式的基础知识和进阶技巧。其次,本书的内容全面、系统,覆盖了正则表达式的所有方面,包括元字符、字符集、量词、分组、反向引用、零宽度断言等等。读者可以根据自己的需求和程度选择阅读,打好基础,完善技能。最后,本书的价值在于它能够让读者真正理解和应用正则表达式,提升工作效率。正则表达式是一种强大的文本匹配工具,它能够对文本进行高效率、精准匹配,解决企业中的一些文本处理难题,如批量修改、提取数据等。如果您是一名程序员或数据分析师,正则表达式必知必会修订版pdf一定是您的必备书籍之一,它能帮助您提升工作效率,打造更优秀的代码和应用。 ### 回答3: 正则表达式必知必会修订版pdf是一本对于正则表达式入门的学习者来讲十分有用的书籍,它详细地介绍了正则表达式的基础知识、语法和常用的应用方式。 在该书中,作者通过生动的例子和详细的讲解,引导读者逐步学习掌握正则表达式的语法和编写方式,让读者具备在处理文本数据时运用正则表达式的能力,并且能够有效地解决实际应用中遇到的问题。 此外,该书也涵盖了常用的正则表达式引擎和语言,比如Perl、JavaJavaScript等,并对常见的正则表达式应用进行了讲解,比如在表单验证、数据清洗和日志分析等领域中的应用。 总之,正则表达式必知必会修订版pdf对于初学者来说是一本非常实用的工具书,它不仅可以帮助人们学习和掌握正则表达式的基础知识,也可以帮助人们在实际应用中更加有效地运用正则表达式来提高工作效率和解决实际问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值