自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 收藏
  • 关注

原创 Java编程中从乱码中恢复

这个时候,再按照多种编码格式查看这个二进制,在UltraEdit中,关闭十六进制编辑,切换查看编码方式为GB18030,执行“视图”→“查看方式(文件编码)”→“东亚语言”→GB18030命令,切换完后,同样的二进制神奇地变为了正确的字符形式“老马”,打开十六进制编辑器,可以看出二进制还是C0CF C2ED,这个GB18030相当于假设A是GB18030。实际中,可能要做多次尝试,过程是类似的,先进行编码转换(使用B编码),然后使用不同编码方式查看(使用A编码),如果能找到看上去对的形式,就恢复了。

2023-01-31 14:43:07 608 1

原创 数据库常见面试题

事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。1.存储过程和函数的区别。

2023-01-30 14:40:58 422

原创 解决Java学习过程中遇到的问题

这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。对程序中用了Package的情况下要注意这个异常。

2023-01-30 14:40:58 946 1

原创 相同版本的MySQL数据库之间的迁移

相同版本的MySQL数据库之间进行数据库迁移的原因很多。通常的原因是换了新的机器,或者是装了新的操作系统。因为迁移前后MySQL数据库的主本版号相同,所以可以通过复制数据库目录来实现数据库迁移。假设从一个名为host1的机器中备份出所有数据库,然后,将这些数据库迁移到名为host2的机器上。同理,password2是name2主机上的root用户的密码。相同版本的MySQL数据库之间的迁移就是在主版本号相同的MySQL数据库之间进行数据库移动。本节将介绍这方面的内容。相同版本的MySQL数据库之间的迁移。

2023-01-28 13:21:22 244

原创 MySQL基础——查看triggers表中触发器信息

其中,information_schema是MySQL中默认存在的库,而information_schema是数据库中用于记录触发器信息的数据表。在MySQL中,所有触发器的定义都存在该数据库的triggers表中。读者可以通过查询triggers表来查看数据库中所有触发器的详细信息。其中,“触发器名称”这一参数为用户指定要查看的触发器名称,和其他SELECT查询语句相同,该名称内容需要用一对“''”(单引号)引用指定的文字内容。如果数据库中存在数量较多的触发器,建议读者使用第二种查看触发器的方式。

2023-01-17 15:19:36 1508

原创 带关键字AND的多条件查询

使用关键字AND时,只有同时满足所有查询条件的记录会被查询出来。使用关键字AND时,只有同时满足所有查询条件的记录会被查询出来。例9.9 下面查询数据表tb_login中user字段值为mr,并且section字段值为PHP的记录,查询语句如下。关键字AND连接两个条件表达式,可以同时使用多个关键字AND来连接多个条件表达式。关键字AND连接两个条件表达式,可以同时使用多个关键字AND来连接多个条件表达式。图9.8 使用关键字AND实现多条件查询带关键字AND的多条件查询。带关键字AND的多条件查询。

2023-01-17 15:19:11 681

原创 web前端都学些什么知识?

主要内容为JavaScript 语法全面进阶、ES6 到 ES10 新语法实践、jQuery 应用及插件使用、设计模式及插件编写、封装 JS 工具库及Web APIS、AJAX+PHP+MySQL前后端交互、前端工程化与模块化应用以及PC 端全栈开发项目等。主要内容为Node.js 全面进阶、Koa2+MongoDB搭建服务、Vue.js 框架、React.js 框架、小程序云开发与小程序框架、原生 APP与混合APP、数据可视化与桌面应用等。Web前端行业入门简单、薪资前景好,是许多IT小白跨行的首选。

2023-01-16 13:23:15 114

原创 Python在近几年越来越受追捧

可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。数据库:Python提供所有主要的商业数据库的接口。

2023-01-15 16:14:23 689

原创 JAVA基础_Swing和抽象窗口工具包

在Java中,使用两组类来开发程序的用户界面:Swing和早期的称为抽象窗口工具包(Abstract Windowing Toolkit,AWT)的一组类。Java是一种跨平台语言,使用它可以为很多不同的操作系统编写程序,因此其图形用户软件必须是灵活的,不仅能够支持Windows和Mac窗口风格,还必须能够满足其他平台的要求。Swing提供了编写使用图形用户界面的程序所需的一切。窗口、框架、对话框、面板和applet窗口。按钮、复选框、标签和其他简单组件;文本框、滑块和其他复杂组件;下拉菜单和弹出菜单;

2023-01-15 16:14:02 137

原创 JAVA知识——使用类方法和类变量

为了测试这个新的Virus类,需要再创建一个能创建Virus对象的类。创建一个简单的Virus对象,它可以统计程序创建的Virus对象的数量并报告该数量。在NetBeans选择File->New File,创建一个新的Java空文件,将其命名为Virus,然后在源代码编辑器中输入程序清单11.1中的内容,并保存。然后通过Virus类的getVirusCount()方法来计算创建的对象数量。当文件保存后,NetBeans将自动编译。VirusLab类是一个简单的应用程序,它可以创建Virus对象,

2023-01-13 13:26:10 452

原创 编写程序所需的工具

由于Java程序是文本文件,因此可以使用任何文本编辑器打开Java程序,并对其进行编辑。你也可以使用NetBeans编写Java程序,然后在Windows Notepad(记事本)中打开它,并做出相应的修改,然后再在NetBeans中打开该程序,这不会造成任何问题。创建Java程序,你必须有支持Java Development Kit(JDK)的开发工具,NetBeans本身也带有适当的缩进格式,而且编辑器内也提供了有用的编程文档。当你输入文本来标识编程语言的不同元素时,文本将变成不同的颜色。

2023-01-12 15:34:17 434

原创 java什么都要学吗?

所以,对 Java 后端学习来说,XML 简单了解即可。将来真要用到,再查也不迟。作为较低层的数据库基础设施,JDBC 被很多框架(例如 MyBatis)支持。因此,虽然我不能建议你放弃 JDBC 学习,但如果你时间有限,完全可以把它的优先级排低一点。现实开发中,我接触的桌面应用,要么用 C++(例如 MFC),要么用 C#(Winform、WPF)。因此在实际学习中,很多技术就不符合“国情”,学习的现实意义不大。作为页面插件技术,不用多说,连 flash 都快被淘汰了,更无论从未流行的 applet。

2023-01-12 15:33:58 106

原创 JavaScript_流程控制简介

在这个例子中,首先外层if语句的判断条件gendar=="男"返回false,因此会执行else语句。然后我们可以看到else语句内部还有一个if语句,这个内层if语句的判断条件height>170返回true,所以最终输出内容为“高个子女生”。实际上,if语句的嵌套也是很好理解的,说白了就是在if或else后面的“{}”内部再增加一层判断。如果“条件”返回为false,则会直接跳过“{}”内部的程序,然后按照顺序来执行后面的程序。在JavaScript中,由“{}”括起来的程序,我们称为“语句块”。

2023-01-11 15:01:13 371

原创 Java小结

匿名函数,也称为拉姆达函数,是一种使用JavaScript函数的强大方式。即使JavaScript中没有正式的私有对象属性的概念,但可以使用闭包来实现公有方法,而通过公有方法可以访问在包含作用域中定义的变量。当在函数内部定义了其他函数时,就创建了闭包。在后台执行环境中,闭包的作用域链包含着它自己的作用域、包含函数的作用域和全局作用域。但是,当函数返回了一个闭包时,这个函数的作用域将会一直在内存中保存到闭包不存在为止。创建并立即调用一个函数,这样既可以执行其中的代码,又不会在内存中留下对该函数的引用。

2023-01-10 13:54:55 394

原创 JAVA创建类变量

如果类变量中存储的是一个大型的对象数组,则会占据很大的一块内存,而且不会将其释放掉。前面为对象创建的变量称为“对象变量”,因为它们与具体对象相关联。修改类变量的方法与修改对象变量完全相同。如果要跟踪在程序中使用了多少个Virus对象,则可以使用一个类变量来存储这种信息。这两种变量的创建方法和使用方法相同,但是创建类变量时指定使用关键字static。如果修改对象的变量,将不会影响其他Virus对象中的同一个变量。在不仔细查看类的源代码的情况下,将无法确定是类变量还是对象变量。类变量也称为静态变量。

2023-01-10 13:53:32 492

原创 Java入门(3)

主要的不同之处在于命名变量app的创建过程,因为它必须是BaseComponent的实例。有人进一步改进了模块模式,即在返回对象之前加入对其增强的代码。这种增强的模块模式适合那些单例必须是某种类型的实例,同时还必须添加某些属性和(或)方法对其加以增强的情况。如果前面演示模块模式的例子中的application对象必须是BaseComponent的实例,那么就可以使用以下代码。//创建application的一个局部副本。//添加特权/公有属性和方法。//私有变量和私有函数。

2023-01-09 14:24:49 131

原创 Java入门(2)

在创建这个对象的过程中,首先声明了一个私有的components数组,并向数组中添加了一个BaseComponent的新实例(在这里不需要关心BaseComponent的代码,我们只是用它来展示初始化操作)。由于这个对象是在匿名函数内部定义的,因此它的公有方法有权访问私有变量和函数。简言之,如果必须创建一个对象并以某些数据对其进行初始化,同时还要公开一些能够访问这些私有数据的方法,那么就可以使用模块模式。以这种模式创建的每个单例都是Object的实例,因为最终要通过一个对象字面量来表示它。

2023-01-07 13:58:45 434

原创 Java入门(1)

第6章曾经讨论过,构造函数模式的缺点是针对每个实例都会创建同样一组新方法,而使用静态私有变量来实现特权方法就可以避免这个问题。能够在构造函数中定义特权方法,是因为特权方法作为闭包有权访问在构造函数中定义的所有变量和函数。任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量。私有变量包括函数的参数、局部变量和在函数内部定义的其他函数。而利用这一点,就可以创建用于访问私有变量的公有方法。我们把有权访问私有变量和私有函数的公有方法称为特权方法(privileged method)。

2023-01-07 13:57:34 491

原创 前端知识_在Google地图上显示“我在这里”

【例22.3】本节通过实例来看一下如何在页面上显示一幅Google地图,并且把用户的当前地理位置标注在地图上面。如果用户的位置发生改变,将把之前在地图上的标记自动更新到新的位置上。在本例中,将用户当前位置的纬度、经度设定为页面打开时Google地图的中心点。(3)创建地图,并让其在页面中显示,代码如下。//设定地图参数,将用户的当前位置的纬度、经度设定为地图的中心点。(5)设置标注窗口并指定标注窗口中的注释文字,代码如下。//设定标注窗口,并指定该窗口中的注释文字。(2)设定地图的参数,设定的方法如下。

2023-01-06 14:31:48 507

原创 前端基础_离线Web应用概述

HTML5的缓存控制机制综合了Web应用和桌面应用两者的优势:基于Web技术构建的Web应用程序,可在浏览器中运行并在线更新,也可在脱机情况下使用。然而,因为目前的Web服务器不为脱机应用程序提供任何默认的缓存行为,所以要想使用这一新的离线应用功能,必须在应用中明确声明。例如,在最新版本的Firefox中,about:cache页面会显示应用程序缓存的详细信息,提供了查看缓存中的每个文件的办法。但事实上,网络连接中断时有发生,例如,在乘坐飞机的情况下,可预见的中断时间一次就可能达到好几个小时。

2023-01-05 10:10:27 288

原创 异常处理的一般逻辑

这个逻辑与在公司中处理问题的逻辑是类似的,每个级别都有自己应该解决的问题,自己能处理的自己处理,不能处理的就应该报告上级,把下级告诉他的和他自己知道的一并告诉上级,最终,公司老板必须要为所有问题负责。在有了异常机制后,程序的正常逻辑与异常逻辑可以相分离,异常情况可以集中进行处理,异常还可以自动向上传递,不再需要每层方法都进行处理,异常也不再可能被自动忽略,从而,处理异常情况的代码可以大大减少,代码的可读性、可靠性、可维护性也都可以得到提高。对运维和开发人员,则应该输出详细的异常链和异常栈到日志。

2023-01-05 10:09:31 246

原创 前端基础_配置IIS服务器

如果使用Apache这样的通用Web服务器,需要找到在AppServ/Apache2.2/conf文件夹中的mine.types文件并向其添加“text/cache-manifest manifest”内容。(5)在关联扩展名文本框中输入“manifest”,在内容类型文本框中输入“text/cache-manifest”,然后单击“确定”按钮。这确保当你请求任何扩展名为.manifest的文件时,Apache将发送text/cache-manifest文件头部。在微软的IIS服务器中的步骤如下。

2023-01-05 10:09:18 146

原创 前端基础_线型Line styles

最上面一条是round的效果,边角处被磨圆了,圆的半径等于线宽。这里需要注意的是,当值是miter的时候,线段会在连接处外侧延伸直至交于一点,延伸效果受到miterLimit属性的制约。中间的是round的效果,端点处加上了半径为一半线宽的半圆。右边的是square的效果,端点处加上了等宽且高度为一半线宽的方块。还有两条辅助线,为了可以看清楚它们之间的区别,赋予lineCap值的3条线的起点终点都落在辅助线上。【例17.10】在下面的例子中,用递增的宽度绘制了10条直线,最左边的线宽1.0单位。

2022-12-29 13:04:41 715

原创 前端基础_绘制文字

measureText方法接受一个参数text,该参数为需要绘制的文字,该方法返回一个TextMetrics对象,TextMetrics对象的width属性表示使用当前指定的字体后text参数中指定的文字的总文字宽度。该方法接受4个参数,第一个参数text表示要绘制的文字,第二个参数x表示绘制文字的起点横坐标,第三个参数y表示绘制文字的起点纵坐标,第四个参数maxWidth为可选参数,表示显示文字时的最大宽度,可以防止文字溢出。fillText方法用填充方式绘制字符串,该方法的定义如下。

2022-12-29 13:04:25 307

原创 前端基础_像素的处理

data属性是一个保存像素数据的数组,内容类似于“[r1,g1,b1,a1, r2,g2,b2,a2, r3,g3,b3,a3,…该方法使用7个参数,imagedata为前面所述的像素数组,dx、dy分别表示重绘图像的起点横坐标和起点纵坐标,后面dirtyX、dirtyY、dirtyWidth、dirtyHeight这4个参数为可选参数,给出一个矩形的起点横坐标、起点纵坐标、宽度与高度,如果加上这4个参数,则只绘制像素数组中这个矩形范围内的图像。使用canvas API获取图像中所有像素的方法代码如下。

2022-12-27 13:23:25 445

原创 前端基础_矩阵变换

矩阵变换在介绍矩阵变换之前,首先要介绍一下变换矩阵,这个矩阵是专门用来实现图形变形的,它与坐标一起配合使用,以达到变形的目的。当图形上下文被创建完毕时,事实上也创建了一个默认的变换矩阵,如果不对这个变换矩阵进行修改,那么接下来绘制的图形将以画布的最左上角的坐标原点绘制图形,绘制出来的图形也经过缩放、变形的处理,但是如果对这个变换矩阵进行修改,那么情况将会是不一样的。使用图形上下文对象的transform方法修改变换矩阵,该方法的定义如下。transform(m11, m12, m21, m22, dx, d

2022-12-26 11:47:09 547

原创 前端基础_组合多个图形

在前面的实例中,我们看到使用Canvas API可以将一个图形重叠绘制在另一个图形上面,但图形中能够被看到的部分完全取决于以哪种方式进行组合,这时需要使用到Canvas API的图形组合技术。只绘制原有图形中被新图形重叠覆盖的部分与新图形的其他部分,原有图形中的其他部分变成透明,不绘制新图形中与原有图形相重叠的部分。在下面的图形中,黑色方块是先绘制的,即“已有的canvas内容”,灰色圆形是后面绘制的,即“新图形”。只绘制新图形中与原有图形重叠的部分和未被重叠覆盖的原有图形,新图形的其他部分变成透明。

2022-12-26 11:46:15 750

原创 前端基础_事件介绍

timeupdate事件:当前播放位置(currentTime属性)改变,可能是播放过程中的自然改变,也可能是被人为地改变,或由于播放不能连续而发生的跳变。ratechange事件:默认播放速率(defaultPlaybackRate属性)改变或播放速率(playbackRate属性)改变。canplaythrough事件:浏览器估计以当前速率直接播放可以直接播放完整个媒介资源(期间不需要缓冲)。canplay事件:浏览器能够开始媒介播放,但估计以当前速率播放不能直接将媒介播放完(播放期间需要缓冲)。

2022-12-22 16:58:58 630

原创 前端—新增的嵌入多媒体元素与交互性元素

新增的嵌入多媒体元素有video和audio元素,分别是用来插入视频和声音的。值得注意的是,可以在开始标签和结束标签之间放置文本内容,这样旧版本的浏览器就可以显示出不支持该标签的信息。details元素表示用户要求得到并且可以得到的细节信息,可以与summary元素配合使用。summary元素提供标题或图例,是details元素的第一个子元素。datetime-local——选取时间、日、月、年(本地时间)。HTML5中,新增了很多input元素的类型,分别介绍如下。date——选取日、月、年。

2022-12-17 13:09:03 447

原创 前端—新增的行内(inline)的语义元素

mark元素主要用来在视觉上向用户呈现那些需要突出显示或高亮显示的文字。mark元素的一个比较典型的应用就是在搜索结果中向用户高亮显示搜索关键词。meter元素表示度量衡,仅用于已知最大值和最小值的度量。必须定义度量的范围,既可以在元素的文本中,也可以在min/max属性中定义。progress元素表示运行中的进程。可以使用progress元素来显示JavaScript中耗费时间的函数的进程。在HTML5中,新增了以下与行内的语义相关的元素。HTML5中代码示例。HTML5中代码示例。

2022-12-17 13:09:00 75

原创 Java基础—异常处理的一般逻辑

这个逻辑与在公司中处理问题的逻辑是类似的,每个级别都有自己应该解决的问题,自己能处理的自己处理,不能处理的就应该报告上级,把下级告诉他的和他自己知道的一并告诉上级,最终,公司老板必须要为所有问题负责。在有了异常机制后,程序的正常逻辑与异常逻辑可以相分离,异常情况可以集中进行处理,异常还可以自动向上传递,不再需要每层方法都进行处理,异常也不再可能被自动忽略,从而,处理异常情况的代码可以大大减少,代码的可读性、可靠性、可维护性也都可以得到提高。对运维和开发人员,则应该输出详细的异常链和异常栈到日志。

2022-12-16 17:11:30 82

原创 Java基础—异常处理的目标

用户输入或编程错误一般都是难以通过程序自动解决的,第三方错误则可能可以,甚至很多时候,程序都不应该假定第三方是可靠的,应该有容错机制。报告的目的也是为了恢复,但这个恢复经常需要人的参与。对系统运维人员或程序员,他们一般不关心用户输入错误,而关注编程错误或第三方错误,对于这些错误,需要报告尽量完整的细节,包括异常链、异常栈等,以便尽快定位和解决问题。对用户,如果用户输入不对,可以提示用户具体哪里输入不对,如果是编程错误,可以提示用户系统错误、建议联系客服,如果是第三方连接问题,可以提示用户稍后重试。

2022-12-15 15:23:51 78

原创 前端——给图形绘制阴影

shadowBlur用于设定阴影的模糊程度,表示图形阴影边缘的模糊范围。如果不希望阴影的边缘太清晰,需要将阴影的边缘模糊化时可以使用该属性。shadowOffsetX和shadowOffsetY用来设定阴影在X和Y轴的延伸距离,它们是不受变换矩阵影响的。负值表示阴影会往上或左延伸,正值则表示会往下或右延伸,它们默认值都是0。添加阴影效果时,只需利用图形上下文对象的几个关于阴影绘制的属性就可以了,这几个属性如下。shadowColor用于设定阴影效果的延伸,值可以是标准的CSS颜色值,默认是全透明的黑色。

2022-12-15 15:22:34 386

原创 前端基础—自动验证

当输入的内容不符合给定格式时,则不允许提交,同时在浏览器中显示信息提示文字,提示输入的内容必须符合给定格式。min与max这两个属性是数值类型或日期类型的input元素的专用属性,它们限制了在input元素中输入的数值与日期的范围。在提交时,如果元素中内容为空白,则不允许提交,同时在浏览器中显示信息提示文字,提示用户这个元素中必须输入内容。在HTML5中,通过对元素使用属性的方法,可以实现在表单提交时执行自动验证的功能。下面是在HTML5中追加的关于对元素内输入内容进行限制的属性的指定。

2022-12-14 16:00:45 225

原创 前端——表单相关的属性(下)

required属性适用于以下类型的标签:text、search、url、telephone、email、password、date pickers、number、checkbox、radio以及file。novalidate属性适用于以及以下类型的标签:text、search、url、telephone、email、password、date pickers、range以及color。pattern属性规定用于验证input域的模式(Pattern)。

2022-12-13 13:40:46 537

原创 前端——表单相关的属性(上)

autocomplete适用于标签,以及以下类型的标签:text、search、url、telephone、email、password、datepickers、range以及color。list属性适用于以下类型的标签:text、search、url、telephone、email、date pickers、number、range以及color。height和width属性规定用于image类型的标签的图像高度和宽度。新增的与表单相关的元素如下。

2022-12-13 13:40:24 417

原创 前端入门必备基础

基于多种改进过的、强大的错误处理方案,HTML5具备了良好的错误处理机制。非常有现实意义的一点是,HTML5提倡重大错误的平缓恢复,再次把最终用户的利益放在了第一位。例如,如果页面中有错误的话,在以前可能会影响整个页面的显示,而HTML5不会出现这种情况,取而代之的是以标准方式显示broken标记,这要归功于HTML5中精确定义的错误恢复机制。为了能够真正实现浏览器互通的目标,HTML5规范制订了一系列定义明确的行为,任何歧义和含糊都可能延缓这一目标的实现。HTML5要的就是简单、避免不必要的复杂性。

2022-12-12 13:48:11 232

原创 Java基础——异常处理的一般逻辑

这个逻辑与在公司中处理问题的逻辑是类似的,每个级别都有自己应该解决的问题,自己能处理的自己处理,不能处理的就应该报告上级,把下级告诉他的和他自己知道的一并告诉上级,最终,公司老板必须要为所有问题负责。在有了异常机制后,程序的正常逻辑与异常逻辑可以相分离,异常情况可以集中进行处理,异常还可以自动向上传递,不再需要每层方法都进行处理,异常也不再可能被自动忽略,从而,处理异常情况的代码可以大大减少,代码的可读性、可靠性、可维护性也都可以得到提高。对运维和开发人员,则应该输出详细的异常链和异常栈到日志。

2022-12-09 14:33:54 78

原创 HTML5的新认识

HTML5规范是基于用户优先原则编写的,其主要宗旨是“用户即上帝”,这意味着在遇到无法解决的冲突时,规范会把用户放到第一位,其次是页面的作者,再次是实现者(或浏览器),接着是规范制定者,最后才考虑理论的纯粹实现。因此,HTML5的绝大部分是实用的,只是有些情况下还不够完美。虽然Web开发者普遍认为HTML5的出现是令人兴奋的,但还是有些担心,例如,新的HTML5在旧版本的浏览器上能否正常运行,会不会产生错误等各种问题。HTML5是基于各种各样的理念进行设计的,这些设计理念体现了对可能性和可行性的新认识。

2022-12-09 14:33:10 82

原创 Java基础—对比受检和未受检异常

对比受检和未受检异常通过以上介绍可以看出,未受检异常和受检异常的区别如下:受检异常必须出现在throws语句中,调用者必须处理,Java编译器会强制这一点,而未受检异常则没有这个要求。为什么要有这个区分呢?我们自己定义异常的时候应该使用受检还是未受检异常呢?对于这个问题,业界有各种各样的观点和争论,没有特别一致的结论。一种普遍的说法是:未受检异常表示编程的逻辑错误,编程时应该检查以避免这些错误,比如空指针异常,如果真的出现了这些异常,程序退出也是正常的,程序员应该检查程序代码的bug而不是想办法处理这种异常

2022-12-08 13:10:35 125

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除