Lombok是一个开源项目,可以用来消除Java代码的冗长
详细介绍参看http://www.ibm.com/developerworks/opensource/library/os-lombok/index.html
下面介绍Lombok如何消除Java代码的冗长。
1. 首先去http://projectlombok.org/. 下载lombok.jar 包
2. 如果是windows操作系统,可以直接双击 Lombok.jar 文件使用打开进行安装,
选择你准备安装的eclipse版本。(在这里安装主要是为了使用eclipse编辑java文件时方便查看)。
3. 安装完成后,打开eclipse创建一个java工程,然后开始进行java代码编写
通过上面的代码大家是不是发现了JavaBean少了很多代码,只要在class前增加 @Data 就会直接将里面的私有字段字段生产get,set方法和toString(),equals(),hashCode()方法。
(安装过lombok之后在 outline中可以看见)
4. 如果一些get或者set方法不想公开
在name属性前增加@Getter(AccessLevel.PROTECTED)注解,getName()的访问权限发生变化。
5. Lombok提供的toString() ......
如果你去面试的时候,面试官考你,为什么要在java中的main方法前加public static void这些修饰符,你知道如何去回答吗?下面我为大家讲解一下吧!如果有什么缺漏的话!欢迎大家的指点!
首先,为什么要用public:
因为在运行程序时,jvm要调用main方法,但我们都应该知道jvm是一个软件并不是硬件,并且它与main方法所在的包是不同的,所以jvm要调用main方法时,main方法就必须声明为public;否则jvm就无法找到和调用main方法,此时程序就无法运行。
第二,为什么要用static:
因为如果不适用static,就只能创造一个实例去调用main方法,但是jvm并不知道如何去创造一个实例,而你要创造一个实例时,必须要在main方法里头使用new这个关键字,但此时jvm无法调用main方法,所以就无法创造一个实例去调用main方法,所以main方法必须声明为static。
第三,为什么要用void:
1、main方法根本就不需要返回值;
2、如果你返回了值,也不能看到,那此时jvm也不知道拿这个返回值来干什么,所以就用void。
还有至于为什么要用main方法呢?这个是规定 ......
JAVA对象转换为XML格式
简单的颤述下如何将JAVA对象转换为XML格式,详细了解请进入http://xstream.codehaus.org/tutorial.html
JAVABEAN对象
userInfo.java
private String name;
private String password;
//construtors and methods setting and getting methods
userInfoController.java
public static void mian(string args[])
{
//初始化BEAN对象
userInfo userinfo=new userInfo();
userinfo.setName("Jimmy");
userinfo.setPassword("123456");
//初始化XStream对象
XStream xStream=new XStream(new DomDriver);
xStream.alias("user",userInfo.class)
String xml=xStream.toXML(user);
System.out.println(xml);
}
输出结果为:
<userinfo>
<name>jimmy</name& ......
JAVA对象转换为XML格式
简单的颤述下如何将JAVA对象转换为XML格式,详细了解请进入http://xstream.codehaus.org/tutorial.html
JAVABEAN对象
userInfo.java
private String name;
private String password;
//construtors and methods setting and getting methods
userInfoController.java
public static void mian(string args[])
{
//初始化BEAN对象
userInfo userinfo=new userInfo();
userinfo.setName("Jimmy");
userinfo.setPassword("123456");
//初始化XStream对象
XStream xStream=new XStream(new DomDriver);
xStream.alias("user",userInfo.class)
String xml=xStream.toXML(user);
System.out.println(xml);
}
输出结果为:
<userinfo>
<name>jimmy</name& ......
动态内存分配
创建和维护动态数据结构要求进行动态内存分配,即程序能够在执行时获得更多的内存空间来放新结点,并在不需要这些内存时释放他们。
数据列表可以用数据进行存储,但是用链表存储有几个好处。在数据结构要表示的数据元素的数目无法预先确定的情况下,链表能够提供更合理的空间分配。链表是动态的,所以其长度可以根据需要而增加或减小。链表结点在内存中一般不是连续存放的。通常数组元素在内存中是连续存放的。这样就允许直接存取任何一个数组元素,因为任何数组元素的地址都可以直接根据它与数组的第一个元素的相对位置而计算出来。链表不能直接存取其元素,只有通过正向遍历才能访问一个元素。 ......
构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Platypus p1 = new Platypus();
相反,方法的作用是为了执行java代码。
修饰符,返回值和命名的不同
构造器和方法在下面三个方便的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰: abstract, final, native, static, 或者 synchronized。
返回类型也是非常重要的。方法能返回任何类型的值或者无返回值(void),构造器没有返回值,也不需要void。
最后,谈谈两者的命名。构造器使用和类相同的名字,而方法则不同。按照习惯,方法通常用小写字母开始,而构造器通常用大写字母开始。构造器通常是一个名词,因为它和类名相同;而方法通常更接近动词,因为它说明一个操作。 ......
转自 http://www.bjtarena.com/html/2010/4/1058.htm
很多朋友在深入的接触Java语言后就会发现这样两个词:反射(Reflection)和内省(Introspector),经常搞不清楚这到底是怎么回事,在什么场合下应用以及如何使用?
反射
相对而言,反射比内省更容易理解一点。用一句比较白的话来概括,反射就是让你可以通过名称来得到对象(类,属性,方法)的技术。例如我们可以通过类名来生成一个类的实例;知道了方法名,就可以调用这个方法;知道了属性名就可以访问这个属性的值,还是写两个例子让大家更直观的了解反射的使用方法:
//通过类名来构造一个类的实例
Class cls_str=Class.forName("java.lang.String");
//上面这句很眼熟,因为使用过JDBC访问数据库的人都用过J
Object str=cls_str.newInstance();
//相当于String str=new String();
//通过方法名来调用一个方法
String methodName = "length";
Method m=cls_str.getMethod(methodName,null);
System.out.println("lengthis"+m.invoke(str,null));
//相当于System.out.println(str.length());
上面的两个例子是比较常用方法。 ......