Java类库实践点滴—— Logging、Object、assert

Kettle 中转换(transformation)的执行过程,源码分析 Kettle 中转换(transformation)的执行过程 [推荐]Kettle — 转换机制 参考URL: https://blog.youkuaiyun.com/u013468915/article/details/82630120 基础概念 每个转换步骤都是ETL数据流里面的一个任务。转换步骤包括输入、处理和输出。输入步骤从外部数据源获取数据,例如文件或者数据库;处理步骤处理数据流,字段计算,流处理... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> Java类库实践点滴(一) —— Logging、Object、assert 一、java.util.Logging: 例子: //测试Java1.4中的日志新功能import java.util.logging.*;public class TestLogging { //设置logger static Logger testLog = Logger.getLogger("test.log"); public static void main(String[] args) { //测试Warn级别的日志 testLog.warning("sample warning"); //测试所有级别 //缺省在控制台上显示 SEVERE, WARNING, INFO级别的日志 testLog.log(Level.SEVERE, "severe log"); testLog.log(Level.WARNING, "warning log"); testLog.log(Level.INFO, "info log"); testLog.log(Level.CONFIG, "config log"); testLog.log(Level.FINE, "fine log"); testLog.log(Level.FINER, "finer log"); testLog.log(Level.FINEST, "finest log"); testLog.log(Level.ALL, "all log"); }} 输出: Oct 14, 2003 10:33:18 AM TestLogging main WARNING: sample warning Oct 14, 2003 10:33:18 AM TestLogging main SEVERE: severe log Oct 14, 2003 10:33:18 AM TestLogging main WARNING: warning log Oct 14, 2002 10:33:18 AM TestLogging main INFO: info log 二、java.lang.Object类 首先需要注意: 1. 每一个class扩展自Object 2. 不能在Object变量中存储基本类型 Object objStringFive = new String("5"); //可以执行Object objDoubleFive = new Double("5"); //可以执行 int fiver = 5;Object objFive = fiver; //编译不通过Object anotherObjFive = 5; //编译不通过 常用的Object的方法: Object cloneOfObject = objectToClone.clone();boolean isEqual = objectToCompare.equals(objectToCompareTo);Class runtimeClass = objectToGetClassFrom.getClass();int hashCodeOfObject = objectToGetHashCodeOf.hashCode();String stringValue = objectToGetStringOf.toString(); 常用的线程的对象方法: objectWithThreadWaiting.notify();//唤醒当前线程objectWithThreadWaiting.notifyAll();//唤醒所有线程objectToMakeThreadWait.wait();//线程一直处于sleep状态,直到出现 notify()或 notifyAll()为止objectToMakeThreadWait.wait(longTimeToWaitInMilliseconds);//当前线程一直处于sleep状态,直到出现notify(), notifyAll(), //或过了longTimeToWaitInMilliseconds秒延迟之后为止objectToMakeThreadWait.wait(longTimeToWaitInMilliseconds, intTimeToWaitInNanoseconds);//当前线程一直处于sleep状态,直到出现notify(), notifyAll(), //或longTimeToWaitInMilliseconds intTimeToWaitInNanoseconds 秒延迟之后为止 垃圾收集的对象方法: objectForGarbageCollection.finalize();//当没有对象引用存在时,执行垃圾收集 三、 断言的基本使用 //jdk1.4 中的新的assert 语句和关键字// 用 -source 作为1.4 编译的标志// 用 -ea 标志来运行public class TestAssertions { static boolean goodHalOpen = true; static boolean badHalOpen = false; static boolean openPodDoor = false; //设置断言 static void testPodDoor() { /*注意: 在assert语句中,如果冒号之前的表达式等于false,那么 就抛出异常java.lang.AssertionError 当抛出AssertionError时,将输出冒号之后的表达式的文本。 */ assert openPodDoor : "bad Hal"; System.out.println("after assertion"); System.out.println(" "); } public static void main(String[] args) { System.out.println("test one"); openPodDoor = goodHalOpen; testPodDoor(); System.out.println("test two"); openPodDoor = badHalOpen; testPodDoor(); }} 编译和运行: javac -source 1.4 TestAssertions.java java -ea TestAssertions 输出: test one after assertion test two Exception in thread "main" java.lang.AssertionError: bad Hal at TestAssertions.testPodDoor(TestAssertions.java:19) at TestAssertions.main(TestAssertions.java:33)
Java+Selenium+TestNG构建Web UI自动化测试框架:从原理到实践 UI自动化测试是软件质量保障的核心技术之一,其核心原理是通过编程模拟用户对浏览器界面的操作,实现测试流程的自动化执行。这项技术的核心价值在于能够以极高的重复精度和速度执行回归测试,有效保障频繁迭代的互联网产品的交付质量。在工程实践中,Selenium WebDriver作为行业标准工具,通过浏览器驱动协议实现对主流浏览器的控制;而TestNG测试框架则提供了灵活的测试组织、数据驱动和报告生成能力。结合Java成熟稳定的生态,可以构建出分层清晰、易于维护的自动化测试框架,广泛应用于Web应用的冒烟测试、回归测 阅读详情

相关推荐

Python自动化测试框架搭建:从Pytest到CI/CD的完整实践指南

自动化测试框架是现代软件工程中提升测试效率、保障软件质量的核心基础设施。其核心原理在于通过分层架构实现关注点分离,将测试数据、页面对象、业务逻辑与执行引擎解耦,从而构建可维护、可复用的测试体系。在技术选型上,Python凭借其简洁语法和丰富生态成为主流选择,结合Pytest强大的Fixture机制和参数化功能,能够高效管理测试用例的前置后置条件与数据驱动。框架的价值在于将零散的测试脚本转化为系统化的工程实践,通过集成日志系统、Allure报告和CI/CD流水线,实现测试活动的标准化与持续反馈。在实际应用场景

weixin_30732487的博客 376

7.15实习培训日志 java题解

周末总结 本周主要学习了markdown,git,docker等工具的使用。在本周的学习中,初步了解了markdown,git,docker的使用。本周的静态博客部署中,对于怎么显示一个博客内容,有两种,一是把public/下的内容放入nginx,然后配置Nginx配置文件,二是在Dockerfile配置hugo服务器,我刚开始把hugo-linux下到本地,传入github,但是太大了...

266

Java WebDriver自动化测试入门:从环境搭建到脚本编写实战

UI自动化测试是现代软件工程中提升交付效率与质量的关键技术,其核心原理是通过程序模拟用户操作,实现测试流程的自动化执行。在Web端自动化领域,Selenium WebDriver作为W3C标准协议,提供了跨浏览器操控的统一接口,是实现自动化测试的基石技术。其技术价值在于能够将重复、易错的手工测试转化为可重复、高覆盖的自动化脚本,显著提升回归测试效率与一致性。在应用场景上,WebDriver广泛应用于Web应用的功能测试、兼容性测试及持续集成流程。本文聚焦于Java语言结合WebDriver进行Web端UI自

weixin_34074740的博客 325

java的log类_【java】简单的日志工具类LogUtils

包含两个类,LogUtils 和 LogLevel1.使用枚举类来设置日志级别ALL("全部", 0),INFO("信息", 1),WARN("警告", 2),ERROR("错误", 3)/*** * 日志级别* ALL("全部", 0)* INFO("信息", 1)* WARN("警告", 2)* ERROR("错误", 3)* ** @since 2018年4月9日 9:31:46* @aut...

weixin_36307549的博客 781

从零构建基于Selenium与Python的Web自动化测试框架:工程化实践指南

在软件测试领域,自动化测试是提升效率与可靠性的关键技术。其核心原理是通过脚本模拟用户操作,实现重复性任务的自动执行与验证。这一技术能显著降低人工成本,提高测试覆盖率和回归测试频率,对保障软件质量、支持持续集成与快速迭代具有重要价值。尤其在Web应用测试中,自动化框架能有效应对UI频繁变更、多环境验证等挑战。本文聚焦于如何运用Selenium这一行业标准工具与Python语言,结合POM设计模式与pytest测试运行器,从基础封装、数据驱动到报告生成,系统性地搭建一个高可维护、可扩展的Web自动化测试解决方案

weixin_30606461的博客 440

Selenium自动化测试框架搭建:从黑盒测试到Page Object模式实战

自动化测试是软件工程中提升测试效率、保障软件质量的关键实践。其核心原理是通过脚本模拟用户操作,替代重复性人工测试,实现快速、准确的回归验证。在Web应用测试领域,Selenium WebDriver作为W3C标准,因其能直接驱动浏览器、模拟真实用户行为而成为主流技术选型。采用Page Object Model(页面对象模型)设计模式,可以将页面元素与测试逻辑分离,大幅提升脚本的可维护性和稳定性,这是构建健壮自动化框架的核心价值。结合Python生态中的pytest等工具,能够高效管理测试用例、数据驱动和生成

weixin_33766805的博客 416

Kettle转换(Trans)执行流程分析

通过源码分析Kettle转换执行流程

CrazyPig的技术博客 1万+

Java Selenium Web UI自动化测试框架:从POM模式到数据驱动的工程实践

Web UI自动化测试是保障软件质量、提升测试效率的关键技术。其核心原理是通过程序模拟用户操作浏览器,执行页面交互与验证。在工程实践中,直接使用Selenium等底层工具编写脚本,常面临代码冗余、维护困难、难以规模化等挑战。为解决这些问题,业界普遍采用页面对象模型(POM)和数据驱动测试(DDT)等设计模式。POM模式将页面元素与操作封装成对象,实现业务逻辑与UI细节的分离,大幅提升代码的可读性和可维护性。数据驱动测试则将测试数据与脚本逻辑解耦,通过外部数据源驱动用例执行,增强了测试的灵活性与覆盖度。这些技

weixin_30591551的博客 482

Java21:调试

文章目录断言assertloggingCommons Logging与Log4j 断言assert 断言(Assertion)是一种调试程序的方式。在Java中,使用assert关键字来实现断言。 assert 表达式;若表达式为真,则无影响;若表达式为假,则会抛出AssertionError。 因此assert语句也可改写为: if (!表达式) throw new AssertionError(); assert语句中还可以加入自定义的警告信息: assert a >= 500: "ERROR!

Shao_yihao的博客 804

基于kettle的简单易用可视化任务调度系统设计源码

该系统是一款基于Kettle的简单易用可视化任务调度系统设计源码,共计737个文件,涵盖184个JavaScript文件、149个Java文件、132个PNG图片文件、87个GIF图片文件、62个CSS文件、34个HTML文件,以及少量其他格式文件。该系统旨在降低用户使用Crontab调度的学习成本,缩短任务配置时间,有效避免配置错误,为用户提供高效便捷的调度体验。

本地部署 Anything LLM+Ollama+DeepSeek R1 大模型并实现外部访问

DeepSeek 一经发布就引起社会的广泛的关注,因为 DeepSeek 的价格低廉,性能卓越,提供了多种使用方式,满足不同用户的需求和场景。本文将详细的介绍如何在本地 Windows 上安装部署 Anything LLM + Ollama 来实现用户和 DeepSeek-r1 对话的功能以及利用路由侠内网穿透实现外网访问。

lyxnwct的博客 1897

Java核心-异常处理

上一次学完了Java的核心类与API,这次来学习异常处理。我们都知道,Java语言具有健壮性和安全性,而异常处理机制就是其重要保证。

qq_56999608的博客 815

LIO-SAM编译ubuntu20.04 Noetic

一、下载二、编译&&解决报错报错如下。

Kenneth666888的博客 689

廖雪峰java教程学习笔记——异常处理

基本语法 try catch throw try { process1(); } catch (Exception e) { e.printStackTrace(); //打印异常栈 } 如果不想在函数中捕获异常,可以加上throws把它转交给调用方处理; 最后一层层扔到了main,若连main也不想处理,可以继续throw,这就真的丢弃了。这时一旦出错直接程序崩溃。 public class Main {

zhang35的博客 226

opencv基础57-模板匹配cv2.matchTemplate()->(目标检测、图像识别、特征提取)

OpenCV 提供了模板匹配(Template Matching)的功能,它允许你在图像中寻找特定模板(小图像)在目标图像中的匹配位置。模板匹配在计算机视觉中用于目标检测、图像识别、特征提取等领域。: 首先,加载目标图像和要匹配的模板图像。: 选择适当的匹配方法,例如 cv2.TM_CCOEFF、cv2.TM_CCOEFF_NORMED、cv2.TM_CCORR、cv2.TM_CCORR_NORMED、cv2.TM_SQDIFF 或 cv2.TM_SQDIFF_NORMED。每种方法对应不同的匹配计算方式。

小海聊智造 1万+

从光斑图到锤形优化:一次搞定Zemax双胶合透镜的像散与场曲问题

本文详细解析了Zemax双胶合透镜设计中像散与场曲问题的诊断与优化方法。从光斑图分析到锤形优化技巧,提供了完整的光学设计实战指南,帮助设计师快速定位问题并有效改善系统性能,特别适合光学设计工程师和Zemax使用者参考。

weixin_27134495的博客 233

【软件构造】Lab4感想心得

lab4是在lab3的基础上修改的,学会了java logging和exception的书写 exception和assert的书写确实会考虑很多非正常情况,有利于程序的健壮性和正确性 logging的书写就相对前面的exception、assert难一点了 我使用的是java.util.logging 主要使用logger.info来记录正常的日志信息和logger.sever来记录异常时栈中的...

weixin_43632145的博客 241

抖音Web端私信Protobuf逆向解析实战

本文详细解析了抖音Web端私信通信的逆向过程,发现其核心采用WebSocket传输Protobuf序列化数据。通过抓包获取二进制样本,利用protoc工具进行原始解码,并逐步推导和编写出对应的.proto协议定义文件,最终实现模拟消息的编码与解码,为理解私有协议逆向提供了完整实战案例。

water的专栏 761

java logfaction_Java调试的变迁:从System.out.println到log4j

jungleford如是说用惯了VC的人刚接触Java大概很不习惯代码的调试,的确,在M$的大部分IDE都做得相当出色,包括像VJ++这样一直被Java程序员称为是“垃圾”的类库(记得以前在瀚海星云的Java版提有关VJ问题的人是有可能被封的,^_^),它的开发工具在调试上都相当容易。Java也有命令行方式的调试和IDE的调试,但现在的像JB这样的玩意又是个庞然大物,低配置的机器可能就是个...

weixin_42532067的博客 213

YOLOv11改进策略【卷积层】| CVPR-2024 PKI Module 获取多尺度纹理特征,适应尺度变化大的目标

PKI Module是。

Limiiiing的博客 2708

Diffusion models代码实战:从零搭建自己的扩散模型

这个系列曾经写过三篇文章专门讲代码,分别从数据集、超参数、loss设计、参数计算、Unet结构、正向过程、逆向过程等部分详细介绍了如何搭建DDPM。Diffusion models领域发展神速,最近半年代表作品有OpenAI的GLIDE、DALL-E 2,Google Brain的ImageGen,海森堡大学的Latent Diffusion。这篇博客针对入门新手讲解一下如何利用已有的资源快速搭建自己的Diffusion models。.........

沉迷单车的追风少年 1万+

Java异常处理学习笔记(抛出、捕获、finally、异常传播、NPE、断言、日志)

Java中的异常是什么? Java异常本质上一种class,继承关系如下图所示,Error是严重的错误,程序无能为力,RuntimeException是在运行过程中发生的异常,其余的异常在编写程序的时候就应该检查并处理。 异常继承树 哪些异常必须捕获? 除了Error,RuntimeException和他们的子类,其余的异常都必须被捕获。 try{}、throws抛出异常catch(){}捕获 如果不写try{}catch(){}会怎样? // try...catch import java.util.A

凯哥大数据——刘凯的博客 713

UFSV3.1-RPMB实现与测试

UFS RPMB功能验证与测试指南 本文介绍了UFS(通用闪存存储)中RPMB(重放保护内存块)的功能验证与测试方法。主要内容包括: RPMB基础配置: 在Linux系统中查看RPMB设备节点 读取RPMB单元描述符获取配置信息 配置RPMB区域大小(16MB)和使能状态 RPMB特性验证: 获取单次写最大请求(16KB) 测试未编程认证密钥时的读写操作 验证认证密钥编程过程 测试用例: 包含4个测试用例,验证RPMB在不同状态下的行为 提供了详细的命令行操作和预期结果 本文可作为UFS RPMB功能验证。

小码哥的博客 1255

Java调试的变迁:从System.out.println到log4j【zz】

jungleford如是说     用惯了VC的人刚接触Java大概很不习惯代码的调试,的确,在M$的大部分IDE都做得相当出色,包括像VJ++这样一直被Java程序员称为是“垃圾”的类库(记得以前在瀚海星云的Java版提有关VJ问题的人是有可能被封的,^_^),它的开发工具在调试上都相当容易。Java也有命令行方式的调试和IDE的调试,但现在的像JB这样的玩意又是个庞然大物,低配置的机器可能就是

ITshow's Blog 2319

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

lab4感受

lab4感受     在这次实验中收获极多,由于时间问题,我的Exception开始并没有定义新的异常类,这样导致了很多麻烦,没有做出更改,以后的编程过程中要注意。     对于assert的理解还不是很到位,好多方法没有assert,日后需要进一步理解assert的含义。     我掌握了Debugging的使用,以及java logging等许多我以前没有接触过的东西。     在实验的过程中...

qq_42725437的博客 230

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Java中的异常、断言、日志 log4j

 原文链接:http://blog.youkuaiyun.com/silentbalanceyh/article/details/4564902 (本章主要讲解Java里面比较核心的一块内容——异常处理,Java异常处理机制,一致都是比较复杂的一块,而很多时候如果写程序的时候能够适当地注意对应的一些异常处理情况,那么就会在开发过程节省一大部分时间,最常见的情况就是辅助进行调试以及维护工作以及提高系统的

月亮的技术博客 2059

efm32 入门.pdf

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

上一篇: 在JSP中编写你的第一个Tag
下一篇: BEA dev2dev Days 2003
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值