说到反射,相信有过编程经验的人都不会陌生.反射机制让Java变得更加的灵活.反射机制在Java的众多特性中是非常重要的一个.下面就让我们一点一点了解它是怎么一回事. 什么是反射 在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 反射有什么用 1,在运行时判断任意一个对象所属的类: 2,在运行时构造任意一个类的对象: 3,在运行时判断任意一个类所具有的成员变…
上一篇博文<菜鸟学编程(九)——Java反射机制(一)>里面,向大家介绍了什么是Java的反射机制,以及Java的反射机制有什么用.上一篇比较偏重理论,理论的东西给人讲出来总感觉虚无缥缈,还是结合一些实例比较形象具体.那么今天就结合更多的实例具体说说. 实例一:获得完整的类名 package reflection.getclassname; //获得完整的类名 public class GetClassName { public String getNameByClass() { String…
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse).下面我们就一个一个慢慢配置. 配置JDK 编写Java程序需要建立Java开发环境,其中Sun的Java SDK是必不可少的.可以去Sun的官网下载,在此不再赘述.安装好SDK后需要简单配置一下环境变量: 1.右击我的电脑,选择属性(或者按 “Win+Pause Break”) 2.选择高级 3…
每个学编程的人在编程的过程中都会遇到各种异常.那么当我们遇到异常的时候该怎么处理呢?针对不同的异常我们又该采取什么具体的处理方式呢?这些问题在我开始学编程的很长一段时间里我都不太清楚,还好随着不断的学习,慢慢地对它有了一些了解.下面我们一起看看Java中的各种异常. 我们先看下面这张图: 如图所示,Java中所有的异常都是从Throwable继承而来,Throwable被定义在jave.lang包中,并且有两个直接子类——Exception和Error.其中Error指的是Java虚拟机的内部系…
简介 JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器. 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它,而不用支付费用.2006年,Jboss公司被Redhat公司收购.JBoss是一个管理EJB的容器和服务器,支持EJB 1.1.EJB 2.0和EJB3.0的规范.但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用. 优点 1.JBoss是免费的,开放源代码J2EE的实现,通过LGPL许…
今天继续跟大家说说一些非常基础的东西,这次我们说说分页查询.说到分页,可能很多人都听说过什么真分页.假分页的.简单解释一下,拿第二页,每页20条为例:真分:数据库里取 的就是21-40条:假分:数据库取出所有的,然后显示21-40.今天我们要说的就是所谓的真分页. 下面是分页查询的核心代码: /** * 分页查询 * @param pageNo 第几页 * @param pageSize 每页多少条数据 * @return pageModel */ public PageModel findUs…
做WEB开发,測试是一件非常费时间的事情.所以我们就应该用更简单.更快捷的方式进行測试.今天就向大家介绍一个轻量级的容器--jetty.j今天说的etty是Maven的一个插件jetty-maven-plugin,与Maven配合起来使用非常的方便,它的配置也非常的简单,以下我们就看看它怎么用吧! 在pom.xml 文件的<project>标签下添�例如以下代码: <build> <plugins> <plugin> <groupId>org.m…
做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器——jetty.今天说的etty是Maven的一个插件jetty-maven-plugin,与Maven配合起来使用非常的方便,它的配置也非常的简单,下面我们就看看它怎么用吧! 在pom.xml 文件的<project>标签下加入如下代码: <build> <plugins> <plugin> <groupId>org.mortb…
今天老师讲了JAVA数组,之前学C#的时候就学过一维数组,至于二维数组当时只是粗略普及了一下. 现在想学JAVA又学到了数组,但是这次不同,注重讲二维数组,因为老师知道我们都了解一维数组了. 所以现在开始一维数组: 一维数组定义:int a[]=new int[5]; 或 ————>int[] a=new int[5] //这里的5是数组的长度,表示可以存5个int类型的对象.定义的类型是int的数组只能存int的对象,string类型只能存string类型的对象,其他雷同. 数组赋值: 1.初…
从事it工作已有接近两年的时间了, 一直从事的是php的工作, 一直都想学java ,原因就不多说了, 毕竟优秀的php程序员,都会是一个其他方面的高手, 例如java ,并不是说java有多好,php就不好, 很多东西在java里面的面向对象的思想,和编程思想要求的会比较严格, 而php相对来说会薄弱一些, 造成了自己写php很多时候,比较懒, 并且, 就和人目前的状况来说, 个人的技术水平,编程思想方面的东西, 或许真的需要一个java 或者c#这种纯面向对象的语言来强制一下自己的思路, 至…
泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引入泛型的好处是安全简单. 规则和限制 1.泛型的类型参数只能是类类型(包括自定义类),不能是简单类型. 2.同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的. 3.泛型的类型参数可以有多个. 4.泛型的参数类型可以使用extends语句,例如<T extends…
Java中数据类型分两种: 1.基本类型:long,int,byte,float,double 2.对象类型:Long,Integer,Byte,Float,Double其它一切java提供的,或者你自己创建的类. 其中Long叫 long的包装类.Integer.Byte和Float也类似,一般包装类的名字首写是数值名的大写开头. 什么是包装类? 在java中有时候的运算必须是两个类对象之间进行的,不充许对象与数字之间进行运算.所以需要有一个对象,这个对象把数字进行了一下包装,这样这个对象就可…
Java中数据类型分两种: 1.基本类型:long,int,byte,float,double2.对象类型:Long,Integer,Byte,Float,Double其他一切java提供的,或者你自己创建的类. 当中Long叫 long的包装类.Integer.Byte和Float也相似,一般包装类的名字首写是数值名的大写开头. 什么是包装类? 在java中有时候的运算必须是两个类对象之间进行的.不充许对象与数字之间进行运算.所以须要有一个对象.这个对象把数字进行了一下包装,这样这个对象就能够…
泛型是Java SE 1.5的新特性,泛型的本质是參数化类型,也就是说所操作的数据类型被指定为一个參数.这样的參数类型能够用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Java语言引入泛型的优点是安全简单. 规则和限制 1.泛型的类型參数仅仅能是类类型(包含自己定义类),不能是简单类型.2.同一种泛型能够相应多个版本号(由于參数类型是不确定的),不同版本号的泛型类实例是不兼容的.3.泛型的类型參数能够有多个.4.泛型的參数类型能够使用extends语句,比如<T extend…
前几天向大家介绍了一种用工具类生成数据表的方法,只是之前的方法须要使用一个跟项目关系不大的工具类.不免让人认为有些多余,所以呢.今天再向大家介绍一种方法.即Hibernate与Spring配合生成表结构. 首先.要将Spring的信息配置的web.xml.配置Spring用于初始化容器对象的监听器. web.xml <? xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="ht…
測试在软件生命周期中的重要性,不用我多说想必大家也都很清楚.软件測试有许多分类,从測试的方法上可分为:黑盒測试.白盒測试.静态測试.动态測试等:从软件开发的过程分为:单元測试.集成測试.确认測试.验收.回归等. 在众多的分类中,与开发者关系最紧密的莫过于单元測试了.像其它种类的測试基本上都是由专门的測试人员来完毕,仅仅有单元測试是全然由开发者来完毕的.那么今天我们就来说说什么是单元測试,为什么要进行单元測试,以及如更好的何进行单元測试. 什么是单元測试? 单元測试(unit testing),是…
我们常说的Java内存主要分为四大块(寄存器不在考虑之内,我们无法用代码来操控它):stack(栈).heap(堆).data segment(数据区).code segment(代码区).它们的主要用途如下图所示: 而在上面四个当中,我们经常谈论的是右边那两个家伙——stack和heap.今天我们就来聊聊Java代码在运行的过程中,在stack和heap中到底是什么样子的吧. 我们先看下面一段代码: public static void main(String[] args) { TestRe…
测试在软件生命周期中的重要性,不用我多说想必大家也都非常清楚.软件测试有很多分类,从测试的方法上可分为:黑盒测试.白盒测试.静态测试.动态测试等:从软件开发的过程分为:单元测试.集成测试.确认测试.验收.回归等. 在众多的分类中,与开发人员关系最紧密的莫过于单元测试了.像其他种类的测试基本上都是由专门的测试人员来完成,只有单元测试是完全由开发人员来完成的.那么今天我们就来说说什么是单元测试,为什么要进行单元测试,以及如更好的何进行单元测试. 什么是单元测试? 单元测试(unit testing)…
本文纯属一届小码农对java使用过程的体验感触 目录: 初遇java编程语言 与java的擦肩 深入java 跨平台性 开源支持 web的支撑 初遇java编程语言 刚上大学的时候,完全是个电脑盲.刚入学学的计算机普及知识就是visual basic语言,可视化的组件编程语言,这个语言跟我第一份工作Delphi语言的是一个性质的,都是拖放控件,实现可视化开发,跟现在用着的extjs 中architect相似,想要显示什么,直接拖放这个组件就可以的.接触java都是大三的事情了,那时候开专业课(管…
之前写了一篇关于IOC的博客——<Spring容器IOC解析及简单实现>,今天再来聊聊AOP.大家都知道Spring的两大特性是IOC和AOP,换句话说,容器的两大特性就是IOC和AOP. IOC负责将对象动态的注入到容器,从而达到一种需要谁就注入谁,什么时候需要就什么时候注入的效果,可谓是招之则来,挥之则去.想想都觉得爽,如果现实生活中也有这本事那就爽歪歪了,至于有多爽,各位自己脑补吧:而AOP呢,它实现的就是容器的另一大好处了,就是可以让容器中的对象都享有容器中的公共服务.那么容器是怎么做…
之前写了Spring的实现原理,今天我们接着聊聊Hibernate的实现原理,这篇文章只是简单的模拟一下Hibernate的原理,主要是模拟了一下Hibernate的Session类.好了,废话不多说,先看看我们的代码: package com.tgb.hibernate; import java.lang.reflect.Method; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prep…
项目用的是SSH基础框架,当中有一些信息非常相似,但又不尽同样.假设每个建一个实体的话,那样实体会太多.假设分组抽象,然后继承,又不是特别有规律.鉴于这样的情况.就打算让用户自己配置要加入的字段,然后生成相应的表. 须要动态配置的部分实例: 上图仅仅是一小部分,一个一个组合起来大概有三百多.每一项相应一个实体,显然不好,就算是依照规律归归类还是有不少.于是就想到了在执行期来确定这些东西.開始有尝试过动态编译生成实体类,后来发如今数据存取上都存在问题,由于是后来生成的,所以仅仅能用反射来获取.这样…
今天老师讲了多态的使用 多态是同一个行为具有多个不同表现形式或形态的能力. 多态的优点: 1. 消除类型之间的耦合关系 2. 可替换性  3. 可扩充性 4. 接口性 5. 灵活性 6. 简化性 我个人认为  可替换性   可扩充性 灵活性 到是很充分的体现出来了. 现在就用问题来体现吧 !!! 1.创建一个动物类 2.创建一个动物的数组,长度2个 3.创建一只猫(有抓老鼠方法) 4.创建一条蛇(有冬眠方法) 就这个问题5.分别把它们放在动物的数组中. 创建一个动物类: package pkg2…
前面说完了Spring.Hibernate,很自然今天轮到struts了.struts的核心原理就是通过拦截器来处理客户端的请求,经过拦截器一系列的处理后,再交给Action.下面先看看struts官方的工作原理图: 图1 struts原理图 简单分析一下:首先客户端发来HttpServletRequest请求,传递给FilerDispatcher(ActionMapper是访问静态资源(struts的jar文件等)时用的,平时很少用),然后FilerDispatcher会为我们创建一个Acti…
最近由于种种原因,需要将以前用MyEclipse写的项目迁移到Eclipse中.但是当我将之前的项目import到Eclipse中后,发现根本不能运行.经过一番寻觅,终于让我找到了一种解决的办法.一起看看吧! 修改项目中的.project文件(用记事本打开) 1,增加一个<buildCommand> <buildCommand> <name>org.eclipse.wst.validation.validationbuilder</name> <arg…
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,现在越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j.这是必须使用的jar包. 上面说dom4j这么优秀,那么好用,那么从今天开始就跟大家一起分享dom4j的一些用法. dom4j的主要接口都在org.dom4j这个包里定义:  …
验证码大家都知道,它的作用也不用我多说了吧.如果不太清楚请参见百度百科中的解释,一般验证码的生成就是随机产生字符(数字.字母或者汉字等),然后将这些生成的字符绘制成一张图片,再在图片上加上一些干扰元素,如各种线条之类的.好了废话不多说一起往下看: 简单的登录页面(代码并不完整,只有验证码部分) <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> &l…
书接上回,上次跟大家概括的说了说JSP的九种常用内置对象.接下来就该聊聊它们各自的特点了,今天先说说request吧. 下面是request的一些常用方法: isUserInRole(String role):判断认证后的用户是否属于逻辑的role中的成员. getAttribute(String name):返回name指定的属性值,如不存在则返回null. getAttributeNames():返回name指定属性集合,其结果是一个枚举实例. getCookies():返回客户端的所有Co…
学习JavaWeb就离不开JSP,而学习JSP又不得不了解它常用的九个内置对象.今天来做一个简单介绍. request Request封装了用户提交的信息,通过调用Request相应的方法可以获取封装的信息,即使用Request可以获取用户提交信息.它是HttpServletRequest类的实例. response 对客户的请求做出动态的响应,向客户端发送数据.response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它.它是HttpServletResponse类的实例.re…
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管理格式化.XML 操作以及数据库访问. 目前也有不少人在用JSTL,今天我们就一起学习一下JSTL的核心标签. 在JSP页面引入核心标签库的代码为:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 下面简单…