2024年Java最新Java Review(三十三、异常处理----补充:断言、日志、调试,4面阿里拿到P7Offer

总结

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。

  • 第一个是算法

关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本

《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

《算法的乐趣》共有23个章节:

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

  • 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)

基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

  • 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)

最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

java -enableassertions MyApp

需要注意的是, 在启用或禁用断言时不必重新编译程序。启用或禁用断言是类加载器( class loader) 的功能。当断言被禁用时, 类加载器将跳过断言代码, 因此,不会降低程序运行的速度。

也可以在某个类或整个包中使用断言, 例如:

java -ea:MyClass -eaiconi.inycompany.inylib… , MyApp

这条命令将开启 MyClass 类以及在 com.mycompany.mylib 包和它的子包中的所有类的断言。选项 -ea 将开启默认包中的所有类的断言。

也可以用选项 -disableassertions 或 -da 禁用某个特定类和包的断言:

ava -ea:… -da:MyClass MyApp

日志

====================================================================

每个 Java 程序员都很熟悉在有问题的代码中插入一些 System.out.println 方法调用来帮助观察程序运行的操作过程。 当然, 一旦发现问题的根源, 就要将这些语句从代码中删去。如果接下来又出现了问题, 就需要再插入几个调用 System.out.println方法的语句。

记录日志API 就是为了解决这个问题而设计的。

下面先讨论这些 API 的优点。

  • 可以很容易地取消全部日志记录,或者仅仅取消某个级别的日志,而且打开和关闭这个操作也很容易。

  • 可以很简单地禁止日志记录的输出, 因此,将这些日志代码留在程序中的开销很小。

  • 日志记录可以被定向到不同的处理器, 用于在控制台中显示, 用于存储在文件中等。

  • 日志记录器和处理器都可以对记录进行过滤。过滤器可以根据过滤实现器制定的标准丢弃那些无用的记录项。

  • 日志记录可以采用不同的方式格式化,例如,纯文本或 XML。

  • 应用程序可以使用多个日志记录器, 它们使用类似包名的这种具有层次结构的名字,例如, com.mycompany.myapp0 •在默认情况下,日志系统的配置由配置文件控制。如果需要的话, 应用程序可以替换

这个配置。

基本曰志


要生成简单的日志记录,可以使用全局日志记录器(global logger) 并调用其 info 方法:

Logger.getClobal 0,info(“File->Open menu item selected”);

在默认情况下,这条记录将会显示以下内容:

May 10, 2013 10:12:15 PM LogginglmageViewer fileOpen

INFO: File->0pen menu item selected

但是, 如果在适当的地方(如 main 开始)调用

Logger.getClobal ().setLevel (Level .OFF);

将会取消所有的日志。

API:java.util.logging

高级曰志


从前面已经看到“ 虚拟日志”,下面继续看一下企业级( industrial-strength) 日志。在一个专业的应用程序中,不要将所有的日志都记录到一个全局日志记录器中,而是可以自定义日志记录器。

可以调用 getLogger 方法创建或获取记录器:

private static final Logger myLogger = Logger.getLogger(“com.mycompany.myapp”):

与包名类似,日志记录器名也具有层次结构。事实上, 与包名相比,日志记录器的层次性更强。 对于包来说,一个包的名字与其父包的名字之间没有语义关系,但是日志记录器的父与子之间将共享某些属性。例如, 如果对 com.mycompany 日志记录器设置了日志级别,它的子记录器也会继承这个级别 。

通常, 有以下 7 个日志记录器级别:

  • SEVERE

  • WARNING

  • INFO

  • CONFIG

  • FINE

  • FINER

  • FINEST

在默认情况下,只记录前夂个级别。 也可以设置其他的级別。例如:

logger,setLevel (Level .FINE);

现在, FINE 和更高级别的记录都可以记录下来。

另外, 还可以使用 Level.ALL 开启所有级别的记录, 或者使用 Level.OFF 关闭所有级别的记录。

对于所有的级别有下面几种记录方法:

logger.warning(message):

logger,fine(message) ;

同时, 还可以使用 log 方法指定级别, 例如:

logger.log(Level .FINE, message);

日志记录说明


日志记录常用的操作:

  • 1 ) 为一个简单的应用程序, 选择一个日志记录器,并把日志记录器命名为与主应用程序包一样的名字,例如,com.mycompany.myprog。

可以通过调用下列方法得到日志记录器:

Logger logger = Logger.getLogger(“com.mycompany.myprog”);

为了方便,可以利用一些日志操作将下面的静态域添加到类中:

private static final Logger logger = Logger.getLogger(“com.mycompany.nyprog”):

  • 2 ) 默认的日志配置将级别等于或高于 INFO 级别的所有消息记录到控制台。用户可以覆盖默认的配置文件。但是正如前面所述,改变配置需要做相当多的工作。因此,最好在应用程序中安装一个更加适宜的默认配置。

下列代码确保将所有的消息记录到应用程序特定的文件中。可以将这段代码放置在应用程序的 main方法中。

if (System,getProperty(“java,util.logging.config.dass”) == null

&& System.getPropertyC’java.util.logging.config.file") == null) {

try

{

Logger.getLogger(“”).setLevel(Level.ALL);

final int L0C_R0TATI0N_C0UNT = 10;

Handler handler = new FileHandler('Wmyapp.log", 0, L0G_R0TATI0N_C0UNT):

Logger.getLogger(“”).addHandler(handler): }

catch (IOException e) {

logger.log(Level.SEVERE, “Can’t create log file handler”, e);

}

}

总结

机会是留给有准备的人,大家在求职之前应该要明确自己的态度,熟悉求职流程,做好充分的准备,把一些可预见的事情做好。

对于应届毕业生来说,校招更适合你们,因为绝大部分都不会有工作经验,企业也不会有工作经验的需求。同时,你也不需要伪造高大上的实战经验,以此让自己的简历能够脱颖而出,反倒会让面试官有所怀疑。

你在大学时期应该明确自己的发展方向,如果你在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:

请转发本文支持一下

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

在大一就确定你以后想成为Java工程师,那就不要花太多的时间去学习其他的技术语言,高数之类的,不如好好想着如何夯实Java基础。下图涵盖了应届生乃至转行过来的小白要学习的Java内容:

请转发本文支持一下

[外链图片转存中…(img-C6FnWZE6-1714909791165)]

[外链图片转存中…(img-Gbd7EWgU-1714909791165)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 12
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值