Month: February 2017

Java 异常处理的误区和经验总结

在写代码的过程中,我们往往会忽略一些异常处理的基础知识。本文旨在介绍 Java 异常的常见误区和一些细节处理,包括异常的选择、错误代码的利用、处理多层次的异常、以及如何添加有效信息到异常等。 本文着重介绍了 Java 异常选择和使用中的一些误区,希望各位读者能够熟练掌握异常处理的一些注意点和原则,注意总结和归纳。只有处理好了异常,才能提升开发人员的基本素养,提高系统的健壮性,提升用户体验,提高产品的价值。 误区一、异常的选择 图 1. 异常分类 图 1 描述了异常的结构,其实我们都知道异常分检测异常和非检测异常,但是在实际中又混淆了这两种异常的应用。由于非检测异常使用方便,很多开发人员就认为检测异常没什么用处。其实异… Read More

JAVA: 深入理解java异常处理机制

1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。 package Test; public class TestException { public TestException() { } boolean testEx() throws Exception { boolean ret = true;

Java 多线程编程讲解

Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 这里定义和线程相关的另一个术语 – 进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。 多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。 一个线程的生命周期 线程是一个动态执行的过程,它也有一个从产生到死亡的过程。 下图显示了一个线程完整的生命周期。 新… Read More

JAVA: Socket(套接字)讲解

什么是 Socket Socket(套接字):是在网络上运行两个程序之间的双向通信链路的一个端点。socket绑定到一个端口号,使得 TCP 层可以标识数据最终要被发送到哪个应用程序。 正常情况下,一台服务器在特定计算机上运行,​​并具有被绑定到特定端口号的 socket。服务器只是等待,并监听用于客户发起的连接请求的 socket 。 在客户端:客户端知道服务器所运行的主机名称以及服务器正在侦听的端口号。建立连接请求时,客户端尝试与主机服务器和端口会合。客户端也需要在连接中将自己绑定到本地端口以便于给服务器做识别。本地端口号通常是由系统分配的。 如果一切顺利的话,服务器接受连接。一旦接受,服务器获取绑定到相同的… Read More

Java 程序中的多线程

看一看开发和使用线程是多么容易 由于在语言级提供了线程支持,在 Java 语言中使用多线程要远比在 C 或 C++ 中来得简单。本文通过简单的程序示例展现了在 Java 程序中线程编程的简单性。在学习完本文后,用户应该能够编写简单、多线程的程序。 在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持。本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观。读完本文以后,用户应该能够编写简单的多线程程序。 为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务。这样的程序有单个控制线程,控制在这四个任务之间线性地移动。此外,因为所需的资源 ― 打印机、磁盘、数… Read More

JAVA 并发: 进程(Processes )和线程(Threads)

进程和线程是并发编程的两个基本的执行单元。在 Java 中,并发编程主要涉及线程。 一个计算机系统通常有许多活动的进程和线程。在给定的时间内,每个处理器只能有一个线程得到真正的运行。对于单核处理器来说,处理时间是通过时间切片来在进程和线程之间进行共享的。 现在多核处理器或多进程的电脑系统越来越流行。这大大增强了系统的进程和线程的并发执行能力。但即便是没有多处理器或多进程的系统中,并发仍然是可能的。 进程 进程有一个独立的执行环境。进程通常有一个完整的、私人的基本运行时资源;特别是,每个进程都有其自己的内存空间。 进程往往被视为等同于程序或应用程序。然而,用户将看到一个单独的应用程序可能实际上是一组合作的进程… Read More

Java学习总结: Java语言中的修饰符

一、访问控制修饰符 Java语言有四种级别的访问控制修饰符,如下: l 公开级别:用public修饰,对外公开。 l 受保护级别:用protected修饰,向子类及同一个包中的类公开。 l 默认级别:没有访问控制修饰符,向同一个包中的类公开。 l 私有级别:用private修饰,只有类本身可以访问,不对外公开。 下表总结了这4种访问级别的可访问范围。 访问级别 访问控制修饰符 同类 同包 子类 不同的包 公开 public √ √ √ √ 受保护 protected √ √ √ — 默认 没有访问控制修饰符 √ √ — — 私有 private √ — — — 注意:成员变量、成员方法和构造方法可处于4个访问级别中的一个。顶层类只可以处于公开或默认访问级别,不能用priva… Read More

Java学习笔记:内部类/匿名内部类的全面介绍

编写java程序时,一般一个类(或者接口)都是放在一个独立的java文件中,并且类名同文件名(如果类是public的,类名必须与文件名一致;非public得,无强制要求)。如果想把多个java类放在一个java文件中,则只能有一个public类。如下面的两个类放在同一个文件中就会报错,无法编译通过。 可以看出,因为TestOne.java文件中已经有一个public类TestOne,这时再加了一个public类TestTwo就报错了。如果将类TestTwo前面的public修饰符去掉就没有问题了。 我们下面介绍内部类的概念和使用,所谓内部类,简单的说,就是一个类定义在另一个类的内部。与上面的两个类… Read More

Java中的两个关键字——super、this

一、super super 是java中方的一个关键字,用它可以引用父类中的成员: super可用于访问父类中定义的属性 super可用于调用父类中定义的成员方法 super可用于在子类构造器中调用父类的构造器 使用super关键字注意事项: 1、当子类和父类都有同名的属性时,在子类中如果要使用父类的属性 super . 属性 2、 super只能应用在成员方法和构造方法中,不能用在静态方法中(和this是一样的) 3、如果在构造方法中使用必须放在第一行 4、在构造方法中this()和super()不能同时出现   super没有什么需要解释的地方,我们用代码来看看super具体的一些强大功能吧  … Read More

Windows 10 中创建无线连接(wifi热点)并共享教程

创建无线连接小编使用的winxp系统直接在网络中心就可以完成了,但在windows 10系统中稍有点复杂了,在此小编给各位完整的介绍一个操作步骤。 1、在win10桌面我们按下键盘中的“WIN+X”组合键然后找到菜单下的“命令提示符(管理员)”,我们点击它打开: 2、在打开cmd界面中我们输入:netsh wlan set hostednetwork mode=allow ssid=test key=123456789,点击回车。 SSID为热点名称 KEY为热点密码,具体如下所示: 3、这个密码是wifi密码了,长度我们知道是要8位的: 4、输入netsh wlan start hostednetwork ,开启热点,如下图… Read More

Windows 8 创建wifi热点供手机上网教程

2012年10月26日,微软正式推出Windows 8操作系统,不少用户也都升级到了最新的Win8。大家知道,在Win7系统下,我们很方便的就在命令提示符下建立了WIFI热点,那么Win8上是否同样可以呢?我以实际体验告诉大家,是可以的,但是步骤上却有点小小的差异。下面我就详细告诉大家如何操作。 工具/原料 一台正常工作的电脑(安装了win8系统) 配备有无线网卡(支持wifi热点) 方法/步骤 1 首先将鼠标移到桌面左下角,单击右键,在弹出的快捷菜单中找到“命令提示符(管理员)”,点击,如下图所示: 2 点击后,系统就以管理员权限打开了命令提示符,在命令提示符中输入以下命令“netsh wlan set hoste… Read More

JavaScript:复制的内容自动添加版权信息 How to automatically append text to text copied with JavaScript

There are two main ways to add extra info to copied web text. 1. Manipulating the selection The idea is to watch for the copy event, then append a hidden container with our extra info to the dom, and extend the selection to it. This method is adapted from this article by c.bavota. Check also jitbit‘s version for