JAVA
蒋固金
天下大事必作于细,天下难事必作于易
展开
-
Java获取泛型参数实际类型
最近在优化JDBFly代码时,需要通过泛型获得实际的实体对象类型,封装了一个工具类,分享给大家,目前该工具类实现了通过子类获取父类或接口指定位置的泛型参数对应的实际参数,可以通过泛型参数名称或位置进行查找,以下为工具类代码:package com.jianggujin.util;import java.lang.reflect.Array;import java.lang.reflect.GenericArrayType;import java.lang.reflect.Parameterized原创 2021-03-25 15:05:36 · 1293 阅读 · 0 评论 -
JDK内置工具之jar
jar用于处理Java存档(JAR)文件。jar命令是基于ZIP和ZLIB压缩格式的通用归档和压缩工具。但是,jar命令主要用于将Java applet或应用程序打包到单个存档中。将小应用程序或应用程序的组件(文件,图像和声音)组合到单个存档中时,可以由Java代理(例如浏览器)在单个HTTP事务中下载它们,而无需为每个组件都建立新的连接片,这样可以缩短下载时间。同时,jar命令还可以压缩文件,从而进一步缩短了下载时间。jar命令还允许小程序作者对文件中的各个条目进行签名,以便可以验证其来源。无论是否压缩,原创 2021-01-26 17:19:01 · 835 阅读 · 0 评论 -
JDK内置工具之extcheck
extcheck用于检测目标Java存档(JAR)文件与当前安装的扩展JAR文件之间的版本冲突。基本语法为:extcheck [-verbose] <jar file>,verbose为选中扩展名目录中列出的JAR文件,同时还将报告目标JAR文件和任何冲突的JAR文件的清单属性。通过extcheck命令可以检查指定的JAR文件是否与Java SE SDK中安装的任何扩展名存在标题和版本冲突。在安装扩展之前,可以该命令查看是否已安装相同或更新版本的扩展。extcheck命令将目标JAR文件清单原创 2021-01-26 13:34:39 · 536 阅读 · 0 评论 -
JDK内置工具之appletviewer
appletviewer用于在Web浏览器外部运行applet。基本语法为:appletviewer <options> url,option为选项部分,多个选项用空格分隔。url要显示的文档或资源的位置,可以指定多个以空格分隔的url。可用选项如下:-debug 在 Java 调试器中启动小应用程序查看器-encoding <encoding> 指定 HTML 文件使用的字符编码-J<runtime flag>原创 2021-01-26 11:13:18 · 3482 阅读 · 0 评论 -
使用JCompiler实现JAVA代码内存中动态编译
第一部分 简介JCompiler是用Java 编写的用来将Java源代码动态编译为字节码的辅助工具,开发者可以动态生成源代码并在内存中将其进行编译并获得编译后的类对象。第二部分 开始使用使用JCompiler可以直接下载源代码编译或者下载已经编译的jar文件,如果您是使用maven来构建项目,也可以直接在pom.xml中添加JCompiler的坐标:<!-- http://mvnrepository.com/artifact/com.jianggujin/JCompiler -->&l原创 2021-01-04 16:46:08 · 703 阅读 · 1 评论 -
JDBFly使用教程
第一部分 简介JDBFly是一个基于JAVA的持久层开发框架,包含两部分内容:Mybatis增强、数据库版本跟踪。在简化常规开发的同时屏蔽数据库的差异,通过JDBFly使开发者更加关注业务本身,如雄鹰般在天空自由翱翔,从繁琐重复的持久层编码中解放出来。1.1 特性侵入小:对Mybatis只做增强,对原有原生代码不会产生影响,仅需调整少量JDBFly配置代码损耗小:启动自动注入即会自动注入内置Mapper,提供基本CURD,无额外性能损耗强大的 CRUD 操作:内置通用 Mapper、通用 Ser原创 2020-11-11 13:33:06 · 622 阅读 · 0 评论 -
使用JMapper简化mybatis通用Mapper的查询与删除操作
第一部分 简介JMapper是基于mybatis通用Mapper的扩展实现,可以让您在使用Mybatis的时候可以像JPA那样通过方法名称定义相关的操作。第二部分 开始使用使用JMapper可以直接下载源代码编译或者下载已经编译的jar文件,如果您是使用maven来构建项目,也可以直接在pom.xml中添加JMapper的坐标:<!-- http://mvnrepository.c...原创 2020-01-10 16:43:59 · 2601 阅读 · 1 评论 -
JAVA概述
一、JAVA简介 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总原创 2015-11-14 14:18:32 · 3862 阅读 · 1 评论 -
Java的特点
Java是一种“简单”、面向对象、分布式、解释型、健壮、安全、体系结构中立、可移植、高性能和动态的编程语言。简单:Java的设计目的是让专业程序员觉得既易学又好用。假设你有编程经历,你将不觉得Java难掌握,如果你已经理解面向对象编程的基本概念,学习Java见更加容易。面向对象:面向对象是现代编程语言的重要特征之一,面向对象技术极大的提高了人们的软件开发能力。 分布原创 2015-11-15 20:08:11 · 5003 阅读 · 1 评论 -
第一个JAVA程序解析
上一篇博客中,我们编写了第一个JAVA程序并使用最原始的方式对其进行编译运行,很多文章或书籍中对该种编译运行方式不做介绍,但是我认为这有助于我们更好的了解、学习JAVA,是不可忽略的一部分,在我身边有很多人,学完一段时间JAVA后,只知道如何在IDE中进行开发,却不知脱离IDE后该如何运行,不得不说这也是一种悲哀。言归正传,我们来看一下上一篇博客中的例子"Hello World",这也是几乎所原创 2015-11-21 10:48:44 · 4195 阅读 · 1 评论 -
JAVA语法基础之变量和基本数据类型
一、变量的概念变量是Java程序中的一个基本存储单元。变量是一个标识符、类型及一个可选初始值的组合定义。所有的变量都有一个作用域,即变量在某一区域有效。基本的变量声明方式如下:type identifier [=value];其中type为Java的数据类型,identifier为变量的名称,指定一个符号或一个值为初始化变量。初始化表达式必须产生与指定变量类型一样或兼容的值。声明指原创 2015-11-22 18:11:32 · 3292 阅读 · 1 评论 -
JAVA语法基础之标识符和关键字
一、标识符JAVA中的变量名、方法名、类名和对象名都是标识符,程序在编写程序的过程中要标识和引用都需要标识符來唯一确定。在Java中标识符的命名规则如下:可由任意顺序的大小写字母、数字、下划线和美元符号组成。 不能以数字开头。 不能是Java中的保留关键字。 没有长度限制,但是大小写敏感,如Hello和hello是不同的标识符。 二、关键字和其他原创 2015-11-22 16:29:06 · 4231 阅读 · 1 评论 -
JAVA语法基础之运算符
运算符是一种特殊符号,用以表示数据的运算、赋值和比较。运算符共分为算术运算符、赋值运算符、比较运算符、逻辑运算符、移位运算符。一、算术运算符算术运算符的功能是做各种算术运算,其操作数可以是字符型、整型或浮点型数据。Java中的算术运算符又可以分为两种:单目运算符和双目运算符。单目运算符的操作数只有一个,只对唯一的操作数进行处理。双目运算符操作数有两个,运算过程中由两个操作数参与完成。算术运原创 2015-11-23 21:57:13 · 2823 阅读 · 0 评论 -
JAVA集合框架
在JAVA中专门设计了一组类,他们实现了各种各样的数据存储,这种专门用来存储其他对象的类,被称为容器类,这组类和接口的设计结构也被称为集合框架(Collection Framework)。 JAVA集合主要分为三种类型。Set(集):集合中的对象不按照特定顺序排序,不允许有重复对象。某些实现类可以对集合中对象按特定方式排序。List(列表):集合中的对象按照索引位置排序,允许有重复对象。Lis原创 2015-12-27 22:22:09 · 2588 阅读 · 3 评论 -
JDK/bin目录下的不同exe文件的用途
安装完JDK,大家是否发现安装目录的bin文件夹有很多exe文件。下面就为大家介绍一下不同exe文件的用途。javac:Java编译器,将Java源代码换成字节代。 java:Java解释器,直接从类文件执行Java应用程序代码。 appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其原创 2015-11-20 09:00:45 · 5840 阅读 · 1 评论 -
第一个JAVA程序
前面几篇博文介绍了JAVA的特点以及开发工具集,从这篇开始,我们真正的学习JAVA的语法等知识。本篇将介绍如何使用记事本编写我们的第一个JAVA程序并通过控制台编译运行。第一步:新建文本文档,编辑内容如下所示:/** * 我的第一个Java程序 */public class HelloWorld { /** * 程序入口方法 */ pu原创 2015-11-20 16:25:08 · 5931 阅读 · 2 评论 -
JAVA环境变量配置
安装完JDK后,要想要我们开发环境正常运行,我们需要对环境变量进行配置(虽然有时不配置也可以运行,但是最好不要忽略这一步,避免以后一些不必要的麻烦)。假设JDK安装在D:\Java\jdk1.6.0_45,如图所示:第一步:打开环境变量配置窗口XP:在我的电脑上右击,选择属性,打开系统属性窗口,选择高级选项卡,在下面会看到环境变量按钮,单击。Win7/8:在原创 2015-11-20 15:36:29 · 2592 阅读 · 1 评论 -
JAVA集合框架之Set接口实现类
在上一篇《JAVA集合框架》中为大家介绍了JAVA集合框架的基本组成,这一片开始将为大家介绍集合框架中常用的实现类的用法。java.util.HashSet< E >此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。这是我们最常用的Set接口的实现类。构造方法 方法名 说明原创 2015-12-28 09:47:05 · 11547 阅读 · 5 评论 -
JAVA集合框架之List接口实现类
上一篇博客《JAVA集合框架之Set接口实现类》中介绍了Set接口的相关实现类,这一篇将介绍List接口的实现类。java.util.ArrayList< E >ArrayList有点类似于数组,相比较于数组而言,ArrayList可以动态的更改元素个数,相对于数组较为灵活。 每个 ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向 Ar原创 2015-12-28 14:18:44 · 2905 阅读 · 3 评论 -
JAVA集合框架之Map接口实现类
java.util.HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 co原创 2015-12-29 09:47:17 · 4229 阅读 · 3 评论 -
JAVA泛型
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实原创 2015-12-29 14:14:57 · 2166 阅读 · 3 评论 -
JAVA输入输出(IO)之文件
计算机文件是以计算机硬盘为载体存储在计算机上的信息集合。JAVA中对文件的操作主要是使用java.io.File类。这一篇博客也将围绕着File类进行讲解。构造方法 方法名 说明 File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例 File(String pathname) 通过将原创 2015-12-29 14:52:24 · 2648 阅读 · 4 评论 -
JAVA输入输出(IO)之字节流
在之前的博客中,当介绍某个类的时候,我会将类的构造方法以及方法摘要通过表格展示出来,这些内容在JDKAPI上面都可以找到,所以从这一篇博客开始,这些方法将不再全部列出,会从中抽取一部分常用的方法。 言归正传,在上一篇博客《JAVA输入输出(IO)之文件》中介绍了File类的简单使用,如果我们要对文件进行读取、写入,仅有一个File是远远不够的,这一篇为大家介绍字节流的概念,通过本片博客,我们可以原创 2015-12-29 21:14:15 · 2510 阅读 · 1 评论 -
JAVA探测文件编码
我们在做一些类似文件上传的功能时,用户上传的文件编码,我们是无法控制的,这是我们就需要对文件的编码进行探测。 示例代码如下:import info.monitorenter.cpdetector.io.ASCIIDetector;import info.monitorenter.cpdetector.io.CodepageDetectorProxy;import info.monitorent原创 2016-01-16 11:14:03 · 2826 阅读 · 0 评论 -
JAVA生成条码(jbarcode)
条码技术在现在的应用非常广泛,几乎所有的商品包装上都会印有条形码,这一篇将通过实例演示JAVA如何生成条码原创 2016-01-16 11:18:40 · 5167 阅读 · 1 评论 -
JAVA生成二维码(zxing)
上一篇博客中介绍了条码的使用示例,这一篇继续介绍如何使用JAVA生成二维码。package com.hq.util;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import java.io.OutputStream;i原创 2016-01-16 11:31:35 · 1967 阅读 · 0 评论 -
JAVA输入输出(IO)之字符流
上一篇《JAVA输入输出(IO)之字节流》介绍了JAVA字节输入输出流的一些用法,字节流一般是用于读写二进制数据的,当我们要读些字符数据的时候,如文本文件,就显得有些麻烦。所以JAVA还提供了专门用于读写字符数据的字符流。字符输入流java.io.Reader用于读取字符流的抽象类。子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义原创 2015-12-30 11:10:08 · 3518 阅读 · 2 评论 -
JAVA输入输出(IO)之常用流
这一篇博客为大家介绍一下JAVA中常用的流的使用方法。 注:示例仅起到演示作用,不对异常做处理。ByteArrayInputStream、ByteArrayOutputStreamByteArrayInputStream 包含一个内部缓冲区,该缓冲区包含从流中读取的字节。内部计数器跟踪 read 方法要提供的下一个字节。 ByteArrayOutputStream类实现了一个输出流,其中的数据被原创 2015-12-30 15:02:07 · 2441 阅读 · 1 评论 -
JAVA图形界面(GUI)
前面的博客中,我们写的程序都属于控制台程序,从这一篇开始,将为大家介绍如何编写GUI程序,GUI意思是图形读者界面,比如我们用的QQ就属于GUI程序。抽象工具集(AWT)和SwingJAVA GUI基本类库位于java.awt 包中,这个包称为抽象窗口工具箱(Abstract Window Toolkit,AWT)。AWT中包含了很多图形界面编程的类。它包括用来容纳其它组件的容器类、用来控制进行组件原创 2015-12-31 09:01:50 · 5777 阅读 · 1 评论 -
JAVA对象持久化
持久化就是将内存中的数据保存起来,使之可以长期存在。在JAVA中,我们可以把JAVA对象直接保存在文件中,在需要使用的时候,直接从文件中读取,这也是对象持久化的一种方式,在这一篇博客中,将演示两种将JAVA对象持久化到文件的方法原创 2016-01-18 11:12:36 · 5345 阅读 · 0 评论 -
JAVA解析XML
在JAVA中最常用的解析xml的方式有四种,分别为:sax、dom、dom4j、jdom。sax方式的解析是基于事件的,比较适合大数据的解析,而dom的方式会将xml加载到内存中,构建出dom树,解析大文件时容易造成内存溢出,在实际开发中,我们应该选择最合适的解析方式。原创 2016-01-18 13:51:23 · 1762 阅读 · 0 评论 -
JAVA加密解密之常用签名算法
在下面的示例中,将演示MD5、Hmac等签名算法的使用方式package com.hq.coder;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.MessageDigest;import java.security.NoSuchA原创 2016-01-16 14:00:30 · 5368 阅读 · 0 评论 -
JAVA文件压缩、解压
zip文件是常用的压缩文件,JAVA中对其也提供了支持,我们可以很方便的对zip文件进行操作。原创 2016-01-16 13:36:15 · 2467 阅读 · 0 评论 -
JAVA图形界面(GUI)之常用组件
前面提到容器是用来组织组件的,那么这一篇博客就为大家介绍一些Java的常用组件。最后通过一个例子展示这些组件的实际效果。按钮(JButton)JButton是我们常用的一个组件,其表现形式为一个按钮。构造方法 方法 说明 JButton() 创建不带有设置文本或图标的按钮 JButton(Action a) 创建一个按钮,其属性从所提供的 Action 中获取 JButto原创 2015-12-31 16:58:09 · 28625 阅读 · 2 评论 -
JAVA图形界面(GUI)之容器
在Swing中,容器可以用来组织界面布局,容器中可以添加容器和组件。常用的有如下几种: 顶层容器:JFrame,JApplet,JDialog,JWindow 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar 特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane. 这篇博客将抽取其中几个常用原创 2015-12-31 14:31:57 · 7244 阅读 · 0 评论 -
JAVA图形界面(GUI)之布局管理器
一个友好的读者界面是一款软件成功的关键因素之一。布局管理器就是用来管理读者的界面。摆放的效果直接影响到界面是否美观。布局管理器通过布局管理类来对各种读者组件进行管理。 使用布局管理器,不仅可以有序的排列组件,而且当窗体发生变化时,布局管理器很根据新版面来适配窗口大小。 如果设计时未指定组件的布局管理器,则使用默认布局管理器。默认布局管理器层次关系如图所示: 下面为大家介绍几种常用的布局管理器。原创 2016-01-01 15:32:04 · 37795 阅读 · 2 评论 -
JAVA语法基础之流程控制
在进行程序设计的时候,我们会经常进行逻辑判断,根据不同的结果做不同的事,或者重复做某件事,我们对类似这样的工作称为流程控制。在Java中,流程控制分为两大类:选择和循环。下面就依次来介绍这两类。一、选择选择控制分为两种:if...else...和switch1、if...else...,这种控制在表现上分为:单分支结构、双分支结构和多分支结构1)单分支单分支结构。这是最简单的一原创 2015-12-05 14:28:24 · 2889 阅读 · 0 评论 -
JAVA枚举类型
枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型原创 2016-01-19 16:26:07 · 1700 阅读 · 0 评论 -
JAVA反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是原创 2016-01-19 16:59:09 · 1672 阅读 · 1 评论 -
JAVA图形界面(GUI)之事件处理机制
之前几篇博客中,我们编写了一些示例,但是这些示例并不能与读者进行交互,读者之所以对图形界面感兴趣,就是因为图形界面与读者交互能力强。但是单纯的界面是没有使用价值的,要是图形界面能与读者交流,那么必须了解java的事件处理机制。 首先组件要先注册事件处理器,当读者单击组件、移动鼠标或者敲击键盘都会产生事件(Event)。一旦有事件产生,应用程序做出对该事件的响应,这些组件就是事件源(Event So原创 2016-01-03 20:31:04 · 12587 阅读 · 0 评论