JAVA
蒋固金
天下大事必作于细,天下难事必作于易
展开
-
JAVA图形界面(GUI)之表格
表格(JTable)是我们在GUI开发中很常用的一个组件。表格在可视化编程中用于显示信息,在Swing编程中非常有用,当要显示大量数据时,用表格可以清晰的显示出来。 本篇博客将演示JTable的基本用法。构造方法: 方法名 说明 JTable() 构造一个默认的 JTable,使用默认的数据模型、默认的列模型和默认的选择模型对其进行初始化 JTable(int numRows,原创 2016-01-03 21:02:43 · 34179 阅读 · 0 评论 -
JAVA图形界面(GUI)之菜单
菜单是我们很常见的一种组件,可以方便我们进行操作,JAVA中也提供了菜单的支持。这一篇博客将演示在JAVA中如何使用菜单。我们以记事本的部分菜单为例。import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.JFrame;import javax.swing.JMenu;impo原创 2016-01-03 21:40:55 · 22150 阅读 · 0 评论 -
JAVA多线程机制之线程概念
在操作系统中,一个独立的正在运行的程序称为进程,通常一个程序又被分为称作任务的小块,任务又可以进一步分为称作线程的更小的块。如果一个程序多于一个线程同时执行,就可以称为多线程并行。 一个线程被定义为一个单一的连续控制流,线程也可以成为执行环境或者轻量级程序。当一个程序发起之后,会首先生成一个缺省的线程,这个线程被称作主线程,就是由main方法引导进入的线程,main方法调用的方法结构会在这个主线程原创 2016-01-03 22:15:49 · 2854 阅读 · 0 评论 -
JAVA多线程机制之同步与互斥
一个多线程的程序,两个或者多个线程可能需要访问同一个数据资源。这时就必须考虑数据安全的问题,需要线程互斥或者同步。线程的互斥当多个线程需要访问同一资源时,要求在一个时间段内只能允许一个线程来操作共享资源,操作完毕后别的线程才能读取该资源,这叫线程的互斥。我们需要使用synchronized来给共享区域加锁,确保共享资源安全。 如果一个线程调用了某个对象的synchronized方法,它在这个方法运原创 2016-01-04 20:12:40 · 8423 阅读 · 1 评论 -
JAVA语法基础之数组
一、一维数组数组是一组具有相同类型和名称的变量集合,能很方便的把一系列相同类型的数据保存在一起,这些变量称为数组元素。每个数组元素都有一个编号,这个编号叫做下标,可以通过下标来区别这些元素,数组下标编号从0开始,数组元素个数称为数组的长度。数组是一种复合数据类型。1、一维数组的声明type arrayName[];或type[] arrayName;其中type可以是JAVA中任意原创 2015-12-18 19:41:19 · 2796 阅读 · 2 评论 -
JAVA面向对象之对象和类
Java是一种面向对象的编程语言,面向对象在整个Java的学习中属于重中之重,从这一篇博客开始,将逐步为大家介绍Java面向对象的相关知识,这一偏将为大家介绍对象和类的概念以及如何定义类和创建对象。一、对象和类的概念1、对象以一个人为例,对于人,我们可以从他所具有的特征和所具有的行为来进行分析。特征:体重、身高、性别、年龄......行为:吃饭、睡觉、说话......上面的原创 2015-12-20 09:30:41 · 9950 阅读 · 2 评论 -
JAVA多线程机制之暂停、恢复和停止
在JDK1.2以前的版本如果要实现线程的暂停、恢复和停止的方法分别是suspend()、resume()、stop()。但是从JDK1.2以后这些方法已经被遗弃,因为它们有可能造成严重的系统错误和异常。 首先suspend()方法不会释放线程所占用的资源。如果使用该方法将某个线程挂起,则可能会使其他等待资源的线程死锁。而resume()方法本身并无问题,但是不能独立于suspend()方法存在。原创 2016-01-04 21:19:01 · 8765 阅读 · 1 评论 -
JAVA多线程机制之死锁
同步特性使用起来非常方便,功能很强大。但有的时候考虑不周的话有可能出现线程死锁。死锁主要是多个线程争抢资源造成的。 下面通过一个例子演示死锁:class Resource{ private int res = 0; public int getRes() { return res; } public void setRes(int res) {原创 2016-01-04 23:01:02 · 2369 阅读 · 0 评论 -
JAVA网络编程之获取网络资源
在应用程序开发过程中,很多时候我们会用网络资源,比如接口调用等。Java中也提供了相关的类去处理网络资源,而我们在处理网络资源的时候,用到的最多的就是IO,所以对IO还不了解的可以先看看前面的博客。 Java中,处理网络资源、网络通信所需要的类都在java.net包中。URL类URL代表一个统一资源定位符,它是指向互联网“资源”的指针。资源可以是简单的文件或目录,也可以是对更为复杂的对象的引用,例原创 2016-01-05 11:39:59 · 5579 阅读 · 1 评论 -
JAVA网络编程之模拟表单提交
这一篇博客是对上一篇《JAVA网络编程之获取网络资源》的扩充,这一篇将使用HttpURLConnection来模拟一个表单的提交。在B/S架构的系统中,请求时通过浏览器与服务端进行交互的,提交请求参数时使用form表单进行提交,但是有很多时候,我们需要在程序中直接调用HTTP接口,同时需要传递一些参数,那么这个时候我们就可以通过使用HttpURLConnection来模拟表单的提交过程。首先,我们可原创 2016-01-05 16:11:23 · 3291 阅读 · 0 评论 -
JAVA网络编程之Socket
在前面博客中使用到的HttpsURLConnection实际上是基于HTTP协议完成获取网络资源的,而HTTP协议又是基于TCP/IP协议的,这一片博客将介绍在java中如何使用TCP/IP协议进行服务端与客户端之间的通信。 TCP/IP,Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,原创 2016-01-05 19:06:30 · 2596 阅读 · 3 评论 -
JAVA网络编程之UDP
上一篇博客中使用的Socket是基于TCP协议的,这一篇为大家简单介绍一下UDP协议。 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。 UDP协议全称是用原创 2016-01-05 20:36:06 · 2158 阅读 · 0 评论 -
JAVA访问数据库之概述
JAVA类库中包含一组用于访问数据库的接口和类,作为开发数据库应用程序的API。这些接口和类统称为JDBC(Java DataBase Connectivity),JDBC是访问数据库的类和接口的结合。对于数据库的操作,在整个Java学习过程中至关重要。JDBC简介JDBC提供了连接各种常用数据库的能力。有了JDBC,访问数据库就是一件很容易的事,有了JDBC,就不必为访问Sysbase数据库和Or原创 2016-01-05 22:25:09 · 2880 阅读 · 0 评论 -
JAVA注解
Annotation(注解)是JDK1.5及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。另外,你可以在编译时选择代码里的注解是否原创 2016-01-22 13:32:10 · 1749 阅读 · 1 评论 -
JAVA访问数据库之连接数据库
开发一个访问数据库的应用程序,首先要加载数据库的驱动程序,只需要在第一次访问数据库时加载一次,然后每次运行时创建一个Connection实例,紧接着执行操作数据库的SQL语句,并处理返回的结果集,最后在完成完成此次操作时销毁前面创建的Connection,释放与数据库的连接。加载数据库驱动在连接数据库之前,首先要把JDBC驱动类加载到java虚拟机,可以使用java.lang.Class类原创 2016-01-06 09:57:35 · 4235 阅读 · 0 评论 -
JAVA动态代理
静态代理在介绍动态代理之前,我们先来看看静态代理的实现过程,代理我们可以理解为为其他对象提供一种代理以控制对这个对象的访问。原创 2016-01-23 14:20:21 · 1706 阅读 · 0 评论 -
JAVA拖拽选择文件
最简单的选择文件的方式是使用文件选择框,但是这种方式在操作起来很麻烦,很多人在操作的时候喜欢直接使用鼠标拖拽,今天就为大家演示一下JAVA中如何实现直接用鼠标拖拽文件选择。原创 2016-01-23 15:03:35 · 5325 阅读 · 3 评论 -
JAVA面向对象之构造方法
一、构造方法在上一篇博客《JAVA面向对象之对象和类》中用到了Box box = new Box();语句来创建一个对象,new可以理解成创建一个对象的关键字,通过new关键字为对象分配内存,初始化实例变量,并调用构造方法。Box()在形式上和调用方法的形式相同,这个Box()就是一个特殊的方法叫构造方法。但是我们在代码中并没有看到这个方法的定义,是因为在没有定义构造方法的时候,JAVA会隐式原创 2015-12-22 21:39:51 · 4582 阅读 · 1 评论 -
JAVA处理未捕获异常
应用程序开发过程中,对于异常的处理很重要,但是有些异常并不是我们可以事先预知的,那么对于我们没有捕获的异常将由JAVA的默认行为去处理,今天为大家介绍一种用于全局的捕获异常的方式,替代JAVA默认的处理行为。原创 2016-01-24 16:43:14 · 3978 阅读 · 0 评论 -
JAVA面向对象之方法
一、方法的重载Java允许在同一个类中定义几个同名的方法,只要这些方法具有不同的参数列表,即方法的参数类型不同,或方法参数个数不同。这种做法称为方法的重载。方法的重载包括以下几种:1、成员方法的重载重载方法的参数表必须不同,参数的不同主要是参数的类型、顺序、个数不同。public class MethodOverload{ public int sum(int a, int原创 2015-12-23 21:34:52 · 2812 阅读 · 1 评论 -
JAVA面向对象之静态属性和方法
在实际软件开发过程中,有的时候希望无论是否产生了对象,或是产生了多少对象,某些特定的数据在内存中只有一份,JAVA中通过static关键字来解决这个问题。在类内使用关键字static修饰的成员变量和成员方法分别称为静态变量和静态方法,也称为类变量和类方法,而没有static修饰的变量和成员方法称为对象变量和对象方法。一、静态变量静态变量的特点是它不是属于某个对象,而是属于整个类的,它们原创 2015-12-23 22:10:50 · 5890 阅读 · 1 评论 -
JAVA访问数据库之增删改查(CRUD)
上一篇博客介绍了如何使用JAVA连接数据库,那么这一篇将继续为大家介绍如何使用JDBC对数据库的增删改查(CRUD)操作。 这一篇博客中的示例将使用上一篇中生成的H2数据库文件。查询查询在数据库的操作中是很重要的,我们把数据保存在数据库中,就是为了我们在需要的时候能够快速、高效的查询出来。修改在这里,我讲增删改作为一类,同属于对数据库的修改操作,在例子中,也会发现,我们使用的方法原创 2016-01-08 11:30:41 · 16684 阅读 · 0 评论 -
JAVA基础教程汇总
到这一篇博客为止,JAVA的基础部分已经介绍完了,这一篇为基础部分的汇总。原创 2016-01-08 16:11:26 · 8189 阅读 · 0 评论 -
JAVA观感器
在JAVA的GUI开发中,Swing组件使用的是默认的皮肤,我们可以通过设置观感器来更改默认的皮肤。 如图所示,这就是JAVA默认观感器(XP系统)现实的效果。这一篇博客将通过示例代码为大家演示如何更改默认的观感器。原创 2016-01-25 20:12:21 · 2128 阅读 · 0 评论 -
JAVA SFTP操作
sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的一部分,是一种传输档案至 Blogger 伺服器的安全方式。原创 2016-01-18 17:28:57 · 3211 阅读 · 0 评论 -
JAVA面向对象之封装
封装是JAVA三大特性之一,其他两个分别是多态和继承,这一篇就为大家介绍一下JAVA的封装。一包1包的概念2创建包3引用包二访问控制权三封装一、包java要求源程序文件名与主类的类名相同,因此若要将多个类放在一起时(保存在同一个目录中),就要保证各类名不能重复。但是在实际开发中,一个软件系统可能包含成百上千个类,如果这些文件都保存在一个目录下,类名冲突的可能性就很大。另外,在软件设计过程原创 2015-12-24 18:31:52 · 2780 阅读 · 1 评论 -
JAVA面向对象之继承
继承是指通过某种机制使得当前定义的类可以使用现有类的所有可以继承的功能(属性和方法)而不用重新编写原来的类,从而简化类的定义,实现代码的复用。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。所以继承的另一种表述为:子类可以继承父类的属性和方法,以实现代码复用。 JAVA只支持单继承,不允许多重继承,即一个类只能有一个父类,但可以有多层继承,即一个类可以继承某原创 2015-12-24 21:23:06 · 2481 阅读 · 2 评论 -
JAVA面向对象之多态
多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。 多态指同一个实体同时具有多种形式。它是面向对象程序设计(原创 2015-12-25 09:55:05 · 2452 阅读 · 2 评论 -
JAVA本地接口(JNI)
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他编程语言,只要调用约定受支持就可以了。原创 2016-01-26 12:00:49 · 2363 阅读 · 0 评论 -
JAVA调用动态链接库
上一篇《JAVA本地接口(JNI)》中介绍了JAVA的JNI技术,通过JAVA自有的方式调用动态链接库,这一篇将继续为大家介绍使用其他方式调用动态链接库。原创 2016-01-26 14:55:36 · 2875 阅读 · 0 评论 -
JAVA解析HTML
htmlparserhtmlparser是一个纯的java写的html(标准通用标记语言下的一个应用)解析的库,它不依赖于其它的java库文件,主要用于改造或 提取html。原创 2016-01-26 17:09:19 · 2652 阅读 · 0 评论 -
JAVA应用小程序(Applet)
Applet是采用Java编程语言编写的小应用程序,该程序可以包含在 HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同。 含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。原创 2016-01-27 09:50:03 · 9068 阅读 · 0 评论 -
JAVA获得设备信息
做JAVA开发时,可能会获得设备的一些信息,比如CPU、内存,做一些监控等,今天介绍一种JAVA获得设备信息的方式,使用的第三方包为sigar.jar(根据操作系统类型,还要添加对应的动态链接库)。 代码如下:import java.net.InetAddress;import java.util.Set;import java.util.TreeSet;import org.hyperic原创 2016-01-10 12:01:27 · 4270 阅读 · 0 评论 -
JAVA面向对象之抽象类和接口
抽象类接口抽象类与接口比较前面为大家介绍了类的相关概念以及使用方式,在Java中有两种特殊的类,分别为抽象类和接口(本质上还是类),这一片博客就为大家介绍一下抽象类以及接口的使用。对这两种特殊的类进行比较。抽象类如果一个类中存在某个或某些方法必须由继承该类的子类实现,这个时候我们就可以使用抽象类。使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指原创 2015-12-25 16:19:44 · 2730 阅读 · 2 评论 -
JAVA面向对象之内部类
内部类在一个类的内部声明的类,称为内部类(也叫内嵌类)。内部类只能在包含它的类中使用,同时它可以看作是该包含类的一段特殊代码,可以直接使用该包含类的变量和方法。 内部类编译后也会形成一个单独的class,但它附属于其包含类。创建内部类的对象时会有一个对外部类对象的引用,所以一般只能在非静态方法里创建内部类对象。 创建一个外部类Outer,在其非静态方法中调用内部类。public class Ou原创 2015-12-26 17:54:03 · 2403 阅读 · 1 评论 -
JAVA常用类之String
多个字符排成一串就构成了字符串,字符串在程序设计中使用广泛。在JAVA中定义了String和StringBuffer两个类来处理字符串的各种操作。这两个类位于java.lang包中,默认情况下不需要导入该包。构造方法 方法名 说明 String() 初始化一个新创建的 String 对象,使其表示一个空字符序列 String(byte[] bytes) 通过使用平台的默认字符集原创 2015-12-26 18:08:59 · 2456 阅读 · 4 评论 -
JAVA常用类之StringBuffer
上一篇博客中为大家介绍了String类的使用,这一篇再为大家介绍一个用于处理字符串的类StringBuffer。 在JDK API中对StringBuffer类的描述如下: 线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 可将字符串缓冲区安全地用于多个线程。可以在必要原创 2015-12-26 18:09:43 · 2219 阅读 · 2 评论 -
JAVA常用类之Math
在应用程序设计时,我们经常会用到一些数学函数进行计算,比如三角函数、指数等。在Java中提供了Math类方便我们进行数学计算。 Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 与 StrictMath 类的某些数学方法不同,并非 Math 类所有等价函数的实现都定义为返回逐位相同的结果。此类在不需要严格重复的地方可以得到更好的执行。 默认情况下,很多 Ma原创 2015-12-26 18:10:21 · 2329 阅读 · 1 评论 -
JAVA常用类之日期处理
在应用程序设计中,我们经常会用到日期时间,比如出生日期之类的,JAVA中为我们提供了一些处理日期的类。这一片博客将为大家介绍一下。java.util.DateDate类是我们用的比较多的一个处理时间的类。表示特定的瞬间,精确到毫秒。 在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的原创 2015-12-26 18:10:45 · 3362 阅读 · 2 评论 -
JAVA常用类之包装类
JAVA语言包装类把基本数据类型转换为对象。每个JAVA基本类型在java.lang包中都有一个相应的包装类。 基本类型 包装类 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double原创 2015-12-27 12:44:13 · 4420 阅读 · 1 评论