3.16学习心得

new delete 详解 常规的new 和 delete 当需要内存时,可以使用new申请内存,但在用完内存时应当使用delete 去归还内存,以防止内存泄漏,具体使用方案见下面代码: int* ps = new int ; // 使用new 申明变量空间 ... ... delete ps ; '// delete 删除所申明的变量空间 上述代码将删除ps 指针指向的内存空间,但不会删除指针本身,即仍然可以使用该指针去指向其他int 类型的变量。new 和 delete 一定需要成对的使用否则极易发生内存泄漏。 注意:不 阅读详情

今日主要学习了Java中的单例模式以及常见的异常报错处理。

在实际的开发中,绝大部分的服务性质的类都会设计成单例模式,所谓的单例模式,就是类只有一个对象,外部要使用该类的对象,通过调用一个类方法实现。

/**
 * 饱汉式单例模式
 * @author lzq31
 *
 */
public class Service2 {
	
	private static Service2 service = new Service2();
	
	private Service2() {
		
	}
	
	public static Service2 getInstance() {
		return service;
	}
}
/**
 * 饿汉式单例模式
 * @author lzq31
 *
 */
public class Service {
	
	private static Service service;
	
	private Service() {
		
	}
	
	public static Service getInstance() {
		if (null == service) {
			service = new Service();
		}
		return service;
	}
}


常见的处理异常的方式

try catch :

判断一个对象是否为空,使用 null != str

在程序方法设计,特别是方法的实现中,对于传入的参数,是不可知的,所以要对传入的参数进行最基础的验证后,才能使用,例如,判断是否为 null。

public static void fun1(String str, String subStr) {
    if (null != str && null != subStr) {
        if (str.indexOf(subStr) >= 0) {
            System.out.println("存在子串");
        } else {
            System.out.println("不存在子串");
        }
    } else {
        System.out.println("不合法字符串");
    }

}

在 try catch 结构中,catch 是可以省略的,也可以多异常的捕获,但是出现多异常的时候,父类异常只能出现在最下面。

在实际的开发中,一般最简单的方式就是使用一个 Exception 直接处理


finally :

无论是否出现异常都会被执行,特别要注意的是,如果没有写 catch ,那么 finally 是会被执行的,但是中断后的语句是不会被执行的。

public class Demo1 {
	public static void main(String[] args) {
		String str = "abc";
		str = null;
		fun1("abc", null);
	}

	public static int div(int m, int n) {
		int k = m / n;
		return k;
	}

	public static void fun1(String str, String subStr) {
		try {
			System.out.println("11111111");
			int i = 10 / 0;
			if (str.indexOf(subStr) >= 0) {
				System.out.println("存在子串");
			} else {
				System.out.println("不存在子串");
			}
			System.out.println("end");
		} catch (Exception ex) {
			System.out.println("程序出现错误");
			ex.printStackTrace();
			System.out.println("#"+ex.getMessage());
			
		} finally {
			// 一定会被执行的代码块
			System.out.println("finally");
		}
		
		System.out.println("fun1 end");

	}
}


throws:

在方法定义的后面显式的声明方法是有异常的,调用该方法的程序是要显式的处理异常,后者也可以再次抛出。

public class Demo2 {
	public static void main(String[] args) {
//		fun1();
//		fun2();
		try {
			fun3();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		
	}
	
	public static void fun1() {
		System.out.println("begin");
		int i = 0;
		try {
			i = 10 / 0;
		} catch(Exception ex) {
			ex.printStackTrace();
		}
		
		System.out.println(i);
		System.out.println("end");
	}
	
	// 使用 throws 抛出异常,通知调用该方法的程序,你要去处理。
	public static void fun2() throws Exception{
		System.out.println("begin");
		int i = 0;
		i = 10 / 0;
		System.out.println(i);
		System.out.println("end");
	}
	
	public static void fun3() throws Exception {
		System.out.println("begin");
		int i = 0;
		try {
			i = 10 / 0;
		} catch (Exception ex){
			// 不做处理
			throw new Exception("系统错误");
		}
		System.out.println(i);
		System.out.println("end");
	}
	
}

throw:

自定义的创建一个异常对象。在一般的异常发生时候,虚拟机会动态的创建一个「系统异常」抛出,和自定义使用 throw 抛出是一个概念。

public class Demo3 {
	public static void main(String[] args) throws Exception {
		fun1(17);
		System.out.println("end");
		
	}
	
	public static void fun1(int age) throws Exception {
		if (age < 18) {
			throw new Exception("您的年龄不合法");
		} else {
			System.out.println("您已经进入VIP房间");
		}
	}
}

    
PCL 区域生长分割【2026最新版】 区域生长算法原理介绍、代码实现以及一个具体实验场景的应用案例进一步实现将分割结果的分类保存至本地文件夹。最近一次更新时间为:2026年5月4日。 阅读详情

相关推荐

工厂自动化布线实战:从功率计算到线槽布局的完整避坑指南

本文详细介绍了工厂自动化布线的实战经验,从功率计算到线槽布局的完整避坑指南。通过三步计算法确定线径需求,强调电压降控制的重要性,并分享线槽布局的50%法则和强弱电分离技巧。特别针对移动设备和多芯信号线提供专业解决方案,帮助工程师避免常见错误,提升布线效率和质量。

weixin_29266007的博客 351

VMware Workstation Pro16 虚拟机中自适应界面窗口图标大小

VMware Workstation Pro16 虚拟机中自适应界面窗口图标大小

qq_45656180的博客 3223

UEFI开发探索102 – ACPI探究01(UEFI配置表)

(请保留-> 作者: 罗冰 https://blog.csdn.net/luobing4365) ACPI探究01(UEFI配置表)1 大致规划2 UEFI Configuration Table(配置表)3 代码实现 最近有项工作,是修改ACPI表。问题本身并不复杂,但是由于代码需要移植到Option ROM上,遇到不少奇怪的现象。因此,花了不少时间,对ACPI进行研究。 任务是完成了,我的好奇心又被勾起来了。准备发挥“格物致知”的信念,把我认为的ACPI各方面的知识,好好地捋一捋。 1 大

8245

第13周项目1-数组大折腾(4)

问题及代码: /* *Copyright(c)2014,烟台大学计算学院 *All  rights reserved. *文件名称:test.cpp *作者:陈银丽 *完成日期:2014年11月24日 *版本号:v1.0 * *问题描述:创建一个长度为16的整型数组并初始化,*输入描述: *程序输出: */

CKL1029的专栏 711

告别Failed to start错误!保姆级教程:用Ubuntu20.04安装盘搞定GRUB与系统服务修复

本文提供Ubuntu20.04系统启动失败的专业修复指南,详细讲解如何利用安装盘解决GRUB与系统服务问题,避免重装系统导致的数据丢失。涵盖分区挂载、chroot环境操作、服务诊断与修复等实用技巧,帮助用户高效恢复系统正常运行。

weixin_32578161的博客 331

实战教程:用YOLOv11+PyQt5打造工地安全帽检测系统(附完整数据集)

本文提供了一份完整的实战指南,详细介绍了如何利用YOLOv11目标检测模型与PyQt5界面库,从零开始构建一个智能工地安全帽检测桌面应用。内容涵盖高质量数据集的准备与标注、YOLOv11模型训练与调优,以及如何使用PyQt5开发流畅、专业的图形用户界面,最终实现一个可实际部署的AI安全监控系统。

plum99的博客 737

第十三周项目 1 数组大折腾(4)——删除元素

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称 :main.cpp * 作 者 :韩娟 * 完成日期 :2014年11月20日 * 版 本 号 :v1.0 * * 问题描述 : 创建一个16个元素的数组,通过初始化赋值,删除数组中整除3的元素,输出剩下的元素 * 输入描述 : 略 * 程序输

souljuan的专栏 569

今日指数项目之实时流数据采集【六】

实时数据采集代码

Maynor的博客 2146

DDR学习心得(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、DDR3内部结构二、使用步骤1.引入库2.读入数据总结 前言 最近在学习DDR3/DDR4相关知识,从中总结了一些心得,想放在优快云上记录下来。之前在优快云上看了不少大神的帖子,对我的学习颇有帮助,现在我也想把我的学习新的记录下来,希望可以和各位大神进行技术交流。这也是我第一次写技术文章,如有错误还请各位及时指正 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多

weixin_45618498的博客 7085

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1922

bacnet 官方协议栈 bacnet-stack-0.8.2关于router例程BACnet MS/TP BACnet IP调试说明

bacnet 官方协议栈 bacnet-stack-0.8.2关于router例程mstp,bacnet ip调试说明

shufawangzhang的博客 2222

Ubuntu学习心得——运用篇——Ubuntu16.04指令集(基础)+问题集

Ubuntu学习心得——运用篇——Ubuntu16.04指令集(基础) FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 操作系统版本:Ubuntu16.04(注意:不同的ROS版本对应相应的Ubuntu操作系统版本的切勿安装错误) http://www.ubuntu.org.cn/download/desktop 桌面版ubuntu16.0...

whl970831的博客 1867

Qt —— 在Win11下“Qt for Android“开发环境,通过USB在真机(华为Meta60 PRO)上调试运行,并打包APK并在真实手机运行

Qt —— 在Win11下“Qt for Android“开发环境,打包APK并在真实手机运行

311

ROS学习心得——机器人篇——同一局域网下机器人与主机的通信

ROS学习心得——机器人篇——同一局域网下机器人与主机的通信 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 关于这一章我将详细的介绍如何利用一台搭载这mini PC(Ubuntu16.04)的机器人与一台装有虚拟机(Ubuntu16.04)主机进行基于ROS的通信,通过SSH从主机发送指令给机器人(mini PC)完成相应操作。 本教程结...

whl970831的博客 4384

NTscan扫描工具

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WT系列语音芯片发声链路、PWM/DAC与3.3V输出调参实战

语音芯片的本质是将数字音频还原为模拟波形,再通过PWM输出或DAC输出驱动喇叭。采样压缩、解码调制、隔直耦合、RC滤波与阻抗匹配共同决定响度、音质和稳定性。3.3V供电下输出幅度按平方关系下降,容易带来音量偏小、POP音、破音与串扰;选对功放、喇叭和滤波参数,才能提升小家电、玩具等语音提示的可靠性。围绕WT系列语音芯片,从发声信号链、输出路径到实测排错逐段拆解,帮助硬件与嵌入式开发者把声音调稳。

weixin_34187862的博客 312

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java入门1.2.3—一个老鸟的Java学习心得

Java入门1.2.3—一个老鸟的Java学习心得 基本信息 作者: 臧萌 出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 开本:16开 其他详细信息查看:http://www.china-pub.com/196571 编辑推荐 Java编程老鸟潜心写作,奉献高效率的Java学习心得完全站在没有编程经验...

weixin_30807779的博客 236

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

《论文写作》学习心得

(2)已有工作的说明;(3)已有工作局限性,以 However 开头(尊重同领域的研究者,大家都是一步一步走来的,不要有过分的指责),目的是说明找到的“坑”,然后后续的工作能够把这个“坑”填上;可以将摘要中的每一句扩展为引言中的一段,形成层次分明、逻辑严谨的结构,这样一来,有助于清晰地展现研究的背景、目的和重要性,使引言部分不仅具备信息量,还能引导读者顺利进入论文的主题。16. 参考文献不能成为简述的主角,表达一个完整的意思后,再把文献的引用加上去,同时也不能让参考文献称为句子的主语、宾语,不能反客为主。

m0_62262740的博客 1016

Ubuntu学习心得——安装篇——Ubuntu16.04安装(VMware虚拟机+16.04+中文界面设置+输入法安装)

Ubuntu学习心得——安装篇——Ubuntu16.04安装 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 该篇参考了多个博客主们的文章,在此,感谢他们的开源,愿意将经验分享出来。 由于经济问题,本篇将以VMware虚拟机为载体,Ubuntu16.04为镜像文件为大家提供示范,为大家带来最简洁快速的Ubuntu安装方法。(穷啊!) 操作系...

whl970831的博客 3724

VGG16网络介绍及代码撰写详解(总结1)

本文是介绍VGG16网络,个人对其的知识总结,网络设计的知识点,以及代码如何撰写,

weixin_52531699的博客 3216

寿险条款学习心得

寿险条款学习心得 一、条款共同内容1、  保险合同得构成2、  投保范围(1)  投保人(2)  被保人        主要要素:年龄、身体状况,以及投保人与被保人的的关系3、  保险责任不同条款最大的不同就是责任定义的不同可以对保险的责任定义进行一个单独的整理        寿险的保险责任主要有:、(1)       身故(2)       残

顾强 3618

pic16f616单片机C语言编程,PIC16F616型单片机介绍

为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见。PIC16F616是一款14引脚、8位的CMOS单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大...

weixin_39816362的博客 561

FPGA入门学习心得

本文主要分享自己的FPGA入门学习心得,芯片为 EP4CE10F17C8N,编程语言为Verilog HDL主要从 如下重要过程下手:基础语法学习指南,对一些主要关键词进行分析,ip核的认识及学习,自行编写简单程序,根据所用模块手册编写时序。

m0_72794059的博客 1850

【参赛作品16】opengauss实践总结学习心得

Opengauss实践总结 实验一 在ECS上安装部署openGauss数据库 一、实验内容 1、实验内容:本实验主要内容为弹性云服务器(openEuler)上安装部署openGauss数据库,并进行简单的数据库相关操作。 2、实验概览: 实验概览图 二、实验过程 1.进入华为官网,购买弹性云服务器ECS(openEuler ARM 操作系统)。购买时需自定义购买进行基础配置、网路配置、高级配置等。 2.修改操作系统配置。使用SSH工具(比如:PuTTY等)从本地电脑通过配置弹性云...

Gauss松鼠会 3220

CSS3 HTML5学习心得

1.字符串 str.charAt(字符串索引),若索引超过字符串长度,返回空。 str.indexof(“某字符”),找到这个字符顺序第一次出现的索引。 str.lastIndexof(“某字符”),找到某字符串倒序最后出现的索引,若没有返回-1。 str.Uppercase(),将str转换为大写。 str.Lowercase(),将str转换为小写。 str.substr(2,3),

为了N 1169

Struts2学习心得

struts2的学习心得,稍做一些记录 ,如下: 1. 首先,struts2实在WebWork2基础上发展而来的,同时也属于MVC框架。struts2 和struts1的一些区别,你可以自己去揣摩,我自己看了一些资料,总结几点如下:      a. struts2不像struts1一样与servletAPI和strutsAPI之间存在紧密的耦合性,既不依赖于strutsAPI的Action,也...

hengltyy的博客 548

第七周学习心得与体会

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。1945年,冯•诺依曼联合计算机科学家们提出了计算机系统结构具体设计的报告,其遵循图灵机的设计,并且还提出用电子元件构造计算机,同时也约定了用二进制来进行计算和存储;体系结构将计算机系统具体定义为五个部分,分别是运算器,控制器,存储器,输入设备,输出设备;

LS_Sy的博客 1256
上一篇: 20180316
下一篇: Java知识点总结与概括
Coldzerace
博客等级 码龄9年 3粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值